Change kprop and kpropd to fall back on port 754 if krb5_prop isn't
authorRuss Allbery <rra@stanford.edu>
Tue, 13 Jun 2006 15:34:27 +0000 (15:34 +0000)
committerRuss Allbery <rra@stanford.edu>
Tue, 13 Jun 2006 15:34:27 +0000 (15:34 +0000)
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

src/slave/kprop.c
src/slave/kprop.h
src/slave/kpropd.c

index e730f46461564af9e72db3bd6d027aab9d6c12bd..b2ea2c2b36790aeeb5352e9ad762ea9ce3b744e1 100644 (file)
@@ -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);
index 93e147e515b911af09a22be87c7d3cc62f23bb16..bc601de548db7c88a65e90c10f74ce3cf351513f 100644 (file)
@@ -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"
 
index 6ded72aed2a032b4c10bfa1517fc5187a98885a2..9d87b9ebf5594279b2287fb7581f9acb57815e19 100644 (file)
@@ -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;
        }