From 9c6e58869f45dd2be0904b9ecf9e757b2b3841d6 Mon Sep 17 00:00:00 2001 From: John Terpstra Date: Tue, 22 Apr 2003 23:19:09 +0000 Subject: Added Stephen Roylance's patch - Adds to Status page, a Start All, Restart All and Stop All deamons button. (This used to be commit 57cfcb3108935f46cb3938b403a3eaba2888fb55) --- source3/web/statuspage.c | 47 ++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 38 insertions(+), 9 deletions(-) (limited to 'source3/web') diff --git a/source3/web/statuspage.c b/source3/web/statuspage.c index 8e41d62cb0..ddbe658a6c 100644 --- a/source3/web/statuspage.c +++ b/source3/web/statuspage.c @@ -220,45 +220,46 @@ void status_page(void) int autorefresh=0; int refresh_interval=30; TDB_CONTEXT *tdb; + int nr_running=0; smbd_pid = pidfile_pid("smbd"); - if (cgi_variable("smbd_restart")) { + if (cgi_variable("smbd_restart") || cgi_variable("all_restart")) { stop_smbd(); start_smbd(); } - if (cgi_variable("smbd_start")) { + if (cgi_variable("smbd_start") || cgi_variable("all_start")) { start_smbd(); } - if (cgi_variable("smbd_stop")) { + if (cgi_variable("smbd_stop") || cgi_variable("all_stop")) { stop_smbd(); } - if (cgi_variable("nmbd_restart")) { + if (cgi_variable("nmbd_restart") || cgi_variable("all_restart")) { stop_nmbd(); start_nmbd(); } - if (cgi_variable("nmbd_start")) { + if (cgi_variable("nmbd_start") || cgi_variable("all_start")) { start_nmbd(); } - if (cgi_variable("nmbd_stop")) { + if (cgi_variable("nmbd_stop")|| cgi_variable("all_stop")) { stop_nmbd(); } #ifdef WITH_WINBIND - if (cgi_variable("winbindd_restart")) { + if (cgi_variable("winbindd_restart") || cgi_variable("all_restart")) { stop_winbindd(); start_winbindd(); } - if (cgi_variable("winbindd_start")) { + if (cgi_variable("winbindd_start") || cgi_variable("all_start")) { start_winbindd(); } - if (cgi_variable("winbindd_stop")) { + if (cgi_variable("winbindd_stop") || cgi_variable("all_stop")) { stop_winbindd(); } #endif @@ -314,6 +315,7 @@ void status_page(void) d_printf("%s%s\n", _("smbd:"), smbd_running()?_("running"):_("not running")); if (geteuid() == 0) { if (smbd_running()) { + nr_running++; d_printf("\n", _("Stop smbd")); } else { d_printf("\n", _("Start smbd")); @@ -326,11 +328,25 @@ void status_page(void) d_printf("%s%s\n", _("nmbd:"), nmbd_running()?_("running"):_("not running")); if (geteuid() == 0) { if (nmbd_running()) { + nr_running++; d_printf("\n", _("Stop nmbd")); } else { d_printf("\n", _("Start nmbd")); } d_printf("\n", _("Restart nmbd")); +#ifndef WITH_WINBIND + if (nr_running >= 1) { + /* stop, restart all */ + d_printf("\n"); + d_printf("\n", _("Stop All")); + d_printf("\n", _("Restart All")); + } + else if (nr_running == 0) { + /* start all */ + d_printf("\n"); + d_printf("\n", _("Start All")); + } +#endif } d_printf("\n"); @@ -339,11 +355,24 @@ void status_page(void) d_printf("%s%s\n", _("winbindd:"), winbindd_running()?_("running"):_("not running")); if (geteuid() == 0) { if (winbindd_running()) { + nr_running++; d_printf("\n", _("Stop winbindd")); } else { d_printf("\n", _("Start winbindd")); } d_printf("\n", _("Restart winbindd")); + if (nr_running >= 1) { + /* stop, restart all */ + d_printf("\n"); + d_printf("\n", _("Stop All")); + d_printf("\n", _("Restart All")); + } + else if (nr_running == 0) { + /* start all */ + d_printf("\n"); + d_printf("\n", _("Start All")); + } + } d_printf("\n"); #endif -- cgit