From 96af3ad5175dc5fc4bd7f815d131c254784ad744 Mon Sep 17 00:00:00 2001 From: Scott Ullrich Date: Sat, 21 Jan 2006 22:57:47 +0000 Subject: MFC 9548 Shift serial port toggle routine to pfsense-utils.inc. Call this function after configuration import to setup needed bits on system for serial console if need be. Shift console locjout routine to pfsense-utils.inc. Call this function from serial port code to setup if auto login / console lockout is enabled after config restore --- etc/inc/pfsense-utils.inc | 75 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 74 insertions(+), 1 deletion(-) (limited to 'etc/inc/pfsense-utils.inc') diff --git a/etc/inc/pfsense-utils.inc b/etc/inc/pfsense-utils.inc index fed82ec..0686079 100644 --- a/etc/inc/pfsense-utils.inc +++ b/etc/inc/pfsense-utils.inc @@ -1606,6 +1606,79 @@ function reload_all_sync() { } +function auto_login($status) { + $gettytab = file_get_contents("/etc/gettytab"); + $getty_split = split("\n", $gettytab); + conf_mount_rw(); + $fd = fopen("/etc/gettytab", "w"); + foreach($getty_split as $gs) { + if(stristr($gs, "cb:ce:ck:lc") == true) { + if($status == true) { + fwrite($fd, ":cb:ce:ck:lc:fd#1000:im=\\r\\n%s/%m (%h) (%t)\\r\\n\\r\\n:sp#1200:\\\n"); + } else { + fwrite($fd, ":al=root:cb:ce:ck:lc:fd#1000:im=\\r\\n%s/%m (%h) (%t)\\r\\n\\r\\n:sp#1200:\\\n"); + } + } else { + fwrite($fd, "{$gs}\n"); + } + } + fclose($fd); + conf_mount_ro(); +} + +function setup_serial_port() { + global $g, $config; + /* serial console - write out /boot.config */ + if(file_exists("/boot.config")) + $boot_config = file_get_contents("/boot.config"); + else + $boot_config = ""; + + if($g['platform'] <> "cdrom") { + $boot_config_split = split("\n", $boot_config); + $fd = fopen("/boot.config","w"); + if($fd) { + foreach($boot_config_split as $bcs) { + if(stristr($bcs, "-D")) { + /* DONT WRITE OUT, WE'LL DO IT LATER */ + } else { + if($bcs <> "") + fwrite($fd, "{$bcs}\n"); + } + } + if(isset($config['system']['enableserial'])) { + fwrite($fd, "-D"); + } + fclose($fd); + } + /* serial console - write out /boot/loader.conf */ + $boot_config = file_get_contents("/boot/loader.conf"); + $boot_config_split = split("\n", $boot_config); + $fd = fopen("/boot/loader.conf","w"); + if($fd) { + foreach($boot_config_split as $bcs) { + if(stristr($bcs, "console")) { + /* DONT WRITE OUT, WE'LL DO IT LATER */ + } else { + if($bcs <> "") + fwrite($fd, "{$bcs}\n"); + } + } + if(isset($config['system']['enableserial'])) { + fwrite($fd, "console=\"comconsole\"\n"); + } + fclose($fd); + } + } + if(isset($config['system']['disableconsolemenu'])) { + auto_login(true); + } else { + auto_login(false); + } + conf_mount_ro(); + return; +} + function print_value_list($list, $count = 10, $separator = ",") { $list = implode($separator, array_slice($list, 0, $count)); if(count($list) < $count) { @@ -1616,4 +1689,4 @@ function print_value_list($list, $count = 10, $separator = ",") { return $list; } -?> +?> \ No newline at end of file -- cgit v1.1