aboutsummaryrefslogtreecommitdiff
path: root/sysklogd/syslogd.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysklogd/syslogd.c')
-rw-r--r--sysklogd/syslogd.c36
1 files changed, 21 insertions, 15 deletions
diff --git a/sysklogd/syslogd.c b/sysklogd/syslogd.c
index ef9cf2162..8c6c44ee0 100644
--- a/sysklogd/syslogd.c
+++ b/sysklogd/syslogd.c
@@ -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
{