Improve getai().

git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@726 7dcaeef0-15fb-0310-b436-a5af3365683c
This commit is contained in:
Andreas Schneider
2009-05-05 07:47:11 +00:00
parent ce1a5d7578
commit 83b26b97b5

View File

@@ -89,23 +89,25 @@ static void sock_set_blocking(socket_t sock) {
} }
#endif /* _WIN32 */ #endif /* _WIN32 */
static int getai(const char *host, int port, struct addrinfo **ai) static int getai(const char *host, int port, struct addrinfo **ai) {
{ const char *service = NULL;
struct addrinfo hints; struct addrinfo hints;
char *service=NULL; char s_port[10];
char s_port[10];
memset(&hints,0,sizeof(hints)); ZERO_STRUCT(hints);
hints.ai_protocol=IPPROTO_TCP;
hints.ai_family=PF_UNSPEC; hints.ai_protocol = IPPROTO_TCP;
hints.ai_socktype=SOCK_STREAM; hints.ai_family = PF_UNSPEC;
if(port==0){ hints.ai_socktype = SOCK_STREAM;
hints.ai_flags=AI_PASSIVE;
} else { if (port == 0) {
snprintf(s_port,sizeof(s_port),"%hu",port); hints.ai_flags = AI_PASSIVE;
service=s_port; } else {
} snprintf(s_port, sizeof(s_port), "%hu", port);
return getaddrinfo(host,service,&hints,ai); service = s_port;
}
return getaddrinfo(host, service, &hints, ai);
} }
static int ssh_connect_ai_timeout(SSH_SESSION *session, const char *host, static int ssh_connect_ai_timeout(SSH_SESSION *session, const char *host,