version 1.8, 2015/09/10 02:23:29 |
version 1.9, 2018/02/07 05:47:55 |
|
|
} |
} |
|
|
perror("connect"); |
perror("connect"); |
out: |
out: |
if (s != -1) |
if (s != -1) |
close(s); |
close(s); |
freeaddrinfo(ai_top); |
freeaddrinfo(ai_top); |
|
|
goto err; |
goto err; |
*sock = s; |
*sock = s; |
ret = 1; |
ret = 1; |
err: |
err: |
if ((ret == 0) && (s != -1)) { |
if ((ret == 0) && (s != -1)) { |
shutdown(s, SHUT_RD); |
shutdown(s, SHUT_RD); |
close(s); |
close(s); |
|
|
socklen_t len; |
socklen_t len; |
/* struct linger ling; */ |
/* struct linger ling; */ |
|
|
redoit: |
redoit: |
|
|
memset((char *) &from, 0, sizeof(from)); |
memset((char *) &from, 0, sizeof(from)); |
len = sizeof(from); |
len = sizeof(from); |
|
|
} |
} |
} |
} |
|
|
end: |
end: |
*sock = ret; |
*sock = ret; |
return (1); |
return (1); |
} |
} |