23 lines
914 B
Diff
23 lines
914 B
Diff
|
--- xinetd-2.3.14/xinetd/access.c 2005-10-05 19:15:33.000000000 +0200
|
||
|
+++ xinetd-2.3.14-mod/xinetd/access.c 2012-03-05 14:54:30.935416926 +0100
|
||
|
@@ -73,6 +73,7 @@ static void cps_service_restart(void)
|
||
|
unsigned int i;
|
||
|
time_t nowtime;
|
||
|
const char *func = "cps_service_restart";
|
||
|
+ int rs;
|
||
|
|
||
|
nowtime = time(NULL);
|
||
|
for( i=0; i < pset_count( SERVICES(ps) ); i++ ) {
|
||
|
@@ -84,8 +85,11 @@ static void cps_service_restart(void)
|
||
|
if( SVC_STATE(sp) == SVC_DISABLED ) {
|
||
|
scp = SVC_CONF( sp );
|
||
|
if ( SC_TIME_REENABLE(scp) <= nowtime ) {
|
||
|
+ rs = SVC_RUNNING_SERVERS(sp);
|
||
|
/* re-enable the service */
|
||
|
if( svc_activate(sp) == OK ) {
|
||
|
+ /* remember running servers after restart */
|
||
|
+ SVC_RUNNING_SERVERS(sp) = rs;
|
||
|
msg(LOG_ERR, func,
|
||
|
"Activating service %s", SC_NAME(scp));
|
||
|
} else {
|