You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.2 KiB
40 lines
1.2 KiB
#include <sys/select.h> /* for select system call and related */
|
|
#include <string.h> /* for memset and stuff */
|
|
#include <stdlib.h> /* for getopt */
|
|
|
|
#include "../include/server.h"
|
|
#include "../include/socket.h"
|
|
#include "../include/monitor.h"
|
|
#include "../include/logRotate.h"
|
|
|
|
void
|
|
serverInit(
|
|
tServer * server,
|
|
unsigned int port,
|
|
unsigned int pending,
|
|
const char * logPath,
|
|
const char * namePat)
|
|
{
|
|
FD_ZERO(&(server->socks));
|
|
|
|
server->servSock = initServerSocket(port, pending);
|
|
server->maxFd = server->servSock;
|
|
FD_SET(server->servSock, &(server->socks));
|
|
|
|
strncpy(server->logPath, logPath, sizeof(server->logPath)-1);
|
|
strncpy(server->namePat, namePat, sizeof(server->namePat)-1);
|
|
|
|
memset(server->clients, 0, sizeof(server->clients));
|
|
|
|
/*
|
|
* try to open file (firstrun)
|
|
*/
|
|
if (NULL == server->wHandle) {
|
|
logRotate(&(server->wHandle), server->logPath, server->namePat);
|
|
if (NULL == server->wHandle) {
|
|
syslogMonitor(LOG_ERR, MON_INFO, "logfile.rotate",
|
|
"no valid handle for logfile - service terminated");
|
|
exit(EXIT_FAILURE);
|
|
}
|
|
}
|
|
}
|