diff options
author | neilbrown <neilbrown> | 2005-12-19 23:49:30 +0000 |
---|---|---|
committer | neilbrown <neilbrown> | 2005-12-19 23:49:30 +0000 |
commit | ff0c801ad905b863b8c175ccee460791a78b875d (patch) | |
tree | aa2388d776f1fa135da4193d83f9c5e07094c2fa /utils | |
parent | 870762b34e5209a4f356fdac2d8b42edf574f833 (diff) | |
download | nfs-utils-ff0c801ad905b863b8c175ccee460791a78b875d.tar.gz nfs-utils-ff0c801ad905b863b8c175ccee460791a78b875d.tar.xz nfs-utils-ff0c801ad905b863b8c175ccee460791a78b875d.zip |
utils/gssd/gssd_proc.c(create_auth_rpc_client): Use service
portion of clp->servicename rather than hard-coding "nfs".
Diffstat (limited to 'utils')
-rw-r--r-- | utils/gssd/gssd_proc.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/utils/gssd/gssd_proc.c b/utils/gssd/gssd_proc.c index 78919b8..f2907c9 100644 --- a/utils/gssd/gssd_proc.c +++ b/utils/gssd/gssd_proc.c @@ -436,6 +436,8 @@ int create_auth_rpc_client(struct clnt_info *clp, int sockp = RPC_ANYSOCK; int sendsz = 32768, recvsz = 32768; struct addrinfo ai_hints, *a = NULL; + char service[64]; + char *at_sign; sec.qop = GSS_C_QOP_DEFAULT; sec.svc = RPCSEC_GSS_SVC_NONE; @@ -505,8 +507,21 @@ int create_auth_rpc_client(struct clnt_info *clp, goto out_fail; } - errcode = getaddrinfo(clp->servername, "nfs", - &ai_hints, &a); + /* extract the service name from clp->servicename */ + if ((at_sign = strchr(clp->servicename, '@')) == NULL) { + printerr(0, "WARNING: servicename (%s) not formatted as " + "expected with service@host", clp->servicename); + goto out_fail; + } + if ((at_sign - clp->servicename) >= sizeof(service)) { + printerr(0, "WARNING: service portion of servicename (%s) " + "is too long!", clp->servicename); + goto out_fail; + } + strncpy(service, clp->servicename, at_sign - clp->servicename); + service[at_sign - clp->servicename] = '\0'; + + errcode = getaddrinfo(clp->servername, service, &ai_hints, &a); if (errcode) { printerr(0, "WARNING: Error from getaddrinfo for server " "'%s': %s", clp->servername, gai_strerror(errcode)); |