summaryrefslogtreecommitdiffstats
path: root/src/include/fake-addrinfo.h
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@mit.edu>2003-04-07 20:55:18 +0000
committerKen Raeburn <raeburn@mit.edu>2003-04-07 20:55:18 +0000
commitc9dde00e5be6f83bd609b83a606c96387e0eada5 (patch)
tree34e617954302042347bad710e12fe74e7bff0509 /src/include/fake-addrinfo.h
parentf43088e76274fdfad885f6a012efa2d18c86b58b (diff)
downloadkrb5-c9dde00e5be6f83bd609b83a606c96387e0eada5.tar.gz
krb5-c9dde00e5be6f83bd609b83a606c96387e0eada5.tar.xz
krb5-c9dde00e5be6f83bd609b83a606c96387e0eada5.zip
* fake-addrinfo.h (getaddrinfo) [NUMERIC_SERVICE_BROKEN]: Overwrite the port
number only if a numeric service port was supplied. ticket: 1392 status: open target_version: 1.3 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@15324 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/include/fake-addrinfo.h')
-rw-r--r--src/include/fake-addrinfo.h24
1 files changed, 13 insertions, 11 deletions
diff --git a/src/include/fake-addrinfo.h b/src/include/fake-addrinfo.h
index 7474543fcd..b019c38234 100644
--- a/src/include/fake-addrinfo.h
+++ b/src/include/fake-addrinfo.h
@@ -1055,17 +1055,19 @@ getaddrinfo (const char *name, const char *serv, const struct addrinfo *hint,
#endif
#ifdef NUMERIC_SERVICE_BROKEN
- for (ai = *result; ai; ai = ai->ai_next) {
- if (socket_type != 0 && ai->ai_socktype == 0)
- /* Is this check actually needed? */
- ai->ai_socktype = socket_type;
- switch (ai->ai_family) {
- case AF_INET:
- ((struct sockaddr_in *)ai->ai_addr)->sin_port = service_port;
- break;
- case AF_INET6:
- ((struct sockaddr_in6 *)ai->ai_addr)->sin6_port = service_port;
- break;
+ if (service_port != 0) {
+ for (ai = *result; ai; ai = ai->ai_next) {
+ if (socket_type != 0 && ai->ai_socktype == 0)
+ /* Is this check actually needed? */
+ ai->ai_socktype = socket_type;
+ switch (ai->ai_family) {
+ case AF_INET:
+ ((struct sockaddr_in *)ai->ai_addr)->sin_port = service_port;
+ break;
+ case AF_INET6:
+ ((struct sockaddr_in6 *)ai->ai_addr)->sin6_port = service_port;
+ break;
+ }
}
}
#endif