aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2001-01-21 19:30:28 +0000
committerUlrich Drepper <drepper@redhat.com>2001-01-21 19:30:28 +0000
commit3e2d61a360dadeb6e52f33681c276e9a3755f8ac (patch)
treef62e888cfd36921badd06bcd9837df4d865a96b8 /sysdeps
parent01ed37472ae7edab639314f454b754b76db79516 (diff)
downloadglibc-3e2d61a360dadeb6e52f33681c276e9a3755f8ac.zip
glibc-3e2d61a360dadeb6e52f33681c276e9a3755f8ac.tar.gz
glibc-3e2d61a360dadeb6e52f33681c276e9a3755f8ac.tar.bz2
Reduce .data size.
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/posix/getaddrinfo.c32
1 files changed, 18 insertions, 14 deletions
diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
index 1686933..b22d6ab 100644
--- a/sysdeps/posix/getaddrinfo.c
+++ b/sysdeps/posix/getaddrinfo.c
@@ -79,7 +79,7 @@ struct gaih_servtuple
int port;
};
-static struct gaih_servtuple nullserv = { NULL, 0, 0, 0 };
+static const struct gaih_servtuple nullserv;
struct gaih_addrtuple
{
@@ -93,7 +93,7 @@ struct gaih_typeproto
{
int socktype;
int protocol;
- char *name;
+ char name[4];
int protoflag;
};
@@ -101,13 +101,13 @@ struct gaih_typeproto
#define GAI_PROTO_NOSERVICE 1
#define GAI_PROTO_PROTOANY 2
-static struct gaih_typeproto gaih_inet_typeproto[] =
+static const struct gaih_typeproto gaih_inet_typeproto[] =
{
- { 0, 0, NULL, 0 },
- { SOCK_STREAM, IPPROTO_TCP, (char *) "tcp", 0 },
- { SOCK_DGRAM, IPPROTO_UDP, (char *) "udp", 0 },
- { SOCK_RAW, 0, (char *) "raw", GAI_PROTO_PROTOANY|GAI_PROTO_NOSERVICE },
- { 0, 0, NULL, 0 }
+ { 0, 0, "", 0 },
+ { SOCK_STREAM, IPPROTO_TCP, "tcp", 0 },
+ { SOCK_DGRAM, IPPROTO_UDP, "udp", 0 },
+ { SOCK_RAW, 0, "raw", GAI_PROTO_PROTOANY|GAI_PROTO_NOSERVICE },
+ { 0, 0, "", 0 }
};
struct gaih
@@ -117,8 +117,12 @@ struct gaih
const struct addrinfo *req, struct addrinfo **pai);
};
-static struct addrinfo default_hints =
+#if PF_UNSPEC == 0
+static const struct addrinfo default_hints;
+#else
+static const struct addrinfo default_hints =
{ 0, PF_UNSPEC, 0, 0, 0, NULL, NULL, NULL };
+#endif
static int
@@ -145,7 +149,7 @@ gaih_local (const char *name, const struct gaih_service *service,
if (req->ai_protocol || req->ai_socktype)
{
- struct gaih_typeproto *tp = gaih_inet_typeproto + 1;
+ const struct gaih_typeproto *tp = gaih_inet_typeproto + 1;
while (tp->name != NULL
&& ((tp->protoflag & GAI_PROTO_NOSERVICE) != 0
@@ -230,7 +234,7 @@ gaih_local (const char *name, const struct gaih_service *service,
}
static int
-gaih_inet_serv (const char *servicename, struct gaih_typeproto *tp,
+gaih_inet_serv (const char *servicename, const struct gaih_typeproto *tp,
const struct addrinfo *req, struct gaih_servtuple *st)
{
struct servent *s;
@@ -311,8 +315,8 @@ static int
gaih_inet (const char *name, const struct gaih_service *service,
const struct addrinfo *req, struct addrinfo **pai)
{
- struct gaih_typeproto *tp = gaih_inet_typeproto;
- struct gaih_servtuple *st = &nullserv;
+ const struct gaih_typeproto *tp = gaih_inet_typeproto;
+ struct gaih_servtuple *st = (struct gaih_servtuple *) &nullserv;
struct gaih_addrtuple *at = NULL;
int rc;
@@ -382,7 +386,7 @@ gaih_inet (const char *name, const struct gaih_service *service,
*pst = newp;
pst = &(newp->next);
}
- if (st == &nullserv)
+ if (st == (struct gaih_servtuple *) &nullserv)
return (GAIH_OKIFUNSPEC | -EAI_SERVICE);
}
}