remove NO_INETD by shuffling code around

This commit is contained in:
Love Hornquist Astrand
2009-12-25 06:37:57 +01:00
parent 02e980612e
commit b914fd57c5
4 changed files with 14 additions and 15 deletions

View File

@@ -1353,10 +1353,6 @@ static const char *const rcsid[] = { (const char *)rcsid, "@(#)" msg }
/* Define if you don't want to use mmap. */ /* Define if you don't want to use mmap. */
#define NO_MMAP 1 #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 NO_RAND_EGD_METHOD 1
/* Define if the Unix rand method is not defined */ /* Define if the Unix rand method is not defined */

View File

@@ -221,7 +221,7 @@ wait_for_connection(krb5_context context,
int int
start_server(krb5_context context) start_server(krb5_context context, const char *port_str)
{ {
int e; int e;
struct kadm_port *p; struct kadm_port *p;
@@ -230,6 +230,11 @@ start_server(krb5_context context)
unsigned int num_socks = 0; unsigned int num_socks = 0;
int i; int i;
if (port_str == NULL)
port_str = "+";
parse_ports(context, port_str);
for(p = kadm_ports; p; p = p->next) { for(p = kadm_ports; p; p = p->next) {
struct addrinfo hints, *ai, *ap; struct addrinfo hints, *ai, *ap;
char portstr[32]; char portstr[32];

View File

@@ -141,7 +141,7 @@ random_password(char *, size_t);
extern sig_atomic_t term_flag, doing_useful_work; extern sig_atomic_t term_flag, doing_useful_work;
void parse_ports(krb5_context, const char*); void parse_ports(krb5_context, const char*);
int start_server(krb5_context); int start_server(krb5_context, const char*);
/* server.c */ /* server.c */

View File

@@ -171,7 +171,10 @@ main(int argc, char **argv)
debug_port = htons(atoi(port_str)); debug_port = htons(atoi(port_str));
mini_inetd(debug_port, &sfd); mini_inetd(debug_port, &sfd);
} else { } else {
#ifndef NO_INETD #ifdef _WIN32
pidfile(NULL);
start_server(context, port_str);
#else
struct sockaddr_storage __ss; struct sockaddr_storage __ss;
struct sockaddr *sa = (struct sockaddr *)&__ss; struct sockaddr *sa = (struct sockaddr *)&__ss;
socklen_t sa_size = sizeof(__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 && if(roken_getsockname(STDIN_FILENO, sa, &sa_size) < 0 &&
rk_SOCK_ERRNO == ENOTSOCK) { rk_SOCK_ERRNO == ENOTSOCK) {
#endif
parse_ports(context, port_str ? port_str : "+");
pidfile(NULL); pidfile(NULL);
start_server(context); start_server(context, port_str);
sfd = STDIN_FILENO;
#ifndef NO_INETD
} else {
sfd = STDIN_FILENO;
} }
#endif #endif /* _WIN32 */
sfd = STDIN_FILENO;
} }
if(realm) if(realm)