[bwm-tools-devel] COMMIT - r26 - in trunk: bwmd include
Brought to you by:
nkukard
From: SVN C. <sv...@li...> - 2005-01-03 14:49:20
|
Author: nkukard Date: 2005-01-03 16:49:04 +0200 (Mon, 03 Jan 2005) New Revision: 26 Modified: trunk/bwmd/bwmd.c trunk/bwmd/flow.c trunk/bwmd/flowControl.c trunk/bwmd/ipq.c trunk/bwmd/report.c trunk/include/flow.h Log: * Giang Hu <fre...@gm...> - Added logging support to bwmd Modified: trunk/bwmd/bwmd.c =================================================================== --- trunk/bwmd/bwmd.c 2005-01-03 14:48:14 UTC (rev 25) +++ trunk/bwmd/bwmd.c 2005-01-03 14:49:04 UTC (rev 26) @@ -206,8 +206,10 @@ // Check if we must become a daemon if (daemonize) + { + initSyslog("BWM", LOG_DEBUG); daemon(0,0); - + } // Create our threads to run IPQRunnerThread = g_thread_create(IPQRunner, (void *) runnerData, TRUE, NULL); flowRunnerThread = g_thread_create(flowRunner, (void *) runnerData, TRUE, NULL); Modified: trunk/bwmd/flow.c =================================================================== --- trunk/bwmd/flow.c 2005-01-03 14:48:14 UTC (rev 25) +++ trunk/bwmd/flow.c 2005-01-03 14:49:04 UTC (rev 26) @@ -32,9 +32,6 @@ #include "ipq.h" - - - // Function to update all our flow groups void updateGroups(struct flow_t *flow, int pktCount, int pktSize, int pktDropped, int pktBursted) { @@ -351,8 +348,7 @@ g_mutex_unlock(runnerData->IPQLock); if (status < 0) { - // FIXME - send error to log - fprintf(stderr,"Failed to ACCEPT packet\n"); + logMessage(LOG_ERR, "Failed to ACCEPT packet\n"); break; } @@ -466,9 +462,7 @@ for (i = 0; i < NUM_PRIO_BANDS; i++) queueChangeList[i] = NULL; - - if (!runnerData->daemon) - printf("Flow runner started...\n"); + logMessage(LOG_DEBUG, "Flow runner started...\n"); // Loop when we get a signal while (1) Modified: trunk/bwmd/flowControl.c =================================================================== --- trunk/bwmd/flowControl.c 2005-01-03 14:48:14 UTC (rev 25) +++ trunk/bwmd/flowControl.c 2005-01-03 14:49:04 UTC (rev 26) @@ -113,21 +113,21 @@ // Get us a socket if ((serverSock = socket(AF_INET, SOCK_STREAM, 0)) == -1) { - fprintf(stderr,"flowControl: Error getting socket: %s\n",strerror(errno)); + logMessage(LOG_ERR, "flowControl: Error getting socket: %s\n",strerror(errno)); return(NULL); } // Lose the pesky "address already in use" error message if (setsockopt(serverSock, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(int)) == -1) { - fprintf(stderr,"flowControl: Error setting socket options: %s\n",strerror(errno)); + logMessage(LOG_ERR, "flowControl: Error setting socket options: %s\n",strerror(errno)); return(NULL); } // Set us up as non blocking if (fcntl(serverSock,F_SETFL,O_NONBLOCK)) { - fprintf(stderr,"flowControl: Error setting socket to non-blocking: %s\n",strerror(errno)); + logMessage(LOG_ERR, "flowControl: Error setting socket to non-blocking: %s\n",strerror(errno)); return(NULL); } @@ -139,14 +139,14 @@ // and bind to it if (bind(serverSock, (struct sockaddr *) &listenAddr, sizeof(struct sockaddr)) == -1) { - fprintf(stderr,"flowControl: Error binding to socket: %s\n",strerror(errno)); + logMessage(LOG_ERR, "flowControl: Error binding to socket: %s\n",strerror(errno)); return(NULL); } // And listen on the socket if (listen(serverSock, 10) == -1) { - fprintf(stderr,"flowControl: Failed to listen on socket: %s\n",strerror(errno)); + logMessage(LOG_ERR, "flowControl: Failed to listen on socket: %s\n",strerror(errno)); return(NULL); } @@ -156,10 +156,8 @@ // Keep track of the biggest file descriptor fdmax = serverSock; // so far, it's this one + logMessage(LOG_DEBUG, "Stat thread started...\n"); - if (!runnerData->daemon) - printf("Stat thread started...\n"); - // Init everything to NOW gettimeofday(&now,NULL); lastSend = lastFree = lastReset = now; @@ -183,7 +181,7 @@ if (result == -1) { - fprintf(stderr,"flowControl: Failed to call select(): %s\n",strerror(errno)); + logMessage(LOG_ERR, "flowControl: Failed to call select(): %s\n",strerror(errno)); return(NULL); } @@ -235,9 +233,7 @@ myPacket.u.statusData = statusPacket; // And send it away if (sendall(tmpClient->fd, &myPacket, sizeof(struct ipc_packet_t)) == -1) - { - fprintf(stderr,"flowControl: Failed to write to client: %s\n",strerror(errno)); - } + logMessage(LOG_DEBUG, "flowControl: Failed to write to client: %s\n",strerror(errno)); statusItem = g_list_next(statusItem); } @@ -272,9 +268,7 @@ myPacket.u.statusData = statusPacket; // And send it away if (sendall(tmpClient->fd, &myPacket, sizeof(struct ipc_packet_t)) == -1) - { - fprintf(stderr,"flowControl: Failed to write to client: %s\n",strerror(errno)); - } + logMessage(LOG_DEBUG, "flowControl: Failed to write to client: %s\n",strerror(errno)); statusItem = g_list_next(statusItem); } @@ -298,7 +292,7 @@ // Accept the connection if ((newfd = accept(serverSock, (struct sockaddr *) &remoteAddr, &addrlen)) == -1) - fprintf(stderr,"flowControl: Failed to accept connection: %s\n",strerror(errno)); + logMessage(LOG_DEBUG, "flowControl: Failed to accept connection: %s\n",strerror(errno)); else { tmpClient = (struct ipc_client_t*) malloc(sizeof(struct ipc_client_t)); @@ -314,7 +308,7 @@ // Keep track of max fd's if (newfd > fdmax) fdmax = newfd; - printf("flowControl: New connection from %s on socket %d\n", inet_ntoa(remoteAddr.sin_addr), newfd); + logMessage(LOG_DEBUG, "flowControl: New connection from %s on socket %d\n", inet_ntoa(remoteAddr.sin_addr), newfd); } } @@ -336,9 +330,9 @@ // Got error or connection closed by client if (nbytes == 0) // Connection closed - printf("flowControl: Socket %d hung up\n", tmpClient->fd); + logMessage(LOG_DEBUG, "flowControl: Socket %d hung up\n", tmpClient->fd); else - fprintf(stderr,"flowControl: Error reading data: %s\n", strerror(errno)); + logMessage(LOG_DEBUG, "flowControl: Error reading data: %s\n", strerror(errno)); // Close and remove from master set close(tmpClient->fd); FD_CLR(tmpClient->fd, &master_fds); @@ -361,7 +355,7 @@ sendall(tmpClient->fd, &myPacket, sizeof(struct ipc_packet_t)); break; case IPC_PACKET_PONG: - printf("Received a PONG from %i\n",i); + logMessage(LOG_DEBUG, "Received a PONG from %i\n",i); break; case IPC_PACKET_ADD: i = 0; @@ -370,7 +364,7 @@ tmpFlow = findFlowByName(runnerData->flows,myPacket.u.statusData.flowName); if (tmpFlow) { - printf("Adding flow \"%s\" to update run\n",myPacket.u.statusData.flowName); + logMessage(LOG_DEBUG, "Adding flow \"%s\" to update run\n",myPacket.u.statusData.flowName); if (!g_list_find(tmpClient->flowStatusList,tmpFlow)) tmpClient->flowStatusList = g_list_append(tmpClient->flowStatusList,tmpFlow); i = 1; @@ -381,7 +375,7 @@ tmpGroup = findGroupByName(runnerData->groups,myPacket.u.statusData.flowName); if (tmpGroup) { - printf("Adding group \"%s\" to update run\n",myPacket.u.statusData.flowName); + logMessage(LOG_DEBUG, "Adding group \"%s\" to update run\n",myPacket.u.statusData.flowName); if (!g_list_find(tmpClient->groupStatusList,tmpGroup)) tmpClient->groupStatusList = g_list_append(tmpClient->groupStatusList, tmpGroup); @@ -390,7 +384,7 @@ } if (!i) - printf("Failed to find flow or group: %s\n",myPacket.u.statusData.flowName); + logMessage(LOG_DEBUG, "Failed to find flow or group: %s\n",myPacket.u.statusData.flowName); break; case IPC_PACKET_DEL: @@ -400,9 +394,8 @@ tmpFlow = findFlowByName(runnerData->flows,myPacket.u.statusData.flowName); if (tmpFlow) { - printf("Deleting flow \"%s\" from update run\n",myPacket.u.statusData.flowName); - //if (!g_list_find(tmpClient->flowStatusList,tmpFlow)) - tmpClient->flowStatusList = g_list_remove(tmpClient->flowStatusList,tmpFlow); + logMessage(LOG_DEBUG, "Deleting flow \"%s\" from update run\n",myPacket.u.statusData.flowName); + tmpClient->flowStatusList = g_list_remove(tmpClient->flowStatusList,tmpFlow); i = 1; } @@ -411,21 +404,20 @@ tmpGroup = findGroupByName(runnerData->groups,myPacket.u.statusData.flowName); if (tmpGroup) { - printf("Deleting group \"%s\" from update run\n", + logMessage(LOG_DEBUG, "Deleting group \"%s\" from update run\n", myPacket.u.statusData.flowName); - // if (!g_list_find(tmpClient->groupStatusList,tmpGroup)) - tmpClient->groupStatusList = g_list_remove(tmpClient->groupStatusList, - tmpGroup); + tmpClient->groupStatusList = g_list_remove(tmpClient->groupStatusList, + tmpGroup); i = 1; } } if (!i) - printf("Failed to find flow: %s\n",myPacket.u.statusData.flowName); + logMessage(LOG_DEBUG, "Failed to find flow: %s\n",myPacket.u.statusData.flowName); break; case IPC_PACKET_LIST_FLOWS: // Send flow list to the client - printf("Sending flow list\n"); + logMessage(LOG_DEBUG, "Sending flow list\n"); flowItem = g_list_first(runnerData->flows); while (flowItem) { @@ -436,7 +428,7 @@ sendall(tmpClient->fd, &myPacket, sizeof(struct ipc_packet_t)); flowItem = g_list_next(flowItem); } - printf("Sending group list\n"); + logMessage(LOG_DEBUG, "Sending group list\n"); // Send groups aswell, but fake it so it looks like flows groupItem = g_list_first(runnerData->groups); while (groupItem) @@ -451,7 +443,7 @@ // And an end packet myPacket.pktType = IPC_PACKET_LIST_END; sendall(tmpClient->fd, &myPacket, sizeof(struct ipc_packet_t)); - printf("List ended\n"); + logMessage(LOG_DEBUG, "List ended\n"); break; case IPC_PACKET_GET_NUM_FLOWS: // Reply with number of flows @@ -460,7 +452,7 @@ sendall(tmpClient->fd, &myPacket, sizeof(struct ipc_packet_t)); break; default: - printf("Received unknown packet type %i\n",myPacket.pktType); + logMessage(LOG_DEBUG, "Received unknown packet type %i\n",myPacket.pktType); break; } clientItem = g_list_next(clientItem); Modified: trunk/bwmd/ipq.c =================================================================== --- trunk/bwmd/ipq.c 2005-01-03 14:48:14 UTC (rev 25) +++ trunk/bwmd/ipq.c 2005-01-03 14:49:04 UTC (rev 26) @@ -288,15 +288,14 @@ unsigned int pkt_len = 0; GList *listItem; + + logMessage(LOG_INFO, "IPQ runner started...\n"); - if (!runnerData->daemon) - printf("IPQ runner started...\n"); - // Get IPQ handle runnerData->IPQHandle = getIPQHandle(); if (!runnerData->IPQHandle) { - fprintf(stderr,"Failed to get IPQ handle\n"); + logMessage(LOG_ERR, "Failed to get IPQ handle\n"); return(NULL); } @@ -313,7 +312,7 @@ // Fail if error if (status < 0) { - fprintf(stderr,"Failed to get packet from IPQ: %s\n",ipq_errstr()); + logMessage(LOG_WARNING, "Failed to get packet from IPQ: %s\n",ipq_errstr()); // Lock, we dead... accept it! destroyIPQHandle(runnerData->IPQHandle); return(NULL); @@ -323,7 +322,7 @@ switch (ipq_message_type(buf)) { case NLMSG_ERROR: - fprintf(stderr, "Received error message: IPQ = %s, SYSTEM = %s\n",ipq_errstr(),strerror(errno)); + logMessage(LOG_WARNING, "Received error message: IPQ = %s, SYSTEM = %s\n",ipq_errstr(),strerror(errno)); break; case IPQM_PACKET: @@ -356,19 +355,18 @@ // Queue the packet... status = queuePacket(runnerData,packet->payload->mark,packet); if (status < 0) - fprintf(stderr,"Failed to queue packet\n"); - + logMessage(LOG_WARNING, "Failed to queue packet\n"); break; default: - fprintf(stderr, "Unknown message type!\n"); + logMessage(LOG_WARNING, "Unknown message type!\n"); break; } } closeIPQHandle(runnerData->IPQHandle); - printf("Exiting IPQ runner thread\n"); + logMessage(LOG_INFO, "Exiting IPQ runner thread\n"); } Modified: trunk/bwmd/report.c =================================================================== --- trunk/bwmd/report.c 2005-01-03 14:48:14 UTC (rev 25) +++ trunk/bwmd/report.c 2005-01-03 14:49:04 UTC (rev 26) @@ -66,7 +66,7 @@ opRes = read(fd,&fileHeader,sizeof(struct aLogFileHeader_t)); if (opRes != sizeof(struct aLogFileHeader_t)) { - fprintf(stderr,"Error reading header from \"%s\": %s\n",filename,strerror(errno)); + logMessage(LOG_DEBUG, "Error reading header from \"%s\": %s\n",filename,strerror(errno)); err = 1; } // If no errors seek... @@ -76,7 +76,7 @@ opRes = lseek(fd,0,SEEK_END); if (opRes < 0) { - fprintf(stderr,"Error seeking end of file \"%s\": %s\n",filename,strerror(errno)); + logMessage(LOG_DEBUG, "Error seeking end of file \"%s\": %s\n",filename,strerror(errno)); err = 1; } } @@ -87,7 +87,7 @@ opRes = write(fd,&reportData->entry,sizeof(struct aLogFileEntry_t)); if (opRes != sizeof(struct aLogFileEntry_t)) { - fprintf(stderr,"Error writing record to file \"%s\": %s\n",filename,strerror(errno)); + logMessage(LOG_DEBUG, "Error writing record to file \"%s\": %s\n",filename,strerror(errno)); err = 1; } else @@ -107,7 +107,7 @@ opRes = lseek(fd,0,SEEK_SET); if (opRes < 0) { - fprintf(stderr,"Error seeking beginning of file \"%s\": %s\n",filename,strerror(errno)); + logMessage(LOG_DEBUG, "Error seeking beginning of file \"%s\": %s\n",filename,strerror(errno)); err = 1; } } @@ -118,7 +118,7 @@ opRes = write(fd,&fileHeader,sizeof(struct aLogFileHeader_t)); if (opRes != sizeof(struct aLogFileHeader_t)) { - fprintf(stderr,"Error writing header to file \"%s\": %s\n",filename,strerror(errno)); + logMessage(LOG_DEBUG, "Error writing header to file \"%s\": %s\n",filename,strerror(errno)); err = 1; } } @@ -132,7 +132,7 @@ // Check if file doesn't exist if (errno == ENOENT) { - printf("Creating report file %s\n",filename); + logMessage(LOG_DEBUG, "Creating report file %s\n",filename); // If not create it fd = open(filename,O_CREAT|O_RDWR,S_IREAD|S_IWRITE); if (fd > 0) @@ -148,7 +148,7 @@ opRes = write(fd,&fileHeader,sizeof(struct aLogFileHeader_t)); if (opRes != sizeof(struct aLogFileHeader_t)) { - fprintf(stderr,"Error writing header to \"%s\": %s\n",filename,strerror(errno)); + logMessage(LOG_DEBUG, "Error writing header to \"%s\": %s\n",filename,strerror(errno)); err = 1; } // If no errors write more... @@ -157,17 +157,17 @@ opRes = write(fd,&reportData->entry,sizeof(struct aLogFileEntry_t)); if (opRes != sizeof(struct aLogFileEntry_t)) { - fprintf(stderr,"Error writing record to \"%s\": %s\n",filename,strerror(errno)); + logMessage(LOG_DEBUG, "Error writing record to \"%s\": %s\n",filename,strerror(errno)); err = 1; } } close(fd); } else - fprintf(stderr,"Stat error on \"%s\": %s\n",filename,strerror(errno)); + logMessage(LOG_DEBUG, "Stat error on \"%s\": %s\n",filename,strerror(errno)); } else - fprintf(stderr,"Failed to open file \"%s\": %s\n",filename,strerror(errno)); + logMessage(LOG_DEBUG, "Failed to open file \"%s\": %s\n",filename,strerror(errno)); } return(NULL); @@ -181,9 +181,8 @@ struct runnerData_t *runnerData = (struct runnerData_t*) data; GList *flowItem, *groupItem; - - if (!runnerData->daemon) - printf("Report runner started...\n"); + + logMessage(LOG_DEBUG, "Report runner started...\n"); // Loop every 1s and reset everything while (1) { Modified: trunk/include/flow.h =================================================================== --- trunk/include/flow.h 2005-01-03 14:48:14 UTC (rev 25) +++ trunk/include/flow.h 2005-01-03 14:49:04 UTC (rev 26) @@ -29,6 +29,7 @@ #include <glib.h> #include <linux/netfilter.h> #include <sys/time.h> +#include <syslog.h> #include "common.h" #include "ipq.h" #include "libipq.h" @@ -183,7 +184,7 @@ (flow->curQueueSize + pktSize >= flow->maxQueueSize && flow->maxQueueSize != 0)); } +extern void logMessage(int priority, const char *fmt, ...); - #endif |