summaryrefslogtreecommitdiffstats
path: root/etc/inc/pfsense-utils.inc
diff options
context:
space:
mode:
authorScott Ullrich <sullrich@pfsense.org>2006-01-21 22:57:47 +0000
committerScott Ullrich <sullrich@pfsense.org>2006-01-21 22:57:47 +0000
commit96af3ad5175dc5fc4bd7f815d131c254784ad744 (patch)
tree9ce0a721cc9b3b48228b89b1915cb486aa39d2fc /etc/inc/pfsense-utils.inc
parentb5768352c782554d1d30850fab74f22e42055911 (diff)
downloadpfsense-96af3ad5175dc5fc4bd7f815d131c254784ad744.zip
pfsense-96af3ad5175dc5fc4bd7f815d131c254784ad744.tar.gz
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
Diffstat (limited to 'etc/inc/pfsense-utils.inc')
-rw-r--r--etc/inc/pfsense-utils.inc75
1 files changed, 74 insertions, 1 deletions
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
OpenPOWER on IntegriCloud