From b914fd57c51641aec9912dcf0f020507c7eef7be Mon Sep 17 00:00:00 2001 From: Love Hornquist Astrand Date: Fri, 25 Dec 2009 06:37:57 +0100 Subject: [PATCH] remove NO_INETD by shuffling code around --- include/config.h.w32 | 4 ---- kadmin/kadm_conn.c | 7 ++++++- kadmin/kadmin_locl.h | 2 +- kadmin/kadmind.c | 16 +++++++--------- 4 files changed, 14 insertions(+), 15 deletions(-) diff --git a/include/config.h.w32 b/include/config.h.w32 index 5f12064b3..b89859415 100644 --- a/include/config.h.w32 +++ b/include/config.h.w32 @@ -1353,10 +1353,6 @@ static const char *const rcsid[] = { (const char *)rcsid, "@(#)" msg } /* Define if you don't want to use mmap. */ #define NO_MMAP 1 -/* Define to 1 if inetd will never be used to invoke any of the - daemons. */ -#define NO_INETD 1 - #define NO_RAND_EGD_METHOD 1 /* Define if the Unix rand method is not defined */ diff --git a/kadmin/kadm_conn.c b/kadmin/kadm_conn.c index f7f765935..0e9a8c557 100644 --- a/kadmin/kadm_conn.c +++ b/kadmin/kadm_conn.c @@ -221,7 +221,7 @@ wait_for_connection(krb5_context context, int -start_server(krb5_context context) +start_server(krb5_context context, const char *port_str) { int e; struct kadm_port *p; @@ -230,6 +230,11 @@ start_server(krb5_context context) unsigned int num_socks = 0; int i; + if (port_str == NULL) + port_str = "+"; + + parse_ports(context, port_str); + for(p = kadm_ports; p; p = p->next) { struct addrinfo hints, *ai, *ap; char portstr[32]; diff --git a/kadmin/kadmin_locl.h b/kadmin/kadmin_locl.h index 28733dd08..3cd5d9438 100644 --- a/kadmin/kadmin_locl.h +++ b/kadmin/kadmin_locl.h @@ -141,7 +141,7 @@ random_password(char *, size_t); extern sig_atomic_t term_flag, doing_useful_work; void parse_ports(krb5_context, const char*); -int start_server(krb5_context); +int start_server(krb5_context, const char*); /* server.c */ diff --git a/kadmin/kadmind.c b/kadmin/kadmind.c index e4e2b05a2..327a308d8 100644 --- a/kadmin/kadmind.c +++ b/kadmin/kadmind.c @@ -171,7 +171,10 @@ main(int argc, char **argv) debug_port = htons(atoi(port_str)); mini_inetd(debug_port, &sfd); } else { -#ifndef NO_INETD +#ifdef _WIN32 + pidfile(NULL); + start_server(context, port_str); +#else struct sockaddr_storage __ss; struct sockaddr *sa = (struct sockaddr *)&__ss; socklen_t sa_size = sizeof(__ss); @@ -183,16 +186,11 @@ main(int argc, char **argv) if(roken_getsockname(STDIN_FILENO, sa, &sa_size) < 0 && rk_SOCK_ERRNO == ENOTSOCK) { -#endif - parse_ports(context, port_str ? port_str : "+"); pidfile(NULL); - start_server(context); - sfd = STDIN_FILENO; -#ifndef NO_INETD - } else { - sfd = STDIN_FILENO; + start_server(context, port_str); } -#endif +#endif /* _WIN32 */ + sfd = STDIN_FILENO; } if(realm)