summaryrefslogtreecommitdiff
path: root/src/system/dlt-system-syslog.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/system/dlt-system-syslog.c')
-rw-r--r--src/system/dlt-system-syslog.c161
1 files changed, 78 insertions, 83 deletions
diff --git a/src/system/dlt-system-syslog.c b/src/system/dlt-system-syslog.c
index 0f498b9..8fe9802 100644
--- a/src/system/dlt-system-syslog.c
+++ b/src/system/dlt-system-syslog.c
@@ -63,108 +63,103 @@ DLT_DECLARE_CONTEXT(syslogContext)
int init_socket(SyslogOptions opts)
{
- DLT_LOG(dltsystem,DLT_LOG_DEBUG,
- DLT_STRING("dlt-system-syslog, init socket, port: "),
- DLT_INT(opts.Port));
+ DLT_LOG(dltsystem, DLT_LOG_DEBUG,
+ DLT_STRING("dlt-system-syslog, init socket, port: "),
+ DLT_INT(opts.Port));
- int sock = -1;
- struct sockaddr_in syslog_addr;
+ int sock = -1;
+ struct sockaddr_in syslog_addr;
#ifdef DLT_USE_IPv6
- sock = socket(AF_INET6, SOCK_DGRAM, 0);
+ sock = socket(AF_INET6, SOCK_DGRAM, 0);
#else
- sock = socket(AF_INET, SOCK_DGRAM, 0);
+ sock = socket(AF_INET, SOCK_DGRAM, 0);
#endif
- if(sock < 0)
- {
- DLT_LOG(syslogContext, DLT_LOG_FATAL,
- DLT_STRING("Unable to create socket for SYSLOG."));
- return -1;
- }
+
+ if (sock < 0) {
+ DLT_LOG(syslogContext, DLT_LOG_FATAL,
+ DLT_STRING("Unable to create socket for SYSLOG."));
+ return -1;
+ }
#ifdef DLT_USE_IPv6
- syslog_addr.sin_family = AF_INET6;
+ syslog_addr.sin_family = AF_INET6;
#else
- syslog_addr.sin_family = AF_INET;
+ syslog_addr.sin_family = AF_INET;
#endif
- syslog_addr.sin_port = htons(opts.Port);
- syslog_addr.sin_addr.s_addr = INADDR_ANY;
- bzero(&(syslog_addr.sin_zero), 8);
-
- if (bind(sock, (struct sockaddr *)&syslog_addr,
- sizeof(struct sockaddr)) == -1)
- {
- DLT_LOG(syslogContext, DLT_LOG_FATAL,
- DLT_STRING("Unable to bind socket for SYSLOG."));
- close(sock);
- return -1;
- }
-
- return sock;
+ syslog_addr.sin_port = htons(opts.Port);
+ syslog_addr.sin_addr.s_addr = INADDR_ANY;
+ bzero(&(syslog_addr.sin_zero), 8);
+
+ if (bind(sock, (struct sockaddr *)&syslog_addr,
+ sizeof(struct sockaddr)) == -1) {
+ DLT_LOG(syslogContext, DLT_LOG_FATAL,
+ DLT_STRING("Unable to bind socket for SYSLOG."));
+ close(sock);
+ return -1;
+ }
+
+ return sock;
}
int read_socket(int sock)
{
- DLT_LOG(dltsystem, DLT_LOG_DEBUG,
- DLT_STRING("dlt-system-syslog, read socket"));
- char recv_data[RECV_BUF_SZ];
- struct sockaddr_in client_addr;
- socklen_t addr_len = sizeof(struct sockaddr_in);
-
- int bytes_read = recvfrom(sock, recv_data, RECV_BUF_SZ, 0,
- (struct sockaddr *) &client_addr, &addr_len);
- if(bytes_read == -1)
- {
- if(errno == EINTR)
- {
- return 0;
- }
- else
- {
- DLT_LOG(syslogContext, DLT_LOG_FATAL,
- DLT_STRING("Read from socket failed in SYSLOG."));
- return -1;
- }
- }
-
- recv_data[bytes_read] = '\0';
-
- if(bytes_read != 0)
- {
- DLT_LOG(syslogContext, DLT_LOG_INFO, DLT_STRING(recv_data));
- }
- return bytes_read;
+ DLT_LOG(dltsystem, DLT_LOG_DEBUG,
+ DLT_STRING("dlt-system-syslog, read socket"));
+ char recv_data[RECV_BUF_SZ];
+ struct sockaddr_in client_addr;
+ socklen_t addr_len = sizeof(struct sockaddr_in);
+
+ int bytes_read = recvfrom(sock, recv_data, RECV_BUF_SZ, 0,
+ (struct sockaddr *)&client_addr, &addr_len);
+
+ if (bytes_read == -1) {
+ if (errno == EINTR) {
+ return 0;
+ }
+ else {
+ DLT_LOG(syslogContext, DLT_LOG_FATAL,
+ DLT_STRING("Read from socket failed in SYSLOG."));
+ return -1;
+ }
+ }
+
+ recv_data[bytes_read] = '\0';
+
+ if (bytes_read != 0)
+ DLT_LOG(syslogContext, DLT_LOG_INFO, DLT_STRING(recv_data));
+
+ return bytes_read;
}
void syslog_thread(void *v_conf)
{
- DLT_LOG(dltsystem, DLT_LOG_DEBUG,
- DLT_STRING("dlt-system-syslog, in thread."));
-
- DltSystemConfiguration *conf = (DltSystemConfiguration *) v_conf;
- DLT_REGISTER_CONTEXT(syslogContext, conf->Syslog.ContextId, "SYSLOG Adapter");
-
- int sock = init_socket(conf->Syslog);
- if(sock < 0)
- return;
-
- while(!threads.shutdown)
- {
- if(read_socket(sock) < 0)
- {
- close(sock);
- return;
- }
- }
- close (sock);
+ DLT_LOG(dltsystem, DLT_LOG_DEBUG,
+ DLT_STRING("dlt-system-syslog, in thread."));
+
+ DltSystemConfiguration *conf = (DltSystemConfiguration *)v_conf;
+ DLT_REGISTER_CONTEXT(syslogContext, conf->Syslog.ContextId, "SYSLOG Adapter");
+
+ int sock = init_socket(conf->Syslog);
+
+ if (sock < 0)
+ return;
+
+ while (!threads.shutdown)
+ if (read_socket(sock) < 0) {
+ close(sock);
+ return;
+ }
+
+ close (sock);
}
void start_syslog(DltSystemConfiguration *conf)
{
- DLT_LOG(dltsystem, DLT_LOG_DEBUG,
- DLT_STRING("dlt-system-syslog, start syslog"));
- static pthread_attr_t t_attr;
- static pthread_t pt;
- pthread_create(&pt, &t_attr, (void *)syslog_thread, conf);
- threads.threads[threads.count++] = pt;
+ DLT_LOG(dltsystem, DLT_LOG_DEBUG,
+ DLT_STRING("dlt-system-syslog, start syslog"));
+ static pthread_attr_t t_attr;
+ static pthread_t pt;
+ pthread_create(&pt, &t_attr, (void *)syslog_thread, conf);
+ threads.threads[threads.count++] = pt;
}