OSDN Git Service

Patch by Felipe Kellermann, fix a bug introduced in the last patch by adding a condit...
authorGlenn L McGrath <bug1@ihug.co.nz>
Tue, 14 Sep 2004 18:12:13 +0000 (18:12 -0000)
committerGlenn L McGrath <bug1@ihug.co.nz>
Tue, 14 Sep 2004 18:12:13 +0000 (18:12 -0000)
sysklogd/syslogd.c

index ef9cf21..8c6c44e 100644 (file)
@@ -432,24 +432,30 @@ static void logMessage(int pri, char *msg)
        /* todo: supress duplicates */
 
 #ifdef CONFIG_FEATURE_REMOTE_LOG
-       /* send message to remote logger */
-       if (-1 == remotefd) {
-               init_RemoteLog();
-       }
+       if (doRemoteLog == TRUE) {
+               /* trying connect the socket */
+               if (-1 == remotefd) {
+                       init_RemoteLog();
+               }
 
-       if (-1 != remotefd) {
-               now = 1;
-               snprintf(line, sizeof(line), "<%d> %s", pri, msg);
-
-       retry:
-       if(( -1 == sendto(remotefd, line, strlen(line), 0, 
-                                               (struct sockaddr *) &remoteaddr, 
-                                               sizeof(remoteaddr))) && (errno == EINTR)) {
-                       sleep(now);
-                       now *= 2;
-                       goto retry;
+               /* if we have a valid socket, send the message */
+               if (-1 != remotefd) {
+                       now = 1;
+                       snprintf(line, sizeof(line), "<%d> %s", pri, msg);
+
+               retry:
+                       /* send message to remote logger */
+                       if(( -1 == sendto(remotefd, line, strlen(line), 0,
+                                                       (struct sockaddr *) &remoteaddr,
+                                                       sizeof(remoteaddr))) && (errno == EINTR)) {
+                               /* sleep now seconds and retry (with now * 2) */
+                               sleep(now);
+                               now *= 2;
+                               goto retry;
+                       }
                }
        }
+
        if (local_logging == TRUE)
 #endif
        {