removed log code again
This commit is contained in:
34
server.c
34
server.c
@@ -4,37 +4,14 @@
|
|||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdatomic.h>
|
/* #include <stdatomic.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <pthread.h>
|
#include <pthread.h> */
|
||||||
|
|
||||||
#define PORT 6008
|
#define PORT 6008
|
||||||
#define BACKLOG 16
|
#define BACKLOG 16
|
||||||
#define RECV_BUF 256
|
#define RECV_BUF 256
|
||||||
|
|
||||||
atomic_ullong request_count = 0;
|
|
||||||
|
|
||||||
void *logger_thread(void *arg) {
|
|
||||||
(void)arg;
|
|
||||||
while (1) {
|
|
||||||
sleep(24 * 60 * 60); // 1 day
|
|
||||||
|
|
||||||
unsigned long long count = atomic_exchange(&request_count, 0);
|
|
||||||
|
|
||||||
FILE *f = fopen("requests.log", "a");
|
|
||||||
if (!f) continue;
|
|
||||||
|
|
||||||
time_t now = time(NULL);
|
|
||||||
struct tm *tm = localtime(&now);
|
|
||||||
char ts[64];
|
|
||||||
strftime(ts, sizeof(ts), "%Y-%m-%d %H:%M:%S", tm);
|
|
||||||
|
|
||||||
fprintf(f, "%s | %llu requests served\n", ts, count);
|
|
||||||
fclose(f);
|
|
||||||
}
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
int server_fd = socket(AF_INET, SOCK_STREAM, 0);
|
int server_fd = socket(AF_INET, SOCK_STREAM, 0);
|
||||||
int opt = 1;
|
int opt = 1;
|
||||||
@@ -50,11 +27,6 @@ int main() {
|
|||||||
|
|
||||||
printf("listening port %d\nbacklog %d\nrecv buffer %d\n", PORT, BACKLOG, RECV_BUF);
|
printf("listening port %d\nbacklog %d\nrecv buffer %d\n", PORT, BACKLOG, RECV_BUF);
|
||||||
|
|
||||||
//add logger thread
|
|
||||||
pthread_t logger;
|
|
||||||
pthread_create(&logger, NULL, logger_thread, NULL);
|
|
||||||
pthread_detach(logger);
|
|
||||||
|
|
||||||
char buf[RECV_BUF];
|
char buf[RECV_BUF];
|
||||||
const char *hdr = "X-Forwarded-For:";
|
const char *hdr = "X-Forwarded-For:";
|
||||||
const size_t hdrlen = strlen(hdr);
|
const size_t hdrlen = strlen(hdr);
|
||||||
@@ -65,7 +37,6 @@ int main() {
|
|||||||
ssize_t r = recv(client, buf, sizeof(buf) -1, 0);
|
ssize_t r = recv(client, buf, sizeof(buf) -1, 0);
|
||||||
if (r <= 0) { close(client); continue; }
|
if (r <= 0) { close(client); continue; }
|
||||||
buf[r] = 0;
|
buf[r] = 0;
|
||||||
atomic_fetch_add(&request_count, 1);
|
|
||||||
//find header
|
//find header
|
||||||
char *ip = NULL;
|
char *ip = NULL;
|
||||||
for (ssize_t i = 0; i < r - (ssize_t)hdrlen; ++i) {
|
for (ssize_t i = 0; i < r - (ssize_t)hdrlen; ++i) {
|
||||||
@@ -91,7 +62,6 @@ int main() {
|
|||||||
send(client, head, strlen(head), 0);
|
send(client, head, strlen(head), 0);
|
||||||
send(client, lenbuf, len, 0);
|
send(client, lenbuf, len, 0);
|
||||||
if (iplen > 0) send(client, ip, iplen, 0);
|
if (iplen > 0) send(client, ip, iplen, 0);
|
||||||
|
|
||||||
close(client);
|
close(client);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user