diff --git a/servers/lloadd/daemon.c b/servers/lloadd/daemon.c index 666956f63a..e47ea567c2 100644 --- a/servers/lloadd/daemon.c +++ b/servers/lloadd/daemon.c @@ -702,6 +702,25 @@ lload_open_listener( return 0; } +int +lload_open_new_listener( const char *url, LDAPURLDesc *lud ) +{ + int rc, i, j = 0; + + for ( i = 0; lload_listeners && lload_listeners[i] != NULL; + i++ ) /* count */ + ; + j = i; + + i++; + lload_listeners = ch_realloc( + lload_listeners, ( i + 1 ) * sizeof(LloadListener *) ); + + rc = lload_open_listener( url, lud, &i, &j ); + lload_listeners[j] = NULL; + return rc; +} + int lloadd_inited = 0; int diff --git a/servers/lloadd/proto-lload.h b/servers/lloadd/proto-lload.h index 3447977d15..8d3db30aec 100644 --- a/servers/lloadd/proto-lload.h +++ b/servers/lloadd/proto-lload.h @@ -97,6 +97,7 @@ LDAP_SLAPD_F (void) connection_destroy( LloadConnection *c ); /* * daemon.c */ +LDAP_SLAPD_F (int) lload_open_new_listener( const char *urls, LDAPURLDesc *lud ); LDAP_SLAPD_F (int) lloadd_listeners_init( const char *urls ); LDAP_SLAPD_F (int) lloadd_daemon_destroy( void ); LDAP_SLAPD_F (int) lloadd_daemon( struct event_base *daemon_base );