Project

General

Profile

« Previous | Next » 

Revision ee6e6011

Added by Jim Pingle about 12 years ago

Move these service control functions into service-utils.inc so they may be re-used.

View differences:

etc/inc/service-utils.inc
37 37
	pfSense_BUILDER_BINARIES:	/bin/pgrep /bin/sh /usr/bin/killall
38 38
	pfSense_MODULE:	utils
39 39
*/
40
require_once("captiveportal.inc");
41
require_once("openvpn.inc");
42
require_once("ipsec.inc");
43
require_once("vpn.inc");
44
require_once("vslb.inc");
40 45

  
41 46
define("RCFILEPREFIX", "/usr/local/etc/rc.d/");
42 47
function write_rcfile($params) {
......
471 476
	}
472 477
	return $output;
473 478
}
479

  
480
function service_control_start($name, $extras) {
481
	global $g;
482
	switch($name) {
483
		case 'radvd':
484
			services_radvd_configure();
485
			break;
486
		case 'captiveportal':
487
			$zone = $extras['zone'];
488
			captiveportal_init_webgui_zonename($zone);
489
			break;
490
		case 'ntpd':
491
		case 'openntpd':
492
			system_ntp_configure();
493
			break;
494
		case 'bsnmpd':
495
			services_snmpd_configure();
496
			break;
497
		case 'dnsmasq':
498
			services_dnsmasq_configure();
499
			break;
500
		case 'dhcpd':
501
			services_dhcpd_configure();
502
			break;
503
		case 'igmpproxy':
504
			services_igmpproxy_configure();
505
			break;
506
		case 'miniupnpd':
507
			upnp_action('start');
508
			break;
509
		case 'racoon':
510
			vpn_ipsec_force_reload();
511
			break;
512
		case 'openvpn':
513
			$vpnmode = $extras['vpnmode'];
514
			if (($vpnmode == "server") || ($vpnmode == "client")) {
515
				$id = $extras['id'];
516
				$configfile = "{$g['varetc_path']}/openvpn/{$vpnmode}{$id}.conf";
517
				if (file_exists($configfile))
518
					openvpn_restart_by_vpnid($vpnmode, $id);
519
			}
520
			break;
521
		case 'relayd':
522
			relayd_configure();
523
			break;
524
		default:
525
			start_service($name);
526
			break;
527
	}
528
	return sprintf(gettext("%s has been started."),htmlspecialchars($name));
529
}
530
function service_control_stop($name, $extras) {
531
	global $g;
532
	switch($name) {
533
		case 'radvd':
534
			killbypid("{$g['varrun_path']}/radvd.pid");
535
			break;
536
		case 'captiveportal':
537
			$zone = $extras['zone'];
538
			killbypid("{$g['varrun_path']}/lighty-{$zone}-CaptivePortal.pid");
539
			killbypid("{$g['varrun_path']}/lighty-{$zone}-CaptivePortal-SSL.pid");
540
			break;
541
		case 'ntpd':
542
			killbyname("ntpd");
543
			break;
544
		case 'openntpd':
545
			killbyname("openntpd");
546
			break;
547
		case 'bsnmpd':
548
			killbypid("{$g['varrun_path']}/snmpd.pid");
549
			break;
550
		case 'choparp':
551
			killbyname("choparp");
552
			break;
553
		case 'dhcpd':
554
			killbyname("dhcpd");
555
			break;
556
		case 'dhcrelay':
557
			killbypid("{$g['varrun_path']}/dhcrelay.pid");
558
			break;
559
		case 'dnsmasq':
560
			killbypid("{$g['varrun_path']}/dnsmasq.pid");
561
			break;
562
		case 'igmpproxy':
563
			killbyname("igmpproxy");
564
			break;
565
		case 'miniupnpd':
566
			upnp_action('stop');
567
			break;
568
		case 'sshd':
569
			killbyname("sshd");
570
			break;
571
		case 'racoon':
572
			exec("killall -9 racoon");
573
			break;
574
		case 'openvpn':
575
			$vpnmode = $extras['vpnmode'];
576
			if (($vpnmode == "server") or ($vpnmode == "client")) {
577
				$id = $extras['id'];
578
				$pidfile = "{$g['varrun_path']}/openvpn_{$vpnmode}{$id}.pid";
579
				killbypid($pidfile);
580
			}
581
			break;
582
		case 'relayd':
583
			mwexec('pkill relayd');
584
			break;
585
		default:
586
			stop_service($name);
587
			break;
588
	}
589
	return sprintf(gettext("%s has been stopped."), htmlspecialchars($name));
590
}
591
function service_control_restart($name, $extras) {
592
	global $g;
593
	switch($name) {
594
		case 'radvd':
595
			services_radvd_configure();
596
			break;
597
		case 'captiveportal':
598
			$zone = $extras['zone'];
599
			killbypid("{$g['varrun_path']}/lighty-{$zone}-CaptivePortal.pid");
600
			killbypid("{$g['varrun_path']}/lighty-{$zone}-CaptivePortal-SSL.pid");
601
			captiveportal_init_webgui_zonename($zone);
602
			break;
603
		case 'ntpd':
604
		case 'openntpd':
605
			system_ntp_configure();
606
			break;
607
		case 'bsnmpd':
608
			services_snmpd_configure();
609
			break;
610
		case 'dnsmasq':
611
			services_dnsmasq_configure();
612
			break;
613
		case 'dhcpd':
614
			services_dhcpd_configure();
615
			break;
616
		case 'igmpproxy':
617
			services_igmpproxy_configure();
618
			break;
619
		case 'miniupnpd':
620
			upnp_action('restart');
621
			break;
622
		case 'racoon':
623
			vpn_ipsec_force_reload();
624
			break;
625
		case 'openvpn':
626
			$vpnmode = $extras['vpnmode'];
627
			if ($vpnmode == "server" || $vpnmode == "client") {
628
				$id = $extras['id'];
629
				$configfile = "{$g['varetc_path']}/openvpn/{$vpnmode}{$id}.conf";
630
				if (file_exists($configfile))
631
					openvpn_restart_by_vpnid($vpnmode, $id);
632
			}
633
			break;
634
		case 'relayd':
635
			relayd_configure(true);
636
			break;
637
		default:
638
			restart_service($name);
639
			break;
640
	}
641
	return sprintf(gettext("%s has been restarted."),htmlspecialchars($name));
642
}
643

  
474 644
?>

Also available in: Unified diff