-/* @(#) $Id: syslogtcp.c,v 1.8 2009/06/24 18:53:07 dcid Exp $ */
+/* @(#) $Id: ./src/remoted/syslogtcp.c, 2011/09/08 dcid Exp $
+ */
/* Copyright (C) 2009 Trend Micro Inc.
* All right reserved.
*
* This program is a free software; you can redistribute it
* and/or modify it under the terms of the GNU General Public
- * License (version 3) as published by the FSF - Free Software
+ * License (version 2) as published by the FSF - Free Software
* Foundation
*/
-/* OS_IPNotAllowed, v0.1, 2005/02/11
+/* OS_IPNotAllowed, v0.1, 2005/02/11
* Checks if an IP is not allowed.
*/
static int OS_IPNotAllowed(char *srcip)
{
int sb_size = OS_MAXSTR;
int r_sz = 0;
-
+
char buffer[OS_MAXSTR +2];
char storage_buffer[OS_MAXSTR +2];
char tmp_buffer[OS_MAXSTR +2];
char *buffer_pt = NULL;
-
+ /* Create PID file */
+ if(CreatePID(ARGV0, getpid()) < 0)
+ {
+ ErrorExit(PID_ERROR,ARGV0);
+ }
+
/* Initializing some variables */
memset(buffer, '\0', OS_MAXSTR +2);
memset(storage_buffer, '\0', OS_MAXSTR +2);
if((r_sz = OS_RecvTCPBuffer(client_socket, buffer, OS_MAXSTR -2)) < 0)
{
close(client_socket);
+ DeletePID(ARGV0);
return;
}
storage_buffer[0] = '\0';
continue;
}
-
+
strncat(storage_buffer, buffer, sb_size);
sb_size -= r_sz;
- continue;
+ continue;
}
-
+
/* Seeing if we received more then just one message */
if(*(buffer_pt +1) != '\0')
{
}
strncat(storage_buffer, buffer, sb_size);
-
+
/* Removing carriage returns too */
buffer_pt = strchr(storage_buffer, '\r');
if(buffer_pt)
*buffer_pt = '\0';
-
+
/* Removing syslog header */
if(storage_buffer[0] == '<')
{
if(SendMSG(logr.m_queue, buffer_pt, srcip,SYSLOG_MQ) < 0)
{
merror(QUEUE_ERROR,ARGV0,DEFAULTQUEUE, strerror(errno));
- if((logr.m_queue = StartMQ(DEFAULTQUEUE,READ)) < 0)
+ if((logr.m_queue = StartMQ(DEFAULTQUEUE,WRITE)) < 0)
{
ErrorExit(QUEUE_FATAL,ARGV0,DEFAULTQUEUE);
}
int client_socket = 0;
int st_errors = 0;
int childcount = 0;
-
+
char srcip[IPSIZE +1];
/* Initializing some variables */
memset(srcip, '\0', IPSIZE + 1);
-
+
/* Connecting to the message queue
* Exit if it fails.
*/
{
ErrorExit(QUEUE_FATAL,ARGV0, DEFAULTQUEUE);
}
-
+
/* Infinit loop in here */
while(1)
}
- /* Forking to deal with new client */
+ /* Forking to deal with new client */
if(fork() == 0)
{
HandleClient(client_socket, srcip);