diff options
| author | Ezra Peisach <epeisach@mit.edu> | 2001-07-08 12:24:10 +0000 |
|---|---|---|
| committer | Ezra Peisach <epeisach@mit.edu> | 2001-07-08 12:24:10 +0000 |
| commit | e18aafa194afdb6f62b37f516cfd4ef1ddc866af (patch) | |
| tree | 59121b09b8d7e0f34ac16de2ada4f11253f69435 /src | |
| parent | da7f2d2fe0d934611593ea5140fcecc47644a738 (diff) | |
| download | krb5-e18aafa194afdb6f62b37f516cfd4ef1ddc866af.tar.gz krb5-e18aafa194afdb6f62b37f516cfd4ef1ddc866af.tar.xz krb5-e18aafa194afdb6f62b37f516cfd4ef1ddc866af.zip | |
* svc.c (xprt_register): If svc_fdset has not been initilized,
FD_ZERO it.
* rpc_commondata.c: Do not assume what the structure of an
fd_set looks like. Add variable gssrpc_svc_fdset_init to
determine if initialized.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@13585 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/rpc/ChangeLog | 9 | ||||
| -rw-r--r-- | src/lib/rpc/rpc_commondata.c | 3 | ||||
| -rw-r--r-- | src/lib/rpc/svc.c | 5 |
3 files changed, 16 insertions, 1 deletions
diff --git a/src/lib/rpc/ChangeLog b/src/lib/rpc/ChangeLog index 1040d75861..910ee4a501 100644 --- a/src/lib/rpc/ChangeLog +++ b/src/lib/rpc/ChangeLog @@ -1,3 +1,12 @@ +2001-07-08 Ezra Peisach <epeisach@mit.edu> + + * svc.c (xprt_register): If svc_fdset has not been initilized, + FD_ZERO it. + + * rpc_commondata.c: Do not assume what the structure of an fd_set + looks like. Add variable gssrpc_svc_fdset_init to determine if + initialized. + 2001-07-06 Ezra Peisach <epeisach@mit.edu> * auth_unix.c: In case GETGROUPS_T is not defined, default to int. diff --git a/src/lib/rpc/rpc_commondata.c b/src/lib/rpc/rpc_commondata.c index 8c27774e21..530b181e8d 100644 --- a/src/lib/rpc/rpc_commondata.c +++ b/src/lib/rpc/rpc_commondata.c @@ -37,7 +37,8 @@ */ struct opaque_auth _null_auth = {0}; #ifdef FD_SETSIZE -fd_set svc_fdset = {0}; +fd_set svc_fdset; /* Will be zeroed in data segment */ +int gssrpc_svc_fdset_init = 0; #else int svc_fds = 0; #endif /* def FD_SETSIZE */ diff --git a/src/lib/rpc/svc.c b/src/lib/rpc/svc.c index 573ea887ce..5c82b44b7c 100644 --- a/src/lib/rpc/svc.c +++ b/src/lib/rpc/svc.c @@ -51,6 +51,7 @@ extern int errno; #ifdef FD_SETSIZE static SVCXPRT **xports; static int max_xport = 0; +extern int gssrpc_svc_fdset_init; #else #define NOFILE 32 @@ -88,6 +89,10 @@ xprt_register(xprt) register int sock = xprt->xp_sock; #ifdef FD_SETSIZE + if (gssrpc_svc_fdset_init == 0) { + FD_ZERO(&svc_fdset); + gssrpc_svc_fdset_init++; + } if (xports == NULL) { xports = (SVCXPRT **) mem_alloc(FD_SETSIZE * sizeof(SVCXPRT *)); |
