mirror of
https://github.com/fumiama/simple-kanban.git
synced 2026-06-05 00:10:29 +08:00
fix
This commit is contained in:
12
server.c
12
server.c
@@ -182,7 +182,12 @@ static void accept_client() {
|
||||
timer->is_open = 0;
|
||||
timer->fp = NULL;
|
||||
timer->status = -1;
|
||||
FD_SET(timer->accept_fd, &rdfds);
|
||||
if(send_data(timer->accept_fd, "Welcome to simple kanban server.", 33) <= 0) {
|
||||
puts("Send banner to new client failed");
|
||||
clean_timer(timer);
|
||||
goto HANDLE_CLIENTS;
|
||||
}
|
||||
FD_SET(timer->accept_fd, &tmpfds);
|
||||
puts("Add new client into select list");
|
||||
} else if(FD_ISSET(fd, &erfds)) { // 主套接字错误
|
||||
int nfd = accept(fd, (struct sockaddr *)&client_addr, &struct_len);
|
||||
@@ -325,8 +330,7 @@ static int close_file_and_send(threadtimer_t *timer, char *data, size_t numbytes
|
||||
// handle_accept 初步解析指令,处理部分粘连
|
||||
static int handle_accept(threadtimer_t* p) {
|
||||
int r = 1;
|
||||
printf("Recv data from client@%d\n", p->index);
|
||||
if(!~((p)->status) && send_data(my_fd(p), "Welcome to simple kanban server.", 33) <= 0) return 0;
|
||||
printf("Recv data from client@%d, ", p->index);
|
||||
if((p)->status == 3) return s3_set_data(p);
|
||||
while(((p)->numbytes = recv(my_fd(p), my_dat(p), TIMERDATSZ, MSG_DONTWAIT)) > 0) {
|
||||
touch_timer(p);
|
||||
@@ -343,7 +347,7 @@ static int handle_accept(threadtimer_t* p) {
|
||||
if((p)->numbytes <= 0) break;
|
||||
if(!(r = check_buffer((p)))) break;
|
||||
}
|
||||
if((p)->numbytes <= 0) {
|
||||
if((p)->numbytes < 0) {
|
||||
perror("recv");
|
||||
r = r && errno == EWOULDBLOCK;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user