[1148] in Kerberos-V5-bugs
krb5b4pl3: admin server should have a default port if service not found
daemon@ATHENA.MIT.EDU (Jonathan I. Kamens)
Tue Mar 14 09:34:47 1995
From: "Jonathan I. Kamens" <jik@cam.ov.com>
Date: Tue, 14 Mar 1995 09:37:58 -0500
To: krb5-bugs@MIT.EDU
If the kerberos-adm service can't be found in /etc/services, the admin
server should use a default port number like the other Kerberos
applications which now have default port numbers hard-coded.
The admin clients should do the same, but I'll leave that as an
exercise to the reader :-).
Here are patches to make the server use a default port:
--- include/krb5/adm_defs.h 1995/03/14 14:32:41 1.1
+++ include/krb5/adm_defs.h 1995/03/14 14:33:14
@@ -31,6 +31,7 @@
#define ADM5_VERSIZE strlen(ADM5_VERSTR)
/* This used to be kerberos_master */
#define ADM5_PORTNAME "kerberos-adm"
+#define ADM5_DEFAULT_PORT 752
#define ADM5_CPW_VERSION "V5CPWS01"
#define ADM5_ADM_VERSION "V5ADMS01"
#define CPWNAME "kadmin"
--- kadmin/server/adm_network.c 1995/03/14 14:33:21 1.1
+++ kadmin/server/adm_network.c 1995/03/14 14:35:54
@@ -213,19 +213,25 @@
service_servent = getservbyname(adm5_tcp_portname, "tcp");
- if (!service_servent) {
+ if (service_servent) {
+ client_server_info.server_name.sin_port = service_servent->s_port;
+#ifdef DEBUG
+ fprintf(stderr, "Official service name = %s\n", service_servent->s_name);
+#endif /* DEBUG */
+ }
+ else {
+#ifdef ADM5_DEFAULT_PORT
+ client_server_info.server_name.sin_port = htons(ADM5_DEFAULT_PORT);
+ com_err("setup_network", 0, "adm_network: using default port %d",
+ ADM5_DEFAULT_PORT);
+#else
krb5_free_principal(client_server_info.server);
free(client_server_info.name_of_service);
com_err("setup_network", 0, "adm_network: %s/tcp service unknown",
adm5_tcp_portname);
return(1);
+#endif
}
-
-#ifdef DEBUG
- fprintf(stderr, "Official service name = %s\n", service_servent->s_name);
-#endif /* DEBUG */
-
- client_server_info.server_name.sin_port = service_servent->s_port;
if ((client_server_info.server_socket =
socket(AF_INET, SOCK_STREAM, 0)) < 0) {