• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/curl/curl-7.36.0/lib/

Lines Matching defs:conn

165 singleipconnect(struct connectdata *conn,
235 static CURLcode bindlocal(struct connectdata *conn,
238 struct SessionHandle *data = conn->data;
283 switch(Curl_if2ip(af, conn->scope, dev, myhost, sizeof(myhost))) {
320 dev, error, Curl_strerror(conn, error));
338 long ipver = conn->ip_version;
342 conn->ip_version = CURL_IPRESOLVE_V4;
345 conn->ip_version = CURL_IPRESOLVE_V6;
348 rc = Curl_resolv(conn, dev, 0, &h);
350 (void)Curl_resolver_wait_resolv(conn, &h);
351 conn->ip_version = ipver;
435 error, Curl_strerror(conn, error));
439 conn->bits.bound = TRUE;
460 error, Curl_strerror(conn, error));
534 static CURLcode trynextip(struct connectdata *conn,
544 curl_socket_t fd_to_close = conn->tempsock[tempindex];
545 conn->tempsock[tempindex] = CURL_SOCKET_BAD;
551 if(conn->tempaddr[tempindex]) {
553 family = conn->tempaddr[tempindex]->ai_family;
554 ai = conn->tempaddr[tempindex]->ai_next;
558 int firstfamily = conn->tempaddr[0]->ai_family;
564 ai = conn->tempaddr[0]->ai_next;
572 rc = singleipconnect(conn, ai, &conn->tempsock[tempindex]);
577 conn->tempaddr[tempindex] = ai;
584 Curl_closesocket(conn, fd_to_close);
591 void Curl_persistconninfo(struct connectdata *conn)
593 memcpy(conn->data->info.conn_primary_ip, conn->primary_ip, MAX_IPADR_LEN);
594 memcpy(conn->data->info.conn_local_ip, conn->local_ip, MAX_IPADR_LEN);
595 conn->data->info.conn_primary_port = conn->primary_port;
596 conn->data->info.conn_local_port = conn->local_port;
652 void Curl_updateconninfo(struct connectdata *conn, curl_socket_t sockfd)
658 struct SessionHandle *data = conn->data;
660 if(conn->socktype == SOCK_DGRAM)
664 if(!conn->bits.reuse) {
670 error, Curl_strerror(conn, error));
678 error, Curl_strerror(conn, error));
683 conn->primary_ip, &conn->primary_port)) {
686 error, Curl_strerror(conn, error));
689 memcpy(conn->ip_addr_str, conn->primary_ip, MAX_IPADR_LEN);
692 conn->local_ip, &conn->local_port)) {
695 error, Curl_strerror(conn, error));
702 Curl_persistconninfo(conn);
709 CURLcode Curl_is_connected(struct connectdata *conn,
713 struct SessionHandle *data = conn->data;
725 if(conn->bits.tcpconnect[sockindex]) {
743 if(conn->tempsock[i] == CURL_SOCKET_BAD)
750 (void)verifyconnect(conn->tempsock[i], NULL);
754 result = Curl_socket_ready(CURL_SOCKET_BAD, conn->tempsock[i], 0);
757 if(curlx_tvdiff(now, conn->connecttime) >= conn->timeoutms_per_addr) {
759 conn->timeoutms_per_addr);
764 if(i == 0 && conn->tempaddr[1] == NULL &&
765 curlx_tvdiff(now, conn->connecttime) >= HAPPY_EYEBALLS_TIMEOUT) {
766 trynextip(conn, sockindex, 1);
770 if(verifyconnect(conn->tempsock[i], &error)) {
775 conn->sock[sockindex] = conn->tempsock[i];
776 conn->ip_addr = conn->tempaddr[i];
777 conn->tempsock[i] = CURL_SOCKET_BAD;
780 if(conn->tempsock[other] != CURL_SOCKET_BAD) {
781 Curl_closesocket(conn, conn->tempsock[other]);
782 conn->tempsock[other] = CURL_SOCKET_BAD;
786 code = Curl_connected_proxy(conn, sockindex);
790 conn->bits.tcpconnect[sockindex] = TRUE;
795 Curl_updateconninfo(conn, conn->sock[sockindex]);
796 Curl_verboseconnect(conn);
804 (void)verifyconnect(conn->tempsock[i], &error);
814 Curl_printable_address(conn->tempaddr[i], ipaddress, MAX_IPADR_LEN);
816 ipaddress, conn->port, Curl_strerror(conn, error));
818 conn->timeoutms_per_addr = conn->tempaddr[i]->ai_next == NULL ?
821 code = trynextip(conn, sockindex, i);
830 if(conn->tempaddr[1] == NULL) {
832 rc = trynextip(conn, sockindex, 1);
838 conn->bits.proxy?conn->proxy.name:conn->host.name,
839 conn->port, Curl_strerror(conn, error));
845 static void tcpnodelay(struct connectdata *conn,
849 struct SessionHandle *data= conn->data;
869 Curl_strerror(conn, SOCKERRNO));
873 (void)conn;
883 static void nosigpipe(struct connectdata *conn,
886 struct SessionHandle *data= conn->data;
891 Curl_strerror(conn, SOCKERRNO));
974 singleipconnect(struct connectdata *conn,
982 struct SessionHandle *data = conn->data;
990 res = Curl_socket(conn, ai, &addr, &sockfd);
1003 error, Curl_strerror(conn, error));
1004 Curl_closesocket(conn, sockfd);
1010 tcpnodelay(conn, sockfd);
1012 nosigpipe(conn, sockfd);
1028 Curl_closesocket(conn, sockfd); /* close the socket and bail out */
1034 res = bindlocal(conn, sockfd, addr.family);
1036 Curl_closesocket(conn, sockfd); /* close socket and bail out */
1048 conn->connecttime = Curl_tvnow();
1049 if(conn->num_addr > 1)
1050 Curl_expire(data, conn->timeoutms_per_addr);
1053 if(!isconnected && (conn->socktype == SOCK_STREAM)) {
1064 conn->bits.ipv6 = (addr.family == AF_INET6)?TRUE:FALSE;
1086 ipaddress, Curl_strerror(conn,error));
1090 Curl_closesocket(conn, sockfd);
1107 CURLcode Curl_connecthost(struct connectdata *conn, /* context */
1110 struct SessionHandle *data = conn->data;
1122 conn->num_addr = Curl_num_addresses(remotehost->addr);
1123 conn->tempaddr[0] = remotehost->addr;
1124 conn->tempaddr[1] = NULL;
1125 conn->tempsock[0] = CURL_SOCKET_BAD;
1126 conn->tempsock[1] = CURL_SOCKET_BAD;
1127 Curl_expire(conn->data, HAPPY_EYEBALLS_TIMEOUT);
1130 conn->timeoutms_per_addr =
1131 conn->tempaddr[0]->ai_next == NULL ? timeout_ms : timeout_ms / 2;
1134 while(conn->tempaddr[0]) {
1135 res = singleipconnect(conn, conn->tempaddr[0], &(conn->tempsock[0]));
1138 conn->tempaddr[0] = conn->tempaddr[0]->ai_next;
1141 if(conn->tempsock[0] == CURL_SOCKET_BAD)
1154 static int conn_is_conn(struct connectdata *conn, void *param)
1157 if(conn == f->tofind) {
1224 * 'conn' can be NULL, beware!
1226 int Curl_closesocket(struct connectdata *conn,
1229 if(conn && conn->fclosesocket) {
1230 if((sock == conn->sock[SECONDARYSOCKET]) &&
1231 conn->sock_accepted[SECONDARYSOCKET])
1235 conn->sock_accepted[SECONDARYSOCKET] = FALSE;
1237 return conn->fclosesocket(conn->closesocket_client, sock);
1241 if(conn)
1243 Curl_multi_closed(conn, sock);
1249 * Create a socket based on info from 'conn' and 'ai'.
1257 CURLcode Curl_socket(struct connectdata *conn,
1262 struct SessionHandle *data = conn->data;
1278 addr->socktype = conn->socktype;
1279 addr->protocol = conn->socktype==SOCK_DGRAM?IPPROTO_UDP:ai->ai_protocol;
1308 if(conn->scope && (addr->family == AF_INET6)) {
1310 sa6->sin6_scope_id = conn->scope;