• Home
  • Raw
  • Download

Lines Matching +full:curl +full:- +full:for +full:- +full:win

12  * are also available at https://curl.se/docs/copyright.html.
21 * SPDX-License-Identifier: curl
31 #include <sys/un.h> /* for sockaddr_un */
62 #include "cf-socket.h"
65 #include "url.h" /* for Curl_safefree() */
67 #include "sockaddr.h" /* required for Curl_sockaddr_storage */
85 /* It makes support for IPv4-mapped IPv6 addresses.
161 int optval = data->set.tcp_keepalive?1:0; in tcpkeepalive()
175 optval = curlx_sltosi(data->set.tcp_keepidle); in tcpkeepalive()
178 optval = curlx_sltosi(data->set.tcp_keepintvl); in tcpkeepalive()
189 optval = curlx_sltosi(data->set.tcp_keepidle); in tcpkeepalive()
199 optval = curlx_sltosi(data->set.tcp_keepidle); in tcpkeepalive()
209 optval = curlx_sltosi(data->set.tcp_keepintvl); in tcpkeepalive()
233 * any protocol-specific address structures. The variable declared here in Curl_sock_assign_addr()
237 dest->family = ai->ai_family; in Curl_sock_assign_addr()
240 dest->socktype = SOCK_STREAM; in Curl_sock_assign_addr()
241 dest->protocol = IPPROTO_TCP; in Curl_sock_assign_addr()
244 dest->socktype = SOCK_STREAM; in Curl_sock_assign_addr()
245 dest->protocol = IPPROTO_IP; in Curl_sock_assign_addr()
248 dest->socktype = SOCK_DGRAM; in Curl_sock_assign_addr()
249 dest->protocol = IPPROTO_UDP; in Curl_sock_assign_addr()
252 dest->addrlen = ai->ai_addrlen; in Curl_sock_assign_addr()
254 if(dest->addrlen > sizeof(struct Curl_sockaddr_storage)) in Curl_sock_assign_addr()
255 dest->addrlen = sizeof(struct Curl_sockaddr_storage); in Curl_sock_assign_addr()
256 memcpy(&dest->sa_addr, ai->ai_addr, dest->addrlen); in Curl_sock_assign_addr()
264 DEBUGASSERT(data->conn); in socket_open()
265 if(data->set.fopensocket) { in socket_open()
270 * CURL_SOCKET_BAD; otherwise it will return a not-connected socket. When in socket_open()
276 *sockfd = data->set.fopensocket(data->set.opensocket_client, in socket_open()
283 *sockfd = socket(addr->family, addr->socktype, addr->protocol); in socket_open()
291 if(data->conn->scope_id && (addr->family == AF_INET6)) { in socket_open()
292 struct sockaddr_in6 * const sa6 = (void *)&addr->sa_addr; in socket_open()
293 sa6->sin6_scope_id = data->conn->scope_id; in socket_open()
327 if(use_callback && conn && conn->fclosesocket) { in socket_close()
331 rc = conn->fclosesocket(conn->closesocket_client, sock); in socket_close()
337 /* tell the multi-socket code about this */ in socket_close()
362 Work-around: Make the Socket Send Buffer Size Larger Than the Program Send
365 The problem described in this knowledge-base is applied only to pre-Vista
367 SO_SNDBUF adjustment for Windows Vista and above.
413 unsigned short port = data->set.localport; /* use this port number, 0 for in bindlocal()
416 int portnum = data->set.localportrange; in bindlocal()
417 const char *dev = data->set.str[STRING_DEVICE]; in bindlocal()
437 int done = 0; /* -1 for error, 1 for address found */ in bindlocal()
461 * The interface might be a VRF, eg: vrf-blue, which means it cannot be in bindlocal()
479 scope, conn->scope_id, in bindlocal()
512 unsigned char ipver = conn->ip_version; in bindlocal()
516 conn->ip_version = CURL_IPRESOLVE_V4; in bindlocal()
519 conn->ip_version = CURL_IPRESOLVE_V6; in bindlocal()
525 conn->ip_version = ipver; in bindlocal()
529 Curl_printable_address(h->addr, myhost, sizeof(myhost)); in bindlocal()
531 dev, af, myhost, h->addr->ai_family); in bindlocal()
533 if(af != h->addr->ai_family) { in bindlocal()
545 done = -1; in bindlocal()
558 if(Curl_inet_pton(AF_INET6, myhost, &si6->sin6_addr) > 0) { in bindlocal()
559 si6->sin6_family = AF_INET6; in bindlocal()
560 si6->sin6_port = htons(port); in bindlocal()
571 si6->sin6_scope_id = (unsigned int)scope_id; in bindlocal()
581 (Curl_inet_pton(AF_INET, myhost, &si4->sin_addr) > 0)) { in bindlocal()
582 si4->sin_family = AF_INET; in bindlocal()
583 si4->sin_port = htons(port); in bindlocal()
592 data->state.errorbuf = FALSE; in bindlocal()
601 si6->sin6_family = AF_INET6; in bindlocal()
602 si6->sin6_port = htons(port); in bindlocal()
608 si4->sin_family = AF_INET; in bindlocal()
609 si4->sin_port = htons(port); in bindlocal()
616 for(;;) { in bindlocal()
620 conn->bits.bound = TRUE; in bindlocal()
624 if(--portnum > 0) { in bindlocal()
628 infof(data, "Bind to local port %d failed, trying next", port - 1); in bindlocal()
630 if(sock->sa_family == AF_INET) in bindlocal()
631 si4->sin_port = ntohs(port); in bindlocal()
634 si6->sin6_port = ntohs(port); in bindlocal()
642 data->state.os_errno = error = SOCKERRNO; in bindlocal()
664 * problems with it using all CPU in multi-threaded cases. in verifyconnect()
673 * mutex/critical-section the ntdll call is waiting on. in verifyconnect()
675 * Someone got to verify this on Win-NT 4.0, 2000." in verifyconnect()
719 * Determine the curl code for a socket connect() == -1 with errno.
745 infof(data, "Immediate connect fail for %s: %s", in socket_connect_result()
749 data->state.os_errno = error; in socket_connect_result()
758 * full record and then make a subsequent read for that.
792 ctx->sock = CURL_SOCKET_BAD; in cf_socket_ctx_init()
793 ctx->transport = transport; in cf_socket_ctx_init()
794 Curl_sock_assign_addr(&ctx->addr, ai, transport); in cf_socket_ctx_init()
795 Curl_bufq_init(&ctx->recvbuf, NW_RECV_CHUNK_SIZE, NW_RECV_CHUNKS); in cf_socket_ctx_init()
802 ctx->wblock_percent = (int)l; in cf_socket_ctx_init()
808 ctx->wpartial_percent = (int)l; in cf_socket_ctx_init()
814 ctx->rblock_percent = (int)l; in cf_socket_ctx_init()
820 ctx->recv_max = (size_t)l; in cf_socket_ctx_init()
836 struct cf_socket_ctx *ctx = rctx->cf->ctx; in nw_in_read()
840 nread = sread(ctx->sock, buf, len); in nw_in_read()
842 if(-1 == nread) { in nw_in_read()
858 nread = -1; in nw_in_read()
863 failf(rctx->data, "Recv failure: %s", in nw_in_read()
865 rctx->data->state.os_errno = sockerr; in nw_in_read()
867 nread = -1; in nw_in_read()
870 CURL_TRC_CF(rctx->data, rctx->cf, "nw_in_read(len=%zu, fd=%" in nw_in_read()
871 CURL_FORMAT_SOCKET_T ") -> %d, err=%d", in nw_in_read()
872 len, ctx->sock, (int)nread, *err); in nw_in_read()
878 struct cf_socket_ctx *ctx = cf->ctx; in cf_socket_close()
880 if(ctx && CURL_SOCKET_BAD != ctx->sock) { in cf_socket_close()
882 ")", ctx->sock); in cf_socket_close()
883 if(ctx->sock == cf->conn->sock[cf->sockindex]) in cf_socket_close()
884 cf->conn->sock[cf->sockindex] = CURL_SOCKET_BAD; in cf_socket_close()
885 socket_close(data, cf->conn, !ctx->accepted, ctx->sock); in cf_socket_close()
886 ctx->sock = CURL_SOCKET_BAD; in cf_socket_close()
887 if(ctx->active && cf->sockindex == FIRSTSOCKET) in cf_socket_close()
888 cf->conn->remote_addr = NULL; in cf_socket_close()
889 Curl_bufq_reset(&ctx->recvbuf); in cf_socket_close()
890 ctx->active = FALSE; in cf_socket_close()
891 ctx->buffer_recv = FALSE; in cf_socket_close()
892 memset(&ctx->started_at, 0, sizeof(ctx->started_at)); in cf_socket_close()
893 memset(&ctx->connected_at, 0, sizeof(ctx->connected_at)); in cf_socket_close()
896 cf->connected = FALSE; in cf_socket_close()
901 struct cf_socket_ctx *ctx = cf->ctx; in cf_socket_destroy()
905 Curl_bufq_free(&ctx->recvbuf); in cf_socket_destroy()
907 cf->ctx = NULL; in cf_socket_destroy()
913 struct cf_socket_ctx *ctx = cf->ctx; in set_local_ip()
916 if((ctx->sock != CURL_SOCKET_BAD) && in set_local_ip()
917 !(data->conn->handler->protocol & CURLPROTO_TFTP)) { in set_local_ip()
925 if(getsockname(ctx->sock, (struct sockaddr*) &ssloc, &slen)) { in set_local_ip()
932 ctx->ip.local_ip, &ctx->ip.local_port)) { in set_local_ip()
940 ctx->ip.local_ip[0] = 0; in set_local_ip()
941 ctx->ip.local_port = -1; in set_local_ip()
949 struct cf_socket_ctx *ctx = cf->ctx; in set_remote_ip()
952 if(!Curl_addr2string(&ctx->addr.sa_addr, ctx->addr.addrlen, in set_remote_ip()
953 ctx->ip.remote_ip, &ctx->ip.remote_port)) { in set_remote_ip()
956 ctx->error = errno; in set_remote_ip()
968 struct cf_socket_ctx *ctx = cf->ctx; in cf_socket_open()
975 DEBUGASSERT(ctx->sock == CURL_SOCKET_BAD); in cf_socket_open()
976 ctx->started_at = Curl_now(); in cf_socket_open()
977 result = socket_open(data, &ctx->addr, &ctx->sock); in cf_socket_open()
986 if(ctx->addr.family == AF_INET6) { in cf_socket_open()
987 set_ipv6_v6only(ctx->sock, 0); in cf_socket_open()
988 infof(data, " Trying [%s]:%d...", ctx->ip.remote_ip, ctx->ip.remote_port); in cf_socket_open()
992 infof(data, " Trying %s:%d...", ctx->ip.remote_ip, ctx->ip.remote_port); in cf_socket_open()
995 is_tcp = (ctx->addr.family == AF_INET in cf_socket_open()
996 || ctx->addr.family == AF_INET6) && in cf_socket_open()
997 ctx->addr.socktype == SOCK_STREAM; in cf_socket_open()
999 is_tcp = (ctx->addr.family == AF_INET) && in cf_socket_open()
1000 ctx->addr.socktype == SOCK_STREAM; in cf_socket_open()
1002 if(is_tcp && data->set.tcp_nodelay) in cf_socket_open()
1003 tcpnodelay(data, ctx->sock); in cf_socket_open()
1005 nosigpipe(data, ctx->sock); in cf_socket_open()
1007 Curl_sndbufset(ctx->sock); in cf_socket_open()
1009 if(is_tcp && data->set.tcp_keepalive) in cf_socket_open()
1010 tcpkeepalive(data, ctx->sock); in cf_socket_open()
1012 if(data->set.fsockopt) { in cf_socket_open()
1013 /* activate callback for setting socket options */ in cf_socket_open()
1015 error = data->set.fsockopt(data->set.sockopt_client, in cf_socket_open()
1016 ctx->sock, in cf_socket_open()
1030 if(ctx->addr.family == AF_INET in cf_socket_open()
1032 || ctx->addr.family == AF_INET6 in cf_socket_open()
1035 result = bindlocal(data, cf->conn, ctx->sock, ctx->addr.family, in cf_socket_open()
1036 Curl_ipv6_scope(&ctx->addr.sa_addr)); in cf_socket_open()
1048 /* set socket non-blocking */ in cf_socket_open()
1049 (void)curlx_nonblock(ctx->sock, TRUE); in cf_socket_open()
1050 ctx->sock_connected = (ctx->addr.socktype != SOCK_DGRAM); in cf_socket_open()
1053 if(ctx->sock != CURL_SOCKET_BAD) { in cf_socket_open()
1054 socket_close(data, cf->conn, TRUE, ctx->sock); in cf_socket_open()
1055 ctx->sock = CURL_SOCKET_BAD; in cf_socket_open()
1060 ctx->connected_at = Curl_now(); in cf_socket_open()
1061 cf->connected = TRUE; in cf_socket_open()
1063 CURL_TRC_CF(data, cf, "cf_socket_open() -> %d, fd=%" CURL_FORMAT_SOCKET_T, in cf_socket_open()
1064 result, ctx->sock); in cf_socket_open()
1071 struct cf_socket_ctx *ctx = cf->ctx; in do_connect()
1075 int rc = -1; in do_connect()
1089 endpoints.sae_dstaddr = &ctx->addr.sa_addr; in do_connect()
1090 endpoints.sae_dstaddrlen = ctx->addr.addrlen; in do_connect()
1092 rc = connectx(ctx->sock, &endpoints, SAE_ASSOCID_ANY, in do_connect()
1097 rc = connect(ctx->sock, &ctx->addr.sa_addr, ctx->addr.addrlen); in do_connect()
1100 rc = connect(ctx->sock, &ctx->addr.sa_addr, ctx->addr.addrlen); in do_connect()
1103 if(setsockopt(ctx->sock, IPPROTO_TCP, TCP_FASTOPEN_CONNECT, in do_connect()
1106 CURL_FORMAT_SOCKET_T, ctx->sock); in do_connect()
1108 rc = connect(ctx->sock, &ctx->addr.sa_addr, ctx->addr.addrlen); in do_connect()
1110 if(cf->conn->given->flags & PROTOPT_SSL) in do_connect()
1111 rc = connect(ctx->sock, &ctx->addr.sa_addr, ctx->addr.addrlen); in do_connect()
1117 rc = connect(ctx->sock, &ctx->addr.sa_addr, ctx->addr.addrlen); in do_connect()
1126 struct cf_socket_ctx *ctx = cf->ctx; in cf_tcp_connect()
1131 if(cf->connected) { in cf_tcp_connect()
1141 if(ctx->sock == CURL_SOCKET_BAD) { in cf_tcp_connect()
1148 if(cf->connected) { in cf_tcp_connect()
1154 rc = do_connect(cf, data, cf->conn->bits.tcp_fastopen); in cf_tcp_connect()
1158 ctx->ip.local_ip, ctx->ip.local_port); in cf_tcp_connect()
1159 if(-1 == rc) { in cf_tcp_connect()
1160 result = socket_connect_result(data, ctx->ip.remote_ip, error); in cf_tcp_connect()
1170 (void)verifyconnect(ctx->sock, NULL); in cf_tcp_connect()
1172 /* check socket for connect */ in cf_tcp_connect()
1173 rc = SOCKET_WRITABLE(ctx->sock, 0); in cf_tcp_connect()
1179 else if(rc == CURL_CSELECT_OUT || cf->conn->bits.tcp_fastopen) { in cf_tcp_connect()
1180 if(verifyconnect(ctx->sock, &ctx->error)) { in cf_tcp_connect()
1182 ctx->connected_at = Curl_now(); in cf_tcp_connect()
1185 cf->connected = TRUE; in cf_tcp_connect()
1191 (void)verifyconnect(ctx->sock, &ctx->error); in cf_tcp_connect()
1197 if(ctx->error) { in cf_tcp_connect()
1199 data->state.os_errno = ctx->error; in cf_tcp_connect()
1200 SET_SOCKERRNO(ctx->error); in cf_tcp_connect()
1205 ctx->ip.remote_ip, ctx->ip.remote_port, in cf_tcp_connect()
1206 ctx->ip.local_ip, ctx->ip.local_port, in cf_tcp_connect()
1207 Curl_strerror(ctx->error, buffer, sizeof(buffer))); in cf_tcp_connect()
1211 if(ctx->sock != CURL_SOCKET_BAD) { in cf_tcp_connect()
1212 socket_close(data, cf->conn, TRUE, ctx->sock); in cf_tcp_connect()
1213 ctx->sock = CURL_SOCKET_BAD; in cf_tcp_connect()
1226 struct cf_socket_ctx *ctx = cf->ctx; in cf_socket_get_host()
1228 *phost = cf->conn->host.name; in cf_socket_get_host()
1229 *pdisplay_host = cf->conn->host.dispname; in cf_socket_get_host()
1230 *pport = ctx->ip.remote_port; in cf_socket_get_host()
1237 struct cf_socket_ctx *ctx = cf->ctx; in cf_socket_adjust_pollset()
1239 if(ctx->sock != CURL_SOCKET_BAD) { in cf_socket_adjust_pollset()
1240 if(!cf->connected) { in cf_socket_adjust_pollset()
1241 Curl_pollset_set_out_only(data, ps, ctx->sock); in cf_socket_adjust_pollset()
1243 CURL_FORMAT_SOCKET_T, ctx->sock); in cf_socket_adjust_pollset()
1245 else if(!ctx->active) { in cf_socket_adjust_pollset()
1246 Curl_pollset_add_in(data, ps, ctx->sock); in cf_socket_adjust_pollset()
1248 CURL_FORMAT_SOCKET_T, ctx->sock); in cf_socket_adjust_pollset()
1256 struct cf_socket_ctx *ctx = cf->ctx; in cf_socket_data_pending()
1260 if(!Curl_bufq_is_empty(&ctx->recvbuf)) in cf_socket_data_pending()
1263 readable = SOCKET_READABLE(ctx->sock, 0); in cf_socket_data_pending()
1270 struct cf_socket_ctx *ctx = cf->ctx; in cf_socket_send()
1276 fdsave = cf->conn->sock[cf->sockindex]; in cf_socket_send()
1277 cf->conn->sock[cf->sockindex] = ctx->sock; in cf_socket_send()
1281 if(ctx->wblock_percent > 0) { in cf_socket_send()
1284 if(c >= ((100-ctx->wblock_percent)*256/100)) { in cf_socket_send()
1287 nwritten = -1; in cf_socket_send()
1288 cf->conn->sock[cf->sockindex] = fdsave; in cf_socket_send()
1292 if(cf->cft != &Curl_cft_udp && ctx->wpartial_percent > 0 && len > 8) { in cf_socket_send()
1293 len = len * ctx->wpartial_percent / 100; in cf_socket_send()
1302 if(cf->conn->bits.tcp_fastopen) { in cf_socket_send()
1303 nwritten = sendto(ctx->sock, buf, len, MSG_FASTOPEN, in cf_socket_send()
1304 &cf->conn->remote_addr->sa_addr, in cf_socket_send()
1305 cf->conn->remote_addr->addrlen); in cf_socket_send()
1306 cf->conn->bits.tcp_fastopen = FALSE; in cf_socket_send()
1310 nwritten = swrite(ctx->sock, buf, len); in cf_socket_send()
1312 if(-1 == nwritten) { in cf_socket_send()
1334 data->state.os_errno = sockerr; in cf_socket_send()
1339 CURL_TRC_CF(data, cf, "send(len=%zu) -> %d, err=%d", in cf_socket_send()
1341 cf->conn->sock[cf->sockindex] = fdsave; in cf_socket_send()
1348 struct cf_socket_ctx *ctx = cf->ctx; in cf_socket_recv()
1354 fdsave = cf->conn->sock[cf->sockindex]; in cf_socket_recv()
1355 cf->conn->sock[cf->sockindex] = ctx->sock; in cf_socket_recv()
1359 if(cf->cft != &Curl_cft_udp && ctx->rblock_percent > 0) { in cf_socket_recv()
1362 if(c >= ((100-ctx->rblock_percent)*256/100)) { in cf_socket_recv()
1365 nread = -1; in cf_socket_recv()
1366 cf->conn->sock[cf->sockindex] = fdsave; in cf_socket_recv()
1370 if(cf->cft != &Curl_cft_udp && ctx->recv_max && ctx->recv_max < len) { in cf_socket_recv()
1372 len = ctx->recv_max; in cf_socket_recv()
1378 if(ctx->buffer_recv && !Curl_bufq_is_empty(&ctx->recvbuf)) { in cf_socket_recv()
1380 nread = Curl_bufq_read(&ctx->recvbuf, (unsigned char *)buf, len, err); in cf_socket_recv()
1390 if(ctx->buffer_recv && len < NW_SMALL_READS) { in cf_socket_recv()
1392 nwritten = Curl_bufq_slurp(&ctx->recvbuf, nw_in_read, &rctx, err); in cf_socket_recv()
1393 if(nwritten < 0 && !Curl_bufq_is_empty(&ctx->recvbuf)) { in cf_socket_recv()
1397 nread = Curl_bufq_read(&ctx->recvbuf, (unsigned char *)buf, len, err); in cf_socket_recv()
1400 nread = -1; in cf_socket_recv()
1410 nread = Curl_bufq_read(&ctx->recvbuf, (unsigned char *)buf, len, err); in cf_socket_recv()
1419 CURL_TRC_CF(data, cf, "recv(len=%zu) -> %d, err=%d", len, (int)nread, in cf_socket_recv()
1421 if(nread > 0 && !ctx->got_first_byte) { in cf_socket_recv()
1422 ctx->first_byte_at = Curl_now(); in cf_socket_recv()
1423 ctx->got_first_byte = TRUE; in cf_socket_recv()
1425 cf->conn->sock[cf->sockindex] = fdsave; in cf_socket_recv()
1431 struct cf_socket_ctx *ctx = cf->ctx; in cf_socket_active()
1434 cf->conn->sock[cf->sockindex] = ctx->sock; in cf_socket_active()
1436 if(cf->sockindex == SECONDARYSOCKET) in cf_socket_active()
1437 cf->conn->secondary = ctx->ip; in cf_socket_active()
1439 cf->conn->primary = ctx->ip; in cf_socket_active()
1441 if(cf->sockindex == FIRSTSOCKET) { in cf_socket_active()
1442 cf->conn->remote_addr = &ctx->addr; in cf_socket_active()
1444 cf->conn->bits.ipv6 = (ctx->addr.family == AF_INET6)? TRUE : FALSE; in cf_socket_active()
1446 Curl_persistconninfo(data, cf->conn, &ctx->ip); in cf_socket_active()
1451 ctx->buffer_recv = FALSE; in cf_socket_active()
1453 ctx->active = TRUE; in cf_socket_active()
1460 struct cf_socket_ctx *ctx = cf->ctx; in cf_socket_cntrl()
1469 Curl_persistconninfo(data, cf->conn, &ctx->ip); in cf_socket_cntrl()
1472 ctx->sock = CURL_SOCKET_BAD; in cf_socket_cntrl()
1482 struct cf_socket_ctx *ctx = cf->ctx; in cf_socket_conn_is_alive()
1488 if(!ctx || ctx->sock == CURL_SOCKET_BAD) in cf_socket_conn_is_alive()
1492 pfd[0].fd = ctx->sock; in cf_socket_conn_is_alive()
1519 struct cf_socket_ctx *ctx = cf->ctx; in cf_socket_query()
1524 *((curl_socket_t *)pres2) = ctx->sock; in cf_socket_query()
1527 if(ctx->got_first_byte) { in cf_socket_query()
1528 timediff_t ms = Curl_timediff(ctx->first_byte_at, ctx->started_at); in cf_socket_query()
1532 *pres1 = -1; in cf_socket_query()
1536 switch(ctx->transport) { in cf_socket_query()
1541 if(ctx->got_first_byte) { in cf_socket_query()
1542 *when = ctx->first_byte_at; in cf_socket_query()
1547 *when = ctx->connected_at; in cf_socket_query()
1555 return cf->next? in cf_socket_query()
1556 cf->next->cft->query(cf->next, data, query, pres1, pres2) : in cf_socket_query()
1613 struct cf_socket_ctx *ctx = cf->ctx; in cf_udp_setup_quic()
1617 DEBUGASSERT(ctx->sock != CURL_SOCKET_BAD); in cf_udp_setup_quic()
1624 rc = connect(ctx->sock, &ctx->addr.sa_addr, ctx->addr.addrlen); in cf_udp_setup_quic()
1625 if(-1 == rc) { in cf_udp_setup_quic()
1626 return socket_connect_result(data, ctx->ip.remote_ip, SOCKERRNO); in cf_udp_setup_quic()
1628 ctx->sock_connected = TRUE; in cf_udp_setup_quic()
1632 " connected: [%s:%d] -> [%s:%d]", in cf_udp_setup_quic()
1633 (ctx->transport == TRNSPRT_QUIC)? "QUIC" : "UDP", in cf_udp_setup_quic()
1634 ctx->sock, ctx->ip.local_ip, ctx->ip.local_port, in cf_udp_setup_quic()
1635 ctx->ip.remote_ip, ctx->ip.remote_port); in cf_udp_setup_quic()
1637 (void)curlx_nonblock(ctx->sock, TRUE); in cf_udp_setup_quic()
1638 switch(ctx->addr.family) { in cf_udp_setup_quic()
1642 (void)setsockopt(ctx->sock, IPPROTO_IP, IP_MTU_DISCOVER, &val, in cf_udp_setup_quic()
1650 (void)setsockopt(ctx->sock, IPPROTO_IPV6, IPV6_MTU_DISCOVER, &val, in cf_udp_setup_quic()
1663 struct cf_socket_ctx *ctx = cf->ctx; in cf_udp_connect()
1667 if(cf->connected) { in cf_udp_connect()
1672 if(ctx->sock == CURL_SOCKET_BAD) { in cf_udp_connect()
1675 CURL_TRC_CF(data, cf, "cf_udp_connect(), open failed -> %d", result); in cf_udp_connect()
1679 if(ctx->transport == TRNSPRT_QUIC) { in cf_udp_connect()
1685 ctx->sock, ctx->ip.local_ip, ctx->ip.local_port); in cf_udp_connect()
1689 CURL_FORMAT_SOCKET_T " (unconnected)", ctx->sock); in cf_udp_connect()
1692 cf->connected = TRUE; in cf_udp_connect()
1806 if(cf->connected) { in cf_tcp_accept_connect()
1814 "TCP-ACCEPT",
1841 DEBUGASSERT(conn->sock[sockindex] == CURL_SOCKET_BAD); in Curl_conn_tcp_listen_set()
1848 ctx->transport = conn->transport; in Curl_conn_tcp_listen_set()
1849 ctx->sock = *s; in Curl_conn_tcp_listen_set()
1850 ctx->accepted = FALSE; in Curl_conn_tcp_listen_set()
1856 conn->sock[sockindex] = ctx->sock; in Curl_conn_tcp_listen_set()
1858 ctx->active = TRUE; in Curl_conn_tcp_listen_set()
1859 ctx->connected_at = Curl_now(); in Curl_conn_tcp_listen_set()
1860 cf->connected = TRUE; in Curl_conn_tcp_listen_set()
1862 CURL_FORMAT_SOCKET_T ")", ctx->sock); in Curl_conn_tcp_listen_set()
1875 struct cf_socket_ctx *ctx = cf->ctx; in set_accepted_remote_ip()
1881 ctx->ip.remote_ip[0] = 0; in set_accepted_remote_ip()
1882 ctx->ip.remote_port = 0; in set_accepted_remote_ip()
1885 if(getpeername(ctx->sock, (struct sockaddr*) &ssrem, &plen)) { in set_accepted_remote_ip()
1892 ctx->ip.remote_ip, &ctx->ip.remote_port)) { in set_accepted_remote_ip()
1898 ctx->ip.remote_ip[0] = 0; in set_accepted_remote_ip()
1899 ctx->ip.remote_port = 0; in set_accepted_remote_ip()
1911 cf = conn->cfilter[sockindex]; in Curl_conn_tcp_accepted_set()
1912 if(!cf || cf->cft != &Curl_cft_tcp_accept) in Curl_conn_tcp_accepted_set()
1915 ctx = cf->ctx; in Curl_conn_tcp_accepted_set()
1917 socket_close(data, conn, TRUE, ctx->sock); in Curl_conn_tcp_accepted_set()
1918 ctx->sock = *s; in Curl_conn_tcp_accepted_set()
1919 conn->sock[sockindex] = ctx->sock; in Curl_conn_tcp_accepted_set()
1922 ctx->active = TRUE; in Curl_conn_tcp_accepted_set()
1923 ctx->accepted = TRUE; in Curl_conn_tcp_accepted_set()
1924 ctx->connected_at = Curl_now(); in Curl_conn_tcp_accepted_set()
1925 cf->connected = TRUE; in Curl_conn_tcp_accepted_set()
1928 ctx->sock, ctx->ip.remote_ip, ctx->ip.remote_port); in Curl_conn_tcp_accepted_set()
1938 return cf && (cf->cft == &Curl_cft_tcp || in cf_is_socket()
1939 cf->cft == &Curl_cft_udp || in cf_is_socket()
1940 cf->cft == &Curl_cft_unix || in cf_is_socket()
1941 cf->cft == &Curl_cft_tcp_accept); in cf_is_socket()
1951 if(cf_is_socket(cf) && cf->ctx) { in Curl_cf_socket_peek()
1952 struct cf_socket_ctx *ctx = cf->ctx; in Curl_cf_socket_peek()
1955 *psock = ctx->sock; in Curl_cf_socket_peek()
1957 *paddr = &ctx->addr; in Curl_cf_socket_peek()
1959 *pip = ctx->ip; in Curl_cf_socket_peek()