diff options
author | Elliott Hughes <enh@google.com> | 2015-01-14 10:50:17 -0800 |
---|---|---|
committer | Elliott Hughes <enh@google.com> | 2015-01-14 10:50:17 -0800 |
commit | 30286c8467a710f143bf0448c7f9de83503d2781 (patch) | |
tree | 5335363df3781cd9a2705b98da02165902beb3e0 /toolbox | |
parent | 4503a1450ce9b2ed86fd9bd3eb3c34c845e8ed08 (diff) | |
download | system_core-30286c8467a710f143bf0448c7f9de83503d2781.tar.gz system_core-30286c8467a710f143bf0448c7f9de83503d2781.tar.bz2 system_core-30286c8467a710f143bf0448c7f9de83503d2781.zip |
Lose toolbox notify in favor of toybox inotifyd.
Change-Id: I02e3849c0b944289c6541ff14f1e80a7f8041829
Diffstat (limited to 'toolbox')
-rw-r--r-- | toolbox/Android.mk | 1 | ||||
-rw-r--r-- | toolbox/notify.c | 149 |
2 files changed, 0 insertions, 150 deletions
diff --git a/toolbox/Android.mk b/toolbox/Android.mk index f163cb800..50d33d3c7 100644 --- a/toolbox/Android.mk +++ b/toolbox/Android.mk @@ -79,7 +79,6 @@ OUR_TOOLS := \ mount \ nandread \ newfs_msdos \ - notify \ ps \ renice \ restorecon \ diff --git a/toolbox/notify.c b/toolbox/notify.c deleted file mode 100644 index 8ce346c56..000000000 --- a/toolbox/notify.c +++ /dev/null @@ -1,149 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <stdint.h> -#include <fcntl.h> -#include <unistd.h> -#include <sys/ioctl.h> -#include <sys/inotify.h> -#include <errno.h> - -int notify_main(int argc, char *argv[]) -{ - int c; - int nfd, ffd; - int res; - char event_buf[512]; - struct inotify_event *event; - int event_mask = IN_ALL_EVENTS; - int event_count = 1; - int print_files = 0; - int verbose = 2; - int width = 80; - char **file_names; - int file_count; - int id_offset = 0; - int i; - char *buf; - - do { - c = getopt(argc, argv, "m:c:pv:w:"); - if (c == EOF) - break; - switch (c) { - case 'm': - event_mask = strtol(optarg, NULL, 0); - break; - case 'c': - event_count = atoi(optarg); - break; - case 'p': - print_files = 1; - break; - case 'v': - verbose = atoi(optarg); - break; - case 'w': - width = atoi(optarg); - break; - case '?': - fprintf(stderr, "%s: invalid option -%c\n", - argv[0], optopt); - exit(1); - } - } while (1); - - if (argc <= optind) { - fprintf(stderr, "Usage: %s [-m eventmask] [-c count] [-p] [-v verbosity] path [path ...]\n", argv[0]); - return 1; - } - - nfd = inotify_init(); - if(nfd < 0) { - fprintf(stderr, "inotify_init failed, %s\n", strerror(errno)); - return 1; - } - file_names = argv + optind; - file_count = argc - optind; - for(i = 0; i < file_count; i++) { - res = inotify_add_watch(nfd, file_names[i], event_mask); - if(res < 0) { - fprintf(stderr, "inotify_add_watch failed for %s, %s\n", file_names[i], strerror(errno)); - return 1; - } - if(i == 0) - id_offset = -res; - if(res + id_offset != i) { - fprintf(stderr, "%s got unexpected id %d instead of %d\n", file_names[i], res, i); - return 1; - } - } - - buf = malloc(width + 2); - - while(1) { - int event_pos = 0; - res = read(nfd, event_buf, sizeof(event_buf)); - if(res < (int)sizeof(*event)) { - if(errno == EINTR) - continue; - fprintf(stderr, "could not get event, %s\n", strerror(errno)); - return 1; - } - //printf("got %d bytes of event information\n", res); - while(res >= (int)sizeof(*event)) { - int event_size; - event = (struct inotify_event *)(event_buf + event_pos); - if(verbose >= 2) - printf("%s: %08x %08x \"%s\"\n", file_names[event->wd + id_offset], event->mask, event->cookie, event->len ? event->name : ""); - else if(verbose >= 2) - printf("%s: %08x \"%s\"\n", file_names[event->wd + id_offset], event->mask, event->len ? event->name : ""); - else if(verbose >= 1) - printf("%d: %08x \"%s\"\n", event->wd, event->mask, event->len ? event->name : ""); - if(print_files && (event->mask & IN_MODIFY)) { - char* filename = file_names[event->wd + id_offset]; - char* alloc_buf = NULL; - ssize_t read_len; - char *display_name; - int buflen; - if(event->len) { - if(asprintf(&alloc_buf, "%s/%s", filename, event->name) < 0) { - fprintf(stderr, "asprintf failed, %s\n", strerror(errno)); - return 1; - } - filename = alloc_buf; - } - ffd = open(filename, O_RDONLY); - display_name = (verbose >= 2 || event->len == 0) ? filename : event->name; - buflen = width - strlen(display_name); - read_len = read(ffd, buf, buflen); - if(read_len > 0) { - if(read_len < buflen && buf[read_len-1] != '\n') { - buf[read_len] = '\n'; - read_len++; - } - if(read_len == buflen) { - buf[--read_len] = '\0'; - buf[--read_len] = '\n'; - buf[--read_len] = '.'; - buf[--read_len] = '.'; - buf[--read_len] = '.'; - } - else { - buf[read_len] = '\0'; - } - printf("%s: %s", display_name, buf); - } - close(ffd); - free(alloc_buf); - } - if(event_count && --event_count == 0) - return 0; - event_size = sizeof(*event) + event->len; - res -= event_size; - event_pos += event_size; - } - } - - return 0; -} |