]> arthur.barton.de Git - netdata.git/commitdiff
small changes, adaptation of #428 from @fredericopissarra
authorCosta Tsaousis (ktsaou) <costa@tsaousis.gr>
Fri, 10 Jun 2016 23:15:57 +0000 (02:15 +0300)
committerCosta Tsaousis (ktsaou) <costa@tsaousis.gr>
Fri, 10 Jun 2016 23:15:57 +0000 (02:15 +0300)
src/common.c
src/common.h
src/log.c
src/main.c
src/web_buffer.c
src/web_client.c
src/web_server.c

index c67d8125ed041087b5af031e317f37a47840b6fd..5e6d037640b9c313a9c63cdb853faafae20d78ed 100644 (file)
@@ -682,7 +682,7 @@ void *mymmap(const char *filename, size_t size, int flags, int ksm)
        errno = 0;
        fd = open(filename, O_RDWR|O_CREAT|O_NOATIME, 0664);
        if(fd != -1) {
-               if(lseek(fd, size, SEEK_SET) == (long)size) {
+               if(lseek(fd, size, SEEK_SET) == (off_t)size) {
                        if(write(fd, "", 1) == 1) {
                                if(ftruncate(fd, size))
                                        error("Cannot truncate file '%s' to size %ld. Will use the larger file.", filename, size);
@@ -691,7 +691,7 @@ void *mymmap(const char *filename, size_t size, int flags, int ksm)
                                if(flags & MAP_SHARED || !enable_ksm || !ksm) {
 #endif
                                        mem = mmap(NULL, size, PROT_READ|PROT_WRITE, flags, fd, 0);
-                                       if(mem) {
+                                       if(mem != MAP_FAILED) {
                                                int advise = MADV_SEQUENTIAL|MADV_DONTFORK;
                                                if(flags & MAP_SHARED) advise |= MADV_WILLNEED;
 
@@ -702,7 +702,7 @@ void *mymmap(const char *filename, size_t size, int flags, int ksm)
                                }
                                else {
                                        mem = mmap(NULL, size, PROT_READ|PROT_WRITE, flags|MAP_ANONYMOUS, -1, 0);
-                                       if(mem) {
+                                       if(mem != MAP_FAILED) {
                                                if(lseek(fd, 0, SEEK_SET) == 0) {
                                                        if(read(fd, mem, size) != (ssize_t)size)
                                                                error("Cannot read from file '%s'", filename);
@@ -733,7 +733,7 @@ void *mymmap(const char *filename, size_t size, int flags, int ksm)
        return mem;
 }
 
-int savememory(const char *filename, void *mem, unsigned long size)
+int savememory(const char *filename, void *mem, size_t size)
 {
        char tmpfilename[FILENAME_MAX + 1];
 
@@ -745,7 +745,7 @@ int savememory(const char *filename, void *mem, unsigned long size)
                return -1;
        }
 
-       if(write(fd, mem, size) != (long)size) {
+       if(write(fd, mem, size) != (ssize_t)size) {
                error("Cannot write to file '%s' %ld bytes.", filename, (long)size);
                close(fd);
                return -1;
@@ -753,13 +753,12 @@ int savememory(const char *filename, void *mem, unsigned long size)
 
        close(fd);
 
-       int ret = 0;
        if(rename(tmpfilename, filename)) {
                error("Cannot rename '%s' to '%s'", tmpfilename, filename);
-               ret = -1;
+               return -1;
        }
 
-       return ret;
+       return 0;
 }
 
 int fd_is_valid(int fd) {
index ce0397691c4f63042732de7584777984f45759bf..af8f45a4c5aa66b84cb4033d298b416356cae885 100644 (file)
@@ -32,7 +32,7 @@ extern int  vsnprintfz(char *dst, size_t n, const char *fmt, va_list args);
 extern int  snprintfz(char *dst, size_t n, const char *fmt, ...);
 
 extern void *mymmap(const char *filename, size_t size, int flags, int ksm);
-extern int savememory(const char *filename, void *mem, unsigned long size);
+extern int savememory(const char *filename, void *mem, size_t size);
 
 extern int fd_is_valid(int fd);
 
index 717126a69e14f74854c5d029250f0735c33ec7ef..778085ec2824a5194cf24a819fcb296f13bc4075 100644 (file)
--- a/src/log.c
+++ b/src/log.c
@@ -108,7 +108,7 @@ int error_log_limit(int reset) {
 
 void log_date(FILE *out)
 {
-               char outstr[200];
+               char outstr[24];
                time_t t;
                struct tm *tmp, tmbuf;
 
@@ -116,7 +116,7 @@ void log_date(FILE *out)
                tmp = localtime_r(&t, &tmbuf);
 
                if (tmp == NULL) return;
-               if (strftime(outstr, sizeof(outstr), "%y-%m-%d %H:%M:%S", tmp) == 0) return;
+               if (unlikely(strftime(outstr, sizeof(outstr), "%y-%m-%d %H:%M:%S", tmp) == 0)) return;
 
                fprintf(out, "%s: ", outstr);
 }
@@ -127,11 +127,10 @@ void debug_int( const char *file, const char *function, const unsigned long line
 
        log_date(stdout);
        va_start( args, fmt );
-       fprintf(stdout, "DEBUG (%04lu@%-10.10s:%-15.15s): %s: ", line, file, function, program_name);
-       vfprintf( stdout, fmt, args );
+       printf("DEBUG (%04lu@%-10.10s:%-15.15s): %s: ", line, file, function, program_name);
+       printf(fmt, args);
        va_end( args );
-       fprintf(stdout, "\n");
-       // fflush( stdout );
+       putchar('\n');
 
        if(output_log_syslog) {
                va_start( args, fmt );
@@ -155,7 +154,7 @@ void info_int( const char *file, const char *function, const unsigned long line,
        vfprintf( stderr, fmt, args );
        va_end( args );
 
-       fprintf(stderr, "\n");
+       fputc('\n', stderr);
 
        if(error_log_syslog) {
                va_start( args, fmt );
@@ -180,12 +179,12 @@ void error_int( const char *prefix, const char *file, const char *function, cons
        va_end( args );
 
        if(errno) {
-               char buf[200];
-               char *s = strerror_r(errno, buf, 200);
-               fprintf(stderr, " (errno %d, %s)\n", errno, s);
+               char buf[1024];
+               fprintf(stderr, " (errno %d, %s)\n", errno, strerror_r(errno, buf, 1023));
                errno = 0;
        }
-       else fprintf(stderr, "\n");
+       else
+               fputc('\n', stderr);
 
        if(error_log_syslog) {
                va_start( args, fmt );
@@ -207,7 +206,7 @@ void fatal_int( const char *file, const char *function, const unsigned long line
        va_end( args );
 
        perror(" # ");
-       fprintf(stderr, "\n");
+       fputc('\n', stderr);
 
        if(error_log_syslog) {
                va_start( args, fmt );
@@ -228,8 +227,7 @@ void log_access( const char *fmt, ... )
                va_start( args, fmt );
                vfprintf( stdaccess, fmt, args );
                va_end( args );
-               fprintf( stdaccess, "\n");
-               // fflush( stdaccess );
+               fputc('\n', stdaccess);
        }
 
        if(access_log_syslog) {
index f784592cdcebdb7cf74999a79c0a44261df6cc76..b053c281c29f5d9e89daa2e54e6458008348c553 100644 (file)
@@ -450,12 +450,7 @@ int main(int argc, char **argv)
        char *access_log_file = NULL;
        char *user = NULL;
        {
-               char buffer[1024];
-
-               // --------------------------------------------------------------------
-
-               sprintf(buffer, "0x%08llx", 0ULL);
-               char *flags = config_get("global", "debug flags", buffer);
+               char *flags = config_get("global", "debug flags",  "0x00000000");
                setenv("NETDATA_DEBUG_FLAGS", flags, 1);
 
                debug_flags = strtoull(flags, NULL, 0);
@@ -534,10 +529,13 @@ int main(int argc, char **argv)
 
                // --------------------------------------------------------------------
 
-               if(gethostname(buffer, HOSTNAME_MAX) == -1)
-                       error("WARNING: Cannot get machine hostname.");
-               hostname = config_get("global", "hostname", buffer);
-               debug(D_OPTIONS, "hostname set to '%s'", hostname);
+               {
+                       char hostnamebuf[HOSTNAME_MAX + 1];
+                       if(gethostname(hostnamebuf, HOSTNAME_MAX) == -1)
+                               error("WARNING: Cannot get machine hostname.");
+                       hostname = config_get("global", "hostname", hostnamebuf);
+                       debug(D_OPTIONS, "hostname set to '%s'", hostname);
+               }
 
                // --------------------------------------------------------------------
 
@@ -561,8 +559,8 @@ int main(int argc, char **argv)
 
                // let the plugins know the min update_every
                {
-                       char buf[51];
-                       snprintfz(buf, 50, "%d", rrd_update_every);
+                       char buf[16];
+                       snprintfz(buf, 15, "%d", rrd_update_every);
                        setenv("NETDATA_UPDATE_EVERY", buf, 1);
                }
 
@@ -638,7 +636,8 @@ int main(int argc, char **argv)
                // --------------------------------------------------------------------
 
                listen_fd = create_listen_socket();
-               if(listen_fd < 0) fatal("Cannot listen socket.");
+               if(listen_fd == -1)
+                       fatal("Cannot listen socket.");
        }
 
        // never become a problem
index a0f1537219cfb580941124d83dabe1f7347e0d0d..3ff813984af5fc313d20cc6489c55cb16e0ce353 100644 (file)
@@ -332,7 +332,10 @@ void buffer_increase(BUFFER *b, size_t free_size_required)
        debug(D_WEB_BUFFER, "Increasing data buffer from size %d to %d.", b->size, b->size + increase);
 
        b->buffer = realloc(b->buffer, b->size + increase + sizeof(BUFFER_OVERFLOW_EOF) + 2);
-       if(!b->buffer) fatal("Failed to increase data buffer from size %d to %d.", b->size + sizeof(BUFFER_OVERFLOW_EOF) + 2, b->size + increase + sizeof(BUFFER_OVERFLOW_EOF) + 2);
+       if(!b->buffer)
+               fatal("Failed to increase data buffer from size %d to %d.",
+                       b->size + sizeof(BUFFER_OVERFLOW_EOF) + 2,
+                       b->size + increase + sizeof(BUFFER_OVERFLOW_EOF) + 2);
 
        b->size += increase;
 
index 4fe40700ee27d28782808d2c1480e3decc2bf67b..eff90446b3f2182b54f333c472a39497a825bf48 100644 (file)
@@ -221,10 +221,10 @@ void web_client_reset(struct web_client *w) {
 
                log_access("%llu: (sent/all = %zu/%zu bytes %0.0f%%, prep/sent/total = %0.2f/%0.2f/%0.2f ms) %s: %d '%s'",
                                   w->id,
-                                  sent, size, -((size > 0) ? ((float) (size - sent) / (float) size * 100.0) : 0.0),
-                                  (float) usecdiff(&w->tv_ready, &w->tv_in) / 1000.0,
-                                  (float) usecdiff(&tv, &w->tv_ready) / 1000.0,
-                                  (float) usecdiff(&tv, &w->tv_in) / 1000.0,
+                                  sent, size, -((size > 0) ? ((size - sent) / (double) size * 100.0) : 0.0),
+                                  usecdiff(&w->tv_ready, &w->tv_in) / 1000.0,
+                                  usecdiff(&tv, &w->tv_ready) / 1000.0,
+                                  usecdiff(&tv, &w->tv_in) / 1000.0,
                                   (w->mode == WEB_CLIENT_MODE_FILECOPY) ? "filecopy" : ((w->mode == WEB_CLIENT_MODE_OPTIONS)
                                                                                                                                                 ? "options" : "data"),
                                   w->response.code,
@@ -371,7 +371,8 @@ int mysendfile(struct web_client *w, char *filename)
        while (*filename == '/') filename++;
 
        // if the filename contain known paths, skip them
-       if(strncmp(filename, WEB_PATH_FILE "/", strlen(WEB_PATH_FILE) + 1) == 0) filename = &filename[strlen(WEB_PATH_FILE) + 1];
+       if(strncmp(filename, WEB_PATH_FILE "/", strlen(WEB_PATH_FILE) + 1) == 0)
+               filename = &filename[strlen(WEB_PATH_FILE) + 1];
 
        char *s;
        for(s = filename; *s ;s++) {
@@ -1340,8 +1341,8 @@ int web_client_api_old_data_request(struct web_client *w, char *url, int datasou
        debug(D_WEB_CLIENT, "%llu: Found RRD data with name '%s'.", w->id, tok);
 
        // how many entries does the client want?
-       long lines = rrd_default_history_entries;
-       long group_count = 1;
+       int lines = rrd_default_history_entries;
+       int group_count = 1;
        time_t after = 0, before = 0;
        int group_method = GROUP_AVERAGE;
        int nonzero = 0;
@@ -1454,8 +1455,10 @@ int web_client_api_old_data_request(struct web_client *w, char *url, int datasou
                        google_responseHandler, google_version, google_reqId, st->last_updated.tv_sec);
        }
 
-       debug(D_WEB_CLIENT_ACCESS, "%llu: Sending RRD data '%s' (id %s, %d lines, %d group, %d group_method, %lu after, %lu before).", w->id, st->name, st->id, lines, group_count, group_method, after, before);
-       time_t timestamp_in_data = rrd_stats_json(datasource_type, st, w->response.data, lines, group_count, group_method, after, before, nonzero);
+       debug(D_WEB_CLIENT_ACCESS, "%llu: Sending RRD data '%s' (id %s, %d lines, %d group, %d group_method, %lu after, %lu before).",
+               w->id, st->name, st->id, lines, group_count, group_method, after, before);
+
+       time_t timestamp_in_data = rrd_stats_json(datasource_type, st, w->response.data, lines, group_count, group_method, (unsigned long)after, (unsigned long)before, nonzero);
 
        if(datasource_type == DATASOURCE_DATATABLE_JSONP) {
                if(timestamp_in_data > last_timestamp_in_data)
@@ -1952,7 +1955,7 @@ void web_client_process(struct web_client *w) {
        const char *content_type_string = web_content_type_to_string(w->response.data->contenttype);
        const char *code_msg = web_response_code_to_string(code);
 
-       char date[100];
+       char date[32];
        struct tm tmbuf, *tm = gmtime_r(&w->response.data->date, &tmbuf);
        strftime(date, sizeof(date), "%a, %d %b %Y %H:%M:%S %Z", tm);
 
@@ -2017,7 +2020,7 @@ void web_client_process(struct web_client *w) {
                        , date);
        }
        else if(w->mode != WEB_CLIENT_MODE_OPTIONS) {
-               char edate[100];
+               char edate[32];
                time_t et = w->response.data->date + (86400 * 14);
                struct tm etmbuf, *etm = gmtime_r(&et, &etmbuf);
                strftime(edate, sizeof(edate), "%a, %d %b %Y %H:%M:%S %Z", etm);
@@ -2114,7 +2117,7 @@ void web_client_process(struct web_client *w) {
 ssize_t web_client_send_chunk_header(struct web_client *w, size_t len)
 {
        debug(D_DEFLATE, "%llu: OPEN CHUNK of %d bytes (hex: %x).", w->id, len, len);
-       char buf[1024];
+       char buf[24];
        sprintf(buf, "%zX\r\n", len);
        
        ssize_t bytes = send(w->ofd, buf, strlen(buf), 0);
@@ -2187,7 +2190,8 @@ ssize_t web_client_send_deflate(struct web_client *w)
        // when using compression,
        // w->response.sent is the amount of bytes passed through compression
 
-       debug(D_DEFLATE, "%llu: web_client_send_deflate(): w->response.data->len = %d, w->response.sent = %d, w->response.zhave = %d, w->response.zsent = %d, w->response.zstream.avail_in = %d, w->response.zstream.avail_out = %d, w->response.zstream.total_in = %d, w->response.zstream.total_out = %d.", w->id, w->response.data->len, w->response.sent, w->response.zhave, w->response.zsent, w->response.zstream.avail_in, w->response.zstream.avail_out, w->response.zstream.total_in, w->response.zstream.total_out);
+       debug(D_DEFLATE, "%llu: web_client_send_deflate(): w->response.data->len = %d, w->response.sent = %d, w->response.zhave = %zu, w->response.zsent = %zu, w->response.zstream.avail_in = %d, w->response.zstream.avail_out = %d, w->response.zstream.total_in = %d, w->response.zstream.total_out = %d.",
+               w->id, w->response.data->len, w->response.sent, w->response.zhave, w->response.zsent, w->response.zstream.avail_in, w->response.zstream.avail_out, w->response.zstream.total_in, w->response.zstream.total_out);
 
        if(w->response.data->len - w->response.sent == 0 && w->response.zstream.avail_in == 0 && w->response.zhave == w->response.zsent && w->response.zstream.avail_out != 0) {
                // there is nothing to send
@@ -2282,7 +2286,9 @@ ssize_t web_client_send_deflate(struct web_client *w)
                debug(D_WEB_CLIENT, "%llu: Sent %d bytes.", w->id, len);
        }
        else if(len == 0) {
-               debug(D_WEB_CLIENT, "%llu: Did not send any bytes to the client (zhave = %ld, zsent = %ld, need to send = %ld).", w->id, w->response.zhave, w->response.zsent, w->response.zhave - w->response.zsent);
+               debug(D_WEB_CLIENT, "%llu: Did not send any bytes to the client (zhave = %zu, zsent = %zu, need to send = %zu).",
+                       w->id, w->response.zhave, w->response.zsent, w->response.zhave - w->response.zsent);
+               
                WEB_CLIENT_IS_DEAD(w);
        }
        else {
index 9d5497431ef75c6f3446da6c1c50925eda090c0b..1ef5a54ee0f234abf944160e333d805ed807de2b 100644 (file)
@@ -219,10 +219,13 @@ int create_listen_socket(void) {
        else if(!strcmp(ipv, "ipv6") || !strcmp(ipv, "IPV6") || !strcmp(ipv, "IPv6") || !strcmp(ipv, "6")) ip = 6;
        else error("Cannot understand ip version '%s'. Assuming 'any'.", ipv);
 
-       if(ip == 0 || ip == 6) listen_fd = create_listen_socket6(config_get("global", "bind socket to IP", "*"), listen_port, listen_backlog);
-       if(listen_fd < 0) {
+       if(ip == 0 || ip == 6)
+               listen_fd = create_listen_socket6(config_get("global", "bind socket to IP", "*"), listen_port, listen_backlog);
+
+       if(listen_fd == -1) {
                listen_fd = create_listen_socket4(config_get("global", "bind socket to IP", "*"), listen_port, listen_backlog);
-               // if(listen_fd >= 0 && ip != 4) info("Managed to open an IPv4 socket on port %d.", listen_port);
+               //if(listen_fd != -1 && ip != 4)
+               //      info("Managed to open an IPv4 socket on port %d.", listen_port);
        }
 
        return listen_fd;