Lines Matching refs:fd
57 static void server_accept_client (server_p srv, int32_t fd);
58 static int32_t server_process_request (server_p srv, int32_t fd);
59 static int32_t server_send_error_response (server_p srv, int32_t fd,
61 static void server_close_fd (server_p srv, int32_t fd);
231 int fd; in server_shutdown() local
235 for (fd = 0; fd < srv->maxfd + 1; fd ++) in server_shutdown()
236 if (srv->fdidx[fd].valid) in server_shutdown()
237 server_close_fd(srv, fd); in server_shutdown()
253 int32_t n, fd; in server_do() local
271 for (fd = 0; fd < srv->maxfd + 1 && n > 0; fd ++) { in server_do()
272 if (!FD_ISSET(fd, &fdset)) in server_do()
275 assert(srv->fdidx[fd].valid); in server_do()
278 if (srv->fdidx[fd].server) in server_do()
279 server_accept_client(srv, fd); in server_do()
280 else if (server_process_request(srv, fd) != 0) in server_do()
281 server_close_fd(srv, fd); in server_do()
293 server_accept_client(server_p srv, int32_t fd) in server_accept_client() argument
301 cfd = accept(fd, NULL, NULL); in server_accept_client()
306 srv->fdidx[fd].control? "control" : "L2CAP", in server_accept_client()
316 if (!srv->fdidx[fd].control) { in server_accept_client()
374 omtu = srv->fdidx[fd].omtu; in server_accept_client()
395 srv->fdidx[cfd].control = srv->fdidx[fd].control; in server_accept_client()
409 server_process_request(server_p srv, int32_t fd) in server_process_request() argument
416 assert(FD_ISSET(fd, &srv->fdset)); in server_process_request()
417 assert(srv->fdidx[fd].valid); in server_process_request()
418 assert(!srv->fdidx[fd].server); in server_process_request()
419 assert(srv->fdidx[fd].rsp != NULL); in server_process_request()
420 assert(srv->fdidx[fd].omtu >= NG_L2CAP_MTU_MINIMUM); in server_process_request()
423 len = read(fd, srv->req, srv->imtu); in server_process_request()
428 srv->fdidx[fd].control? "control" : "L2CAP", in server_process_request()
434 srv->fdidx[fd].control? "control" : "L2CAP"); in server_process_request()
442 error = server_prepare_service_search_response(srv, fd); in server_process_request()
446 error = server_prepare_service_attribute_response(srv, fd); in server_process_request()
450 error = server_prepare_service_search_attribute_response(srv, fd); in server_process_request()
454 error = server_prepare_service_register_response(srv, fd); in server_process_request()
458 error = server_prepare_service_unregister_response(srv, fd); in server_process_request()
462 error = server_prepare_service_change_response(srv, fd); in server_process_request()
475 error = server_send_service_search_response(srv, fd); in server_process_request()
479 error = server_send_service_attribute_response(srv, fd); in server_process_request()
483 error = server_send_service_search_attribute_response(srv, fd); in server_process_request()
487 error = server_send_service_register_response(srv, fd); in server_process_request()
491 error = server_send_service_unregister_response(srv, fd); in server_process_request()
495 error = server_send_service_change_response(srv, fd); in server_process_request()
506 srv->fdidx[fd].control? "control" : "L2CAP", in server_process_request()
512 srv->fdidx[fd].control? "control" : "L2CAP", in server_process_request()
515 error = server_send_error_response(srv, fd, error); in server_process_request()
519 srv->fdidx[fd].control? "control" : "L2CAP", in server_process_request()
525 srv->fdidx[fd].rsp_cs = 0; in server_process_request()
526 srv->fdidx[fd].rsp_size = 0; in server_process_request()
527 srv->fdidx[fd].rsp_limit = 0; in server_process_request()
538 server_send_error_response(server_p srv, int32_t fd, uint16_t error) in server_send_error_response() argument
554 size = write(fd, &rsp, sizeof(rsp)); in server_send_error_response()
565 server_close_fd(server_p srv, int32_t fd) in server_close_fd() argument
569 assert(FD_ISSET(fd, &srv->fdset)); in server_close_fd()
570 assert(srv->fdidx[fd].valid); in server_close_fd()
572 close(fd); in server_close_fd()
574 FD_CLR(fd, &srv->fdset); in server_close_fd()
575 if (fd == srv->maxfd) in server_close_fd()
578 if (srv->fdidx[fd].rsp != NULL) in server_close_fd()
579 free(srv->fdidx[fd].rsp); in server_close_fd()
581 memset(&srv->fdidx[fd], 0, sizeof(srv->fdidx[fd])); in server_close_fd()
588 if (provider->fd == fd) in server_close_fd()