]> arthur.barton.de Git - netatalk.git/blobdiff - libatalk/util/logger.c
Fix fce merge conflict
[netatalk.git] / libatalk / util / logger.c
index 5ad984084fc1d9ff391abe0a83e300fdaac3e3eb..eb98f45b290d5817461b90498a399bfb5034bbf0 100644 (file)
@@ -539,6 +539,9 @@ void make_log_entry(enum loglevels loglevel, enum logtypes logtype,
         temp_buffer[len+1] = 0;
     }
 
+    if (type_configs[logtype].level >= log_debug)
+        goto log; /* bypass flooding checks */
+
     /* Prevent flooding: hash the message and check if we got the same one recently */
     int hash = hash_message(temp_buffer) + log_src_linenumber;
 
@@ -554,14 +557,9 @@ void make_log_entry(enum loglevels loglevel, enum logtypes logtype,
                 /* yes, log it and remove from array */
 
                 /* reusing log_details_buffer */
-                sprintf(log_details_buffer, "message repeated %i times: ", LOG_FLOODING_MAXCOUNT - 1);
-                iov[0].iov_base = log_details_buffer;
-                iov[0].iov_len = strlen(log_details_buffer);
-                iov[1].iov_base = temp_buffer;
-                iov[1].iov_len = strlen(temp_buffer);
-
-                /* Write "message repeated x times: ..." to log */
-                writev( fd, iov, 2);
+                sprintf(log_details_buffer, "message repeated %i times\n",
+                        LOG_FLOODING_MAXCOUNT - 1);
+                write(fd, log_details_buffer, strlen(log_details_buffer));
 
                 if ((i + 1) == LOG_FLOODING_ARRAY_SIZE) {
                     /* last array element, just decrement count */
@@ -587,9 +585,8 @@ void make_log_entry(enum loglevels loglevel, enum logtypes logtype,
         /* array is full, discard oldest entry printing "message repeated..." if count > 1 */
         if (log_flood_array[0].count >= LOG_FLOODING_MINCOUNT) {
             /* reusing log_details_buffer */
-            sprintf(log_details_buffer, "message %i lines before repeated %i times\n",
-                    LOG_FLOODING_ARRAY_SIZE , log_flood_array[0].count - 1);
-            /* Write "message repeated x times: ..." to log */
+            sprintf(log_details_buffer, "message repeated %i times\n",
+                    log_flood_array[0].count - LOG_FLOODING_MINCOUNT + 1);
             write(fd, log_details_buffer, strlen(log_details_buffer));
         }
         for (int i = 1; i < LOG_FLOODING_ARRAY_SIZE; i++) {