Lines Matching defs:dispsock

782 	dispsocket_t *dispsock;
786 dispsock = ISC_LIST_HEAD(qid->sock_table[bucket]);
788 while (dispsock != NULL) {
789 if (dispsock->portentry != NULL &&
790 dispsock->portentry->port == port &&
791 isc_sockaddr_equal(dest, &dispsock->host))
792 return (dispsock);
793 dispsock = ISC_LIST_NEXT(dispsock, blink);
816 dispsocket_t *dispsock;
832 dispsock = ISC_LIST_HEAD(disp->inactivesockets);
833 if (dispsock != NULL) {
834 ISC_LIST_UNLINK(disp->inactivesockets, dispsock, link);
835 sock = dispsock->socket;
836 dispsock->socket = NULL;
838 dispsock = isc_mempool_get(mgr->spool);
839 if (dispsock == NULL)
843 dispsock->socket = NULL;
844 dispsock->disp = disp;
845 dispsock->resp = NULL;
846 dispsock->portentry = NULL;
848 dispsock->task = NULL;
849 isc_task_attach(disp->task[r % disp->ntasks], &dispsock->task);
850 ISC_LINK_INIT(dispsock, link);
851 ISC_LINK_INIT(dispsock, blink);
852 dispsock->magic = DISPSOCK_MAGIC;
895 dispsock->socket = sock;
896 dispsock->host = *dest;
897 dispsock->portentry = portentry;
898 dispsock->bucket = bucket;
899 ISC_LIST_APPEND(qid->sock_table[bucket], dispsock, blink);
900 *dispsockp = dispsock;
910 destroy_dispsocket(disp, &dispsock);
921 dispsocket_t *dispsock;
929 dispsock = *dispsockp;
930 REQUIRE(!ISC_LINK_LINKED(dispsock, link));
933 dispsock->magic = 0;
934 if (dispsock->portentry != NULL)
935 deref_portentry(disp, &dispsock->portentry);
936 if (dispsock->socket != NULL)
937 isc_socket_detach(&dispsock->socket);
938 if (ISC_LINK_LINKED(dispsock, blink)) {
941 ISC_LIST_UNLINK(qid->sock_table[dispsock->bucket], dispsock,
945 if (dispsock->task != NULL)
946 isc_task_detach(&dispsock->task);
947 isc_mempool_put(disp->mgr->spool, dispsock);
957 deactivate_dispsocket(dns_dispatch_t *disp, dispsocket_t *dispsock) {
964 ISC_LIST_UNLINK(disp->activesockets, dispsock, link);
965 if (dispsock->resp != NULL) {
966 INSIST(dispsock->resp->dispsocket == dispsock);
967 dispsock->resp->dispsocket = NULL;
970 INSIST(dispsock->portentry != NULL);
971 deref_portentry(disp, &dispsock->portentry);
974 destroy_dispsocket(disp, &dispsock);
976 result = isc_socket_close(dispsock->socket);
980 ISC_LIST_UNLINK(qid->sock_table[dispsock->bucket], dispsock,
985 ISC_LIST_APPEND(disp->inactivesockets, dispsock, link);
993 destroy_dispsocket(disp, &dispsock);
1090 dispsocket_t *dispsock = ev->ev_arg;
1094 REQUIRE(VALID_DISPSOCK(dispsock));
1095 udp_recv(ev, dispsock->disp, dispsock);
1123 udp_recv(isc_event_t *ev_in, dns_dispatch_t *disp, dispsocket_t *dispsock) {
1150 if (dispsock == NULL && ev->ev_type == ISC_SOCKEVENT_RECVDONE) {
1160 if (dispsock != NULL &&
1161 (ev->result == ISC_R_CANCELED || dispsock->resp == NULL)) {
1163 * dispsock->resp can be NULL if this transaction was canceled
1169 deactivate_dispsocket(disp, dispsock);
1170 dispsock = NULL;
1191 if (dispsock != NULL) {
1192 resp = dispsock->resp;
1383 result = startrecv(disp, dispsock);
1384 if (result != ISC_R_SUCCESS && dispsock != NULL) {
1391 deactivate_dispsocket(disp, dispsock);
1586 startrecv(dns_dispatch_t *disp, dispsocket_t *dispsock) {
1597 if (disp->recv_pending != 0 && dispsock == NULL)
1604 dispsock == NULL)
1607 if (dispsock != NULL)
1608 socket = dispsock->socket;
1622 if (dispsock != NULL) {
1624 dispsock->task, udp_exrecv,
1625 dispsock);
2923 dispsocket_t *dispsock;
2939 for (dispsock = ISC_LIST_HEAD(disp->activesockets);
2940 dispsock != NULL;
2941 dispsock = ISC_LIST_NEXT(dispsock, link)) {
2942 isc_socket_cancel(dispsock->socket, dispsock->task,
3172 dispsocket_t *dispsock;
3211 for (dispsock = ISC_LIST_HEAD(disp->activesockets);
3212 dispsock != NULL;
3213 dispsock = ISC_LIST_NEXT(dispsock, link)) {
3214 isc_socket_cancel(dispsock->socket, dispsock->task,