|
|
|
@ -39,9 +39,7 @@ void segfault(int sig) {
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void *handle(void* arg) {
|
|
|
|
|
int client = *(int*)arg;
|
|
|
|
|
|
|
|
|
|
int handle(int client) {
|
|
|
|
|
ReqHeader request = readReqHeader(client);
|
|
|
|
|
ResHeader rawHeader;
|
|
|
|
|
if (errno == -1) {
|
|
|
|
@ -95,6 +93,11 @@ int srv(char* ADDR, int PORT) {
|
|
|
|
|
srvAddr.sin_port = htons(PORT);
|
|
|
|
|
srvAddr.sin_addr.s_addr = inet_addr(ADDR);
|
|
|
|
|
|
|
|
|
|
int opt = 1;
|
|
|
|
|
setsockopt(srvSocket, SOL_SOCKET, SO_REUSEADDR, (void *)opt, sizeof(int));
|
|
|
|
|
opt = 0;
|
|
|
|
|
setsockopt(srvSocket, SOL_SOCKET, SO_LINGER, (void *)opt, sizeof(int));
|
|
|
|
|
|
|
|
|
|
if (bind(
|
|
|
|
|
srvSocket,
|
|
|
|
|
(struct sockaddr*) &srvAddr,
|
|
|
|
@ -116,6 +119,6 @@ int srv(char* ADDR, int PORT) {
|
|
|
|
|
|
|
|
|
|
while(1) {
|
|
|
|
|
int client = accept(srvSocket, NULL, NULL);
|
|
|
|
|
handle(&client);
|
|
|
|
|
handle(client);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|