X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fubox.git;a=blobdiff_plain;f=log%2Flogread.c;h=c4ab4290c4830ef33abb380914bd468e8ec4ec7a;hp=784d1f9373e06d5e96c4857d2527253123e0396f;hb=b81bea73b627e1f9cf75f1556634856280a2a89b;hpb=a0819044b14ec34450d2fcab33fb15232e8164fa diff --git a/log/logread.c b/log/logread.c index 784d1f9..c4ab429 100644 --- a/log/logread.c +++ b/log/logread.c @@ -78,7 +78,7 @@ static void log_handle_reconnect(struct uloop_timeout *timeout) { sender.fd = usock((log_udp) ? (USOCK_UDP) : (USOCK_TCP), log_ip, log_port); if (sender.fd < 0) { - fprintf(stderr, "failed to connect: %s\n", strerror(errno)); + fprintf(stderr, "failed to connect: %m\n"); uloop_timeout_set(&retry, 1000); } else { uloop_fd_add(&sender, ULOOP_READ); @@ -126,7 +126,7 @@ static int log_notify(struct blob_attr *msg) } sender.fd = open(log_file, O_CREAT | O_WRONLY | O_APPEND, 0600); if (sender.fd < 0) { - fprintf(stderr, "failed to open %s: %s\n", log_file, strerror(errno)); + fprintf(stderr, "failed to open %s: %m\n", log_file); exit(-1); } } @@ -322,6 +322,14 @@ int main(int argc, char **argv) } ubus_add_uloop(ctx); + if (log_follow && pid_file) { + FILE *fp = fopen(pid_file, "w+"); + if (fp) { + fprintf(fp, "%d", getpid()); + fclose(fp); + } + } + /* ugly ugly ugly ... we need a real reconnect logic */ do { ret = ubus_lookup_id(ctx, "log", &id); @@ -338,15 +346,6 @@ int main(int argc, char **argv) blobmsg_add_u32(&b, "lines", lines); else if (log_follow) blobmsg_add_u32(&b, "lines", 0); - if (log_follow) { - if (pid_file) { - FILE *fp = fopen(pid_file, "w+"); - if (fp) { - fprintf(fp, "%d", getpid()); - fclose(fp); - } - } - } if (log_ip && log_port) { openlog("logread", LOG_PID, LOG_DAEMON); @@ -358,7 +357,7 @@ int main(int argc, char **argv) log_type = LOG_FILE; sender.fd = open(log_file, O_CREAT | O_WRONLY| O_APPEND, 0600); if (sender.fd < 0) { - fprintf(stderr, "failed to open %s: %s\n", log_file, strerror(errno)); + fprintf(stderr, "failed to open %s: %m\n", log_file); exit(-1); } } else { @@ -375,5 +374,8 @@ int main(int argc, char **argv) } while (ret && tries--); + if (log_follow && pid_file) + unlink(pid_file); + return ret; }