Lines Matching refs:fd
86 static void server_accept_client (server_p srv, int32_t fd);
87 static int32_t server_process_request (server_p srv, int32_t fd);
88 static int32_t server_send_error_response (server_p srv, int32_t fd,
90 static void server_close_fd (server_p srv, int32_t fd);
271 int fd; in server_shutdown() local
275 for (fd = 0; fd < srv->maxfd + 1; fd ++) in server_shutdown()
276 if (srv->fdidx[fd].valid) in server_shutdown()
277 server_close_fd(srv, fd); in server_shutdown()
293 int32_t n, fd; in server_do() local
311 for (fd = 0; fd < srv->maxfd + 1 && n > 0; fd ++) { in server_do()
312 if (!FD_ISSET(fd, &fdset)) in server_do()
315 assert(srv->fdidx[fd].valid); in server_do()
318 if (srv->fdidx[fd].server) in server_do()
319 server_accept_client(srv, fd); in server_do()
320 else if (server_process_request(srv, fd) != 0) in server_do()
321 server_close_fd(srv, fd); in server_do()
333 server_accept_client(server_p srv, int32_t fd) in server_accept_client() argument
341 cfd = accept(fd, NULL, NULL); in server_accept_client()
346 srv->fdidx[fd].control? "control" : "L2CAP", in server_accept_client()
354 if (!srv->fdidx[fd].control) { in server_accept_client()
388 omtu = srv->fdidx[fd].omtu; in server_accept_client()
409 srv->fdidx[cfd].control = srv->fdidx[fd].control; in server_accept_client()
423 server_process_request(server_p srv, int32_t fd) in server_process_request() argument
436 assert(FD_ISSET(fd, &srv->fdset)); in server_process_request()
437 assert(srv->fdidx[fd].valid); in server_process_request()
438 assert(!srv->fdidx[fd].server); in server_process_request()
439 assert(srv->fdidx[fd].rsp != NULL); in server_process_request()
440 assert(srv->fdidx[fd].omtu >= L2CAP_MTU_MINIMUM); in server_process_request()
454 len = recvmsg(fd, &msg, 0); in server_process_request()
459 srv->fdidx[fd].control? "control" : "L2CAP", in server_process_request()
465 srv->fdidx[fd].control? "control" : "L2CAP"); in server_process_request()
477 srv->fdidx[fd].priv = in server_process_request()
483 srv->fdidx[fd].priv = 1; in server_process_request()
490 error = server_prepare_service_search_response(srv, fd); in server_process_request()
494 error = server_prepare_service_attribute_response(srv, fd); in server_process_request()
498 error = server_prepare_service_search_attribute_response(srv, fd); in server_process_request()
502 error = server_prepare_service_register_response(srv, fd); in server_process_request()
506 error = server_prepare_service_unregister_response(srv, fd); in server_process_request()
510 error = server_prepare_service_change_response(srv, fd); in server_process_request()
523 error = server_send_service_search_response(srv, fd); in server_process_request()
527 error = server_send_service_attribute_response(srv, fd); in server_process_request()
531 error = server_send_service_search_attribute_response(srv, fd); in server_process_request()
535 error = server_send_service_register_response(srv, fd); in server_process_request()
539 error = server_send_service_unregister_response(srv, fd); in server_process_request()
543 error = server_send_service_change_response(srv, fd); in server_process_request()
554 srv->fdidx[fd].control? "control" : "L2CAP", in server_process_request()
560 srv->fdidx[fd].control? "control" : "L2CAP", in server_process_request()
563 error = server_send_error_response(srv, fd, error); in server_process_request()
567 srv->fdidx[fd].control? "control" : "L2CAP", in server_process_request()
573 srv->fdidx[fd].rsp_cs = 0; in server_process_request()
574 srv->fdidx[fd].rsp_size = 0; in server_process_request()
575 srv->fdidx[fd].rsp_limit = 0; in server_process_request()
586 server_send_error_response(server_p srv, int32_t fd, uint16_t error) in server_send_error_response() argument
602 size = write(fd, &rsp, sizeof(rsp)); in server_send_error_response()
613 server_close_fd(server_p srv, int32_t fd) in server_close_fd() argument
617 assert(FD_ISSET(fd, &srv->fdset)); in server_close_fd()
618 assert(srv->fdidx[fd].valid); in server_close_fd()
620 close(fd); in server_close_fd()
622 FD_CLR(fd, &srv->fdset); in server_close_fd()
623 if (fd == srv->maxfd) in server_close_fd()
626 if (srv->fdidx[fd].rsp != NULL) in server_close_fd()
627 free(srv->fdidx[fd].rsp); in server_close_fd()
629 memset(&srv->fdidx[fd], 0, sizeof(srv->fdidx[fd])); in server_close_fd()
636 if (provider->fd == fd) in server_close_fd()