1
0
mirror of https://github.com/fumiama/simple-kanban.git synced 2026-06-08 01:51:32 +08:00
This commit is contained in:
源文雨
2022-10-26 16:11:10 +08:00
parent 46d8458376
commit a1fe896f56

View File

@@ -93,6 +93,7 @@ static void clean_timer(threadtimer_t* timer);
static void close_file(threadtimer_t *timer);
static int close_file_and_send(threadtimer_t *timer, char *data, size_t numbytes);
static int handle_accept(threadtimer_t* p);
static void handle_end(int signo);
static void handle_int(int signo);
static void handle_quit(int signo);
static void handle_segv(int signo);
@@ -119,10 +120,10 @@ static void accept_client() {
int i;
signal(SIGINT, handle_int);
signal(SIGQUIT, handle_quit);
signal(SIGKILL, handle_segv);
signal(SIGKILL, handle_end);
signal(SIGSEGV, handle_segv);
signal(SIGPIPE, SIG_IGN);
signal(SIGTERM, handle_segv);
signal(SIGTERM, handle_end);
FD_SET(fd, &tmpfds);
while(1) {
FD_COPY(&tmpfds, &rdfds);
@@ -336,7 +337,8 @@ static int handle_accept(threadtimer_t* p) {
take_word(p, cfg->sps, my_dat(p));
take_word(p, "ver", my_dat(p));
take_word(p, "dat", my_dat(p));
if((p)->numbytes > 0 && !(r = check_buffer((p)))) break;
if((p)->numbytes <= 0) break;
if(!(r = check_buffer((p)))) break;
}
printf("Recv finished, continune: %s\n", r?"true":"false");
return r;
@@ -357,7 +359,14 @@ static void handle_quit(int signo) {
}
static void handle_segv(int signo) {
puts("Handle kill/segv/term");
puts("Handle sigsegv");
close(fd);
fflush(stdout);
exit(0);
}
static void handle_end(int signo) {
puts("Handle kill/term");
close(fd);
fflush(stdout);
exit(0);