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.
35 lines
1.0 KiB
35 lines
1.0 KiB
#include <stdio.h> /* for printf() and fprintf() */
|
|
#include <sys/select.h> /* for select system call and related */
|
|
#include <sys/socket.h> /* for select system call and related */
|
|
#include <stdlib.h> /* for exit */
|
|
#include <string.h> /* for memset and stuff */
|
|
#include <unistd.h> /* for getopt */
|
|
#include <errno.h> /* for errno */
|
|
|
|
#include "../include/server.h"
|
|
#include "../include/monitor.h"
|
|
#include "../include/writeBuffer.h"
|
|
|
|
|
|
void
|
|
serverShutdown(tServer * server)
|
|
{
|
|
int i;
|
|
|
|
for (i=3; i<=server->maxFd; i++) {
|
|
if (FD_ISSET(i, &(server->socks))) {
|
|
if (i == server->servSock) {
|
|
shutdown(server->servSock, SHUT_RDWR);
|
|
close(server->servSock);
|
|
} else {
|
|
/* actual do nothing except closing the client */
|
|
clientClose(&((server->clients)[i]));
|
|
FD_CLR(i, &(server->socks));
|
|
}
|
|
}
|
|
}
|
|
|
|
if (NULL != server->wHandle) {
|
|
fclose(server->wHandle);
|
|
}
|
|
}
|