diff --git a/kdc/connect.c b/kdc/connect.c index 215b6b3de..c0978bb0f 100644 --- a/kdc/connect.c +++ b/kdc/connect.c @@ -80,12 +80,21 @@ init_socket(struct descr *d, int type, int port) static int init_sockets(struct descr **d) { - *d = malloc(4 * sizeof(**d)); + int nsockets = 4; + +#ifdef KASERVER + nsockets++; +#endif + + *d = malloc(nsockets * sizeof(**d)); init_socket(*d + 0, SOCK_DGRAM, 88); init_socket(*d + 1, SOCK_DGRAM, 750); init_socket(*d + 2, SOCK_STREAM, 88); init_socket(*d + 3, SOCK_STREAM, 750); - return 4; +#ifdef KASERVER + init_socket(*d + 4, SOCK_DGRAM, 7004); +#endif + return nsockets; } @@ -122,6 +131,12 @@ process_request(unsigned char *buf, return ret; } #endif +#ifdef KASERVER + else { + ret = do_kaserver (buf, len, reply, from, (struct sockaddr_in*)addr); + return ret; + } +#endif return -1; }