Home | History | Annotate | Download | only in netmgr

Lines Matching refs:sock

28 proxyudp_closing(isc_nmsocket_t *sock);
31 proxyudp_stop_reading(isc_nmsocket_t *sock);
50 proxyudp_call_connect_cb(isc_nmsocket_t *sock, isc_nmhandle_t *handle,
54 proxyudp_try_close_unused(isc_nmsocket_t *sock);
63 stop_proxyudp_child(isc_nmsocket_t *sock);
66 proxyudp_clear_proxy_header_data(isc_nmsocket_t *sock);
69 proxyudp_get_send_req(isc_mem_t *mctx, isc_nmsocket_t *sock,
81 proxyudp_closing(isc_nmsocket_t *sock) {
82 return isc__nmsocket_closing(sock) ||
83 (sock->client && sock->outerhandle == NULL) ||
84 (sock->outerhandle != NULL &&
85 isc__nmsocket_closing(sock->outerhandle->sock));
89 proxyudp_stop_reading(isc_nmsocket_t *sock) {
90 isc__nmsocket_timer_stop(sock);
91 if (sock->outerhandle != NULL) {
92 isc__nm_stop_reading(sock->outerhandle->sock);
97 isc__nm_proxyudp_failed_read_cb(isc_nmsocket_t *sock, const isc_result_t result,
99 REQUIRE(VALID_NMSOCK(sock));
101 REQUIRE(sock->tid == isc_tid());
111 if (sock->client) {
112 proxyudp_stop_reading(sock);
115 if (sock->reading) {
116 sock->reading = false;
118 if (sock->recv_cb != NULL) {
119 isc__nm_uvreq_t *req = isc__nm_get_read_req(sock, NULL);
120 isc__nm_readcb(sock, req, result, async);
124 if (sock->client) {
125 isc__nmsocket_clearcb(sock);
126 isc__nmsocket_prep_destroy(sock);
138 isc_nmsocket_t *proxysock = proxyhandle->sock;
210 isc_nmsocket_t *sock;
214 sock = isc_mempool_get(worker->nmsocket_pool);
215 isc__nmsocket_init(sock, worker, type, addr, NULL);
216 sock->result = ISC_R_UNSET;
220 sock->read_timeout = initial;
221 sock->client = !is_server;
222 sock->connecting = !is_server;
225 &sock->proxy.proxy2.outbuf,
230 sock->proxy.udp_server_socks_num = nworkers;
231 sock->proxy.udp_server_socks = isc_mem_cget(
235 return sock;
241 isc_nmsocket_t *sock = (isc_nmsocket_t *)cbarg;
244 REQUIRE(VALID_NMSOCK(sock));
247 if (sock->client) {
248 proxysock = sock;
250 INSIST(sock->type == isc_nm_proxyudplistener);
251 proxysock = sock->proxy.udp_server_socks[handle->sock->tid];
380 proxyudp_call_connect_cb(isc_nmsocket_t *sock, isc_nmhandle_t *handle,
382 sock->connecting = false;
383 if (sock->connect_cb == NULL) {
387 sock->connect_cb(handle, result, sock->connect_cbarg);
389 isc__nmsocket_clearcb(handle->sock);
391 sock->connected = true;
396 proxyudp_try_close_unused(isc_nmsocket_t *sock) {
398 if (sock->statichandle == NULL && sock->proxy.nsending == 0) {
399 if (sock->client) {
400 isc__nmsocket_prep_destroy(sock);
401 } else if (sock->outerhandle) {
402 isc_nmhandle_detach(&sock->outerhandle);
409 isc_nmsocket_t *sock = (isc_nmsocket_t *)cbarg;
412 REQUIRE(VALID_NMSOCK(sock));
414 sock->tid = isc_tid();
422 sock->iface = isc_nmhandle_localaddr(handle);
423 sock->peer = isc_nmhandle_peeraddr(handle);
424 isc_nmhandle_attach(handle, &sock->outerhandle);
425 handle->sock->proxy.sock = sock;
426 sock->active = true;
427 sock->connected = true;
428 sock->connecting = false;
430 proxyhandle = isc__nmhandle_get(sock, &sock->peer, &sock->iface);
431 proxyudp_call_connect_cb(sock, proxyhandle, ISC_R_SUCCESS);
434 proxyudp_try_close_unused(sock);
436 isc__nmsocket_detach(&handle->sock->proxy.sock);
440 proxyhandle = isc__nmhandle_get(sock, NULL, NULL);
441 sock->closed = true;
442 proxyudp_call_connect_cb(sock, proxyhandle, result);
444 isc__nmsocket_detach(&sock);
497 isc_nmsocket_t *sock = arg;
500 if (sock == NULL) {
504 INSIST(VALID_NMSOCK(sock));
505 INSIST(sock->tid == isc_tid());
507 listener = sock->listener;
508 sock->listener = NULL;
513 if (sock->outerhandle != NULL) {
514 proxyudp_stop_reading(sock);
515 isc_nmhandle_detach(&sock->outerhandle);
518 tid = sock->tid;
519 isc__nmsocket_prep_destroy(sock);
525 stop_proxyudp_child(isc_nmsocket_t *sock) {
526 REQUIRE(VALID_NMSOCK(sock));
528 if (sock->tid == 0) {
529 stop_proxyudp_child_job(sock);
531 isc_async_run(sock->worker->loop, stop_proxyudp_child_job,
532 sock);
540 REQUIRE(listener->proxy.sock == NULL);
554 proxyudp_clear_proxy_header_data(isc_nmsocket_t *sock) {
555 if (sock->client && sock->proxy.proxy2.outbuf != NULL) {
556 isc_buffer_free(&sock->proxy.proxy2.outbuf);
561 isc__nm_proxyudp_cleanup_data(isc_nmsocket_t *sock) {
562 switch (sock->type) {
564 if (sock->proxy.send_req != NULL) {
565 proxyudp_put_send_req(sock->worker->mctx,
566 sock->proxy.send_req, true);
569 proxyudp_clear_proxy_header_data(sock);
572 isc_mem_cput(sock->worker->mctx, sock->proxy.udp_server_socks,
573 sock->proxy.udp_server_socks_num,
577 INSIST(sock->proxy.sock == NULL);
586 isc_nmsocket_t *sock = NULL;
589 REQUIRE(VALID_NMSOCK(handle->sock));
590 REQUIRE(handle->sock->type == isc_nm_proxyudpsocket);
592 sock = handle->sock;
593 if (sock->outerhandle != NULL) {
594 INSIST(VALID_NMHANDLE(sock->outerhandle));
595 isc_nmhandle_cleartimeout(sock->outerhandle);
601 isc_nmsocket_t *sock = NULL;
604 REQUIRE(VALID_NMSOCK(handle->sock));
605 REQUIRE(handle->sock->type == isc_nm_proxyudpsocket);
607 sock = handle->sock;
608 if (sock->outerhandle != NULL) {
609 INSIST(VALID_NMHANDLE(sock->outerhandle));
610 isc_nmhandle_settimeout(sock->outerhandle, timeout);
617 sock = NULL;
620 REQUIRE(VALID_NMSOCK(handle->sock));
621 REQUIRE(handle->sock->type == isc_nm_proxyudpsocket);
623 sock = handle->sock;
624 if (sock->outerhandle != NULL) {
625 INSIST(VALID_NMHANDLE(sock->outerhandle));
627 isc_nmhandle_setwritetimeout(sock->outerhandle, write_timeout);
632 isc__nmsocket_proxyudp_timer_running(isc_nmsocket_t *sock) {
633 REQUIRE(VALID_NMSOCK(sock));
634 REQUIRE(sock->type == isc_nm_proxyudpsocket);
636 if (sock->outerhandle != NULL) {
637 INSIST(VALID_NMHANDLE(sock->outerhandle));
638 REQUIRE(VALID_NMSOCK(sock->outerhandle->sock));
639 return isc__nmsocket_timer_running(sock->outerhandle->sock);
646 isc__nmsocket_proxyudp_timer_restart(isc_nmsocket_t *sock) {
647 REQUIRE(VALID_NMSOCK(sock));
648 REQUIRE(sock->type == isc_nm_proxyudpsocket);
650 if (sock->outerhandle != NULL) {
651 INSIST(VALID_NMHANDLE(sock->outerhandle));
652 REQUIRE(VALID_NMSOCK(sock->outerhandle->sock));
653 isc__nmsocket_timer_restart(sock->outerhandle->sock);
658 isc__nmsocket_proxyudp_timer_stop(isc_nmsocket_t *sock) {
659 REQUIRE(VALID_NMSOCK(sock));
660 REQUIRE(sock->type == isc_nm_proxyudpsocket);
662 if (sock->outerhandle != NULL) {
663 INSIST(VALID_NMHANDLE(sock->outerhandle));
664 REQUIRE(VALID_NMSOCK(sock->outerhandle->sock));
665 isc__nmsocket_timer_stop(sock->outerhandle->sock);
670 isc__nm_proxyudp_close(isc_nmsocket_t *sock) {
671 REQUIRE(VALID_NMSOCK(sock));
672 REQUIRE(sock->type == isc_nm_proxyudpsocket);
673 REQUIRE(sock->tid == isc_tid());
675 sock->closing = true;
681 proxyudp_stop_reading(sock);
682 sock->reading = false;
683 if (sock->outerhandle != NULL) {
684 isc_nmhandle_close(sock->outerhandle);
685 isc_nmhandle_detach(&sock->outerhandle);
688 if (sock->proxy.sock != NULL) {
689 isc__nmsocket_detach(&sock->proxy.sock);
693 sock->closed = true;
694 sock->active = false;
700 isc_nmsocket_t *sock = NULL;
702 sock = handle->sock;
703 REQUIRE(VALID_NMSOCK(sock));
704 REQUIRE(sock->type == isc_nm_proxyudpsocket);
705 REQUIRE(sock->recv_handle == NULL);
706 REQUIRE(sock->tid == isc_tid());
708 sock->recv_cb = cb;
709 sock->recv_cbarg = cbarg;
710 sock->reading = true;
712 if (isc__nm_closing(sock->worker)) {
713 isc__nm_proxyudp_failed_read_cb(sock, ISC_R_SHUTTINGDOWN,
716 } else if (proxyudp_closing(sock)) {
717 isc__nm_proxyudp_failed_read_cb(sock, ISC_R_CANCELED, true);
721 isc_nm_read(sock->outerhandle, proxyudp_read_cb, sock);
725 proxyudp_get_send_req(isc_mem_t *mctx, isc_nmsocket_t *sock,
730 if (sock->proxy.send_req != NULL) {
735 send_req = (proxyudp_send_req_t *)sock->proxy.send_req;
736 sock->proxy.send_req = NULL;
750 INSIST(sock->client);
751 INSIST(sock->proxy.proxy2.outbuf != NULL);
753 isc_buffer_usedregion(sock->proxy.proxy2.outbuf,
771 sock->proxy.nsending++;
788 isc_nmsocket_t *sock = send_req->proxyhandle->sock;
789 sock->proxy.nsending--;
791 if (sock->proxy.send_req == NULL) {
792 sock->proxy.send_req = send_req;
815 isc_nmsocket_t *sock = NULL;
819 REQUIRE(VALID_NMSOCK(send_req->proxyhandle->sock));
820 REQUIRE(send_req->proxyhandle->sock->tid == isc_tid());
822 mctx = send_req->proxyhandle->sock->worker->mctx;
827 isc__nmsocket_attach(proxyhandle->sock, &sock);
839 proxyudp_try_close_unused(sock);
840 isc__nmsocket_detach(&sock);
846 isc_nmsocket_t *sock = NULL;
851 REQUIRE(VALID_NMSOCK(handle->sock));
853 sock = handle->sock;
855 REQUIRE(sock->type == isc_nm_proxyudpsocket);
857 if (isc__nm_closing(sock->worker)) {
859 } else if (proxyudp_closing(sock)) {
864 isc__nm_uvreq_t *uvreq = isc__nm_uvreq_get(sock);
869 isc__nm_failed_send_cb(sock, uvreq, result, true);
873 send_req = proxyudp_get_send_req(sock->worker->mctx, sock, handle,
874 sock->client ? region : NULL, cb,
876 if (sock->client) {
879 isc_nm_send(sock->outerhandle, &send_data, proxyudp_send_cb,