diff options
author | Russ Allbery <rra@stanford.edu> | 2006-06-13 15:34:27 +0000 |
---|---|---|
committer | Russ Allbery <rra@stanford.edu> | 2006-06-13 15:34:27 +0000 |
commit | f02ad6414091d17588c506fb6a29660e22734f03 (patch) | |
tree | 4719265194fafb82f7b06981bef9cc29ca974060 /src/slave | |
parent | 41eee15be5780702877cb9c3c1afe28d724c1ea9 (diff) | |
download | krb5-f02ad6414091d17588c506fb6a29660e22734f03.zip krb5-f02ad6414091d17588c506fb6a29660e22734f03.tar.gz krb5-f02ad6414091d17588c506fb6a29660e22734f03.tar.bz2 |
Change kprop and kpropd to fall back on port 754 if krb5_prop isn't
available via getservbyname rather than failing.
Ticket: 3268
Version_Reported: 1.4.2
Component: krb5-misc
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@18123 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/slave')
-rw-r--r-- | src/slave/kprop.c | 9 | ||||
-rw-r--r-- | src/slave/kprop.h | 1 | ||||
-rw-r--r-- | src/slave/kpropd.c | 4 |
3 files changed, 6 insertions, 8 deletions
diff --git a/src/slave/kprop.c b/src/slave/kprop.c index e730f46..b2ea2c2 100644 --- a/src/slave/kprop.c +++ b/src/slave/kprop.c @@ -346,13 +346,10 @@ open_connection(host, fd, Errmsg, ErrmsgSz) if(!port) { sp = getservbyname(KPROP_SERVICE, "tcp"); if (sp == 0) { - (void) strncpy(Errmsg, KPROP_SERVICE, ErrmsgSz - 1); - Errmsg[ErrmsgSz - 1] = '\0'; - (void) strncat(Errmsg, "/tcp: unknown service", ErrmsgSz - 1 - strlen(Errmsg)); - *fd = -1; - return(0); + my_sin.sin_port = htons(KPROP_PORT); + } else { + my_sin.sin_port = sp->s_port; } - my_sin.sin_port = sp->s_port; } else my_sin.sin_port = port; s = socket(AF_INET, SOCK_STREAM, 0); diff --git a/src/slave/kprop.h b/src/slave/kprop.h index 93e147e..bc601de 100644 --- a/src/slave/kprop.h +++ b/src/slave/kprop.h @@ -29,6 +29,7 @@ #define KPROP_SERVICE_NAME "host" #define TGT_SERVICE_NAME "krbtgt" #define KPROP_SERVICE "krb5_prop" +#define KPROP_PORT 754 #define KPROP_PROT_VERSION "kprop5_01" diff --git a/src/slave/kpropd.c b/src/slave/kpropd.c index 6ded72a..9d87b9e 100644 --- a/src/slave/kpropd.c +++ b/src/slave/kpropd.c @@ -193,9 +193,9 @@ void do_standalone() sp = getservbyname(KPROP_SERVICE, "tcp"); if (sp == NULL) { com_err(progname, 0, "%s/tcp: unknown service", KPROP_SERVICE); - exit(1); + my_sin.sin_port = htons(KPROP_PORT); } - my_sin.sin_port = sp->s_port; + else my_sin.sin_port = sp->s_port; } else { my_sin.sin_port = port; } |