diff options
author | Scott Ullrich <sullrich@pfsense.org> | 2005-11-26 22:06:23 +0000 |
---|---|---|
committer | Scott Ullrich <sullrich@pfsense.org> | 2005-11-26 22:06:23 +0000 |
commit | 877ac35dc99371c7a854a4b9d0a79aa04901bb22 (patch) | |
tree | d0356122a49948f5f77dc9f777ecef33b8bede39 /etc | |
parent | 51bb9b9467620bd60a857ae988efd5d79af692f4 (diff) | |
download | pfsense-877ac35dc99371c7a854a4b9d0a79aa04901bb22.zip pfsense-877ac35dc99371c7a854a4b9d0a79aa04901bb22.tar.gz |
Use Lighty. Hopefully it's here to stay, and mini_httpd is dead, jim.
Diffstat (limited to 'etc')
-rw-r--r-- | etc/inc/captiveportal.inc | 40 | ||||
-rw-r--r-- | etc/inc/system.inc | 90 |
2 files changed, 102 insertions, 28 deletions
diff --git a/etc/inc/captiveportal.inc b/etc/inc/captiveportal.inc index ebf6271..34167e7 100644 --- a/etc/inc/captiveportal.inc +++ b/etc/inc/captiveportal.inc @@ -187,32 +187,18 @@ EOD; $procs = 16; } - /* start web server */ - mwexec("/usr/local/sbin/mini_httpd -a -M 0 -u root -maxproc {$procs}" . - " -p 8000 -i {$g['varrun_path']}/mini_httpd.cp.pid"); - - /* fire up another one for HTTPS if requested */ - if (isset($config['captiveportal']['httpslogin']) && - $config['captiveportal']['certificate'] && $config['captiveportal']['private-key']) { - - $cert = base64_decode($config['captiveportal']['certificate']); - $key = base64_decode($config['captiveportal']['private-key']); - - $fd = fopen("{$g['varetc_path']}/cert-portal.pem", "w"); - if (!$fd) { - printf("Error: cannot open cert-portal.pem in system_webgui_start().\n"); - return 1; - } - chmod("{$g['varetc_path']}/cert-portal.pem", 0600); - fwrite($fd, $cert); - fwrite($fd, "\n"); - fwrite($fd, $key); - fclose($fd); - - mwexec("/usr/local/sbin/mini_httpd -S -a -M 0 -E {$g['varetc_path']}/cert-portal.pem" . - " -u root -maxproc 16 -p 8001" . - " -i {$g['varrun_path']}/mini_httpd.cps.pid"); - } + /* TEMPORARY! FAST_CGI reports _FALSE_ client ip + * addresses. + */ + $use_fastcgi = false; + + /* generate lighttpd configuration */ + system_generate_lighty_config("{$g['varetc_path']}/lighty-CaptivePortal.conf", + $key, $cert, "lighty-CaptivePortal.pid", "8000", "/usr/local/captiveportal/", + "cert-portal.pem", "1", $procs, $use_fastcgi); + + /* attempt to start lighttpd */ + $res = mwexec("/usr/local/sbin/lighttpd -f {$g['varetc_path']}/lighty-CaptivePortal.conf"); /* start pruning process (interval = 60 seconds) */ mwexec("/usr/local/bin/minicron 60 {$g['varrun_path']}/minicron.pid " . @@ -792,4 +778,4 @@ function captiveportal_logportalauth($user,$mac,$ip,$status) { closelog(); } -?>
\ No newline at end of file +?> diff --git a/etc/inc/system.inc b/etc/inc/system.inc index 30a7366..e732a97 100644 --- a/etc/inc/system.inc +++ b/etc/inc/system.inc @@ -332,6 +332,94 @@ function system_pccard_start() { function system_webgui_start() { global $config, $g; + + if ($g['booting']) + echo "Starting webConfigurator... "; + + /* kill any running mini_httpd */ + killbypid("{$g['varrun_path']}/lighty-webConfigurator.pid"); + + /* generate password file */ + system_password_configure(); + + chdir($g['www_path']); + + /* non-standard port? */ + if ($config['system']['webgui']['port']) + $portarg = "-p {$config['system']['webgui']['port']}"; + else + $portarg = ""; + + if ($config['system']['webgui']['protocol'] == "https") { + + if ($config['system']['webgui']['certificate'] && $config['system']['webgui']['private-key']) { + $cert = base64_decode($config['system']['webgui']['certificate']); + $key = base64_decode($config['system']['webgui']['private-key']); + } else { + /* default certificate/key */ + $cert = <<<EOD +-----BEGIN CERTIFICATE----- +MIIC4zCCAkygAwIBAgIBADANBgkqhkiG9w0BAQQFADBbMQswCQYDVQQGEwJOQTEL +MAkGA1UECBMCTkExCzAJBgNVBAcTAk5BMQswCQYDVQQKEwJOQTELMAkGA1UECxMC +TkExCzAJBgNVBAMTAk5BMQswCQYDVQQGEwJVUzAeFw0wNTAzMDYwMDE1NDJaFw0x +NTAzMDQwMDE1NDJaMFsxCzAJBgNVBAYTAk5BMQswCQYDVQQIEwJOQTELMAkGA1UE +BxMCTkExCzAJBgNVBAoTAk5BMQswCQYDVQQLEwJOQTELMAkGA1UEAxMCTkExCzAJ +BgNVBAYTAlVTMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDF7luuy70OvHrl +xnW9ID6srsfxEFCF4d9LmlZ6XdW1rEUHQ6KTgz4iSD+pxEOxxlY+bCH6HTkAy5Sa +zt3eT7javvF+ILZgarwoY2x+NbDctd0VBJVkH0fEvBf1xqU7wpkOiWkw1RmfEvZI +6XnGi6VSjSmkm0UoQMKg9R7niRtE4QIDAQABo4G2MIGzMB0GA1UdDgQWBBTgvk9F +alPK6/OcZrkaE8BhBrRo2DCBgwYDVR0jBHwweoAU4L5PRWpTyuvznGa5GhPAYQa0 +aNihX6RdMFsxCzAJBgNVBAYTAk5BMQswCQYDVQQIEwJOQTELMAkGA1UEBxMCTkEx +CzAJBgNVBAoTAk5BMQswCQYDVQQLEwJOQTELMAkGA1UEAxMCTkExCzAJBgNVBAYT +AlVTggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAv9+GXdYIWs2R +8B0zI4jAbHcaRsfohuzpNHD5re7ZK8H4fYbHIfmPY2UM3yOU7J2rLP8KGfKztay1 +Z3RNW7SKJI/CagbdQOuYdMrlEyA4ZImM6NNzUbH6rNKtmDIDo1kHL3cXjzXEjBE+ +ZZYTREFcdhtzUH5lYzJz1uVFeCSwozk= +-----END CERTIFICATE----- +EOD; + + $key = <<<EOD +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDF7luuy70OvHrlxnW9ID6srsfxEFCF4d9LmlZ6XdW1rEUHQ6KT +gz4iSD+pxEOxxlY+bCH6HTkAy5Sazt3eT7javvF+ILZgarwoY2x+NbDctd0VBJVk +H0fEvBf1xqU7wpkOiWkw1RmfEvZI6XnGi6VSjSmkm0UoQMKg9R7niRtE4QIDAQAB +AoGAF9dMJ9PWo+3EB+VNzUgTBI3Q+5JxgI7ibKLcg8TFtypW7jcRYB9Q3qRBNtuz +I7i2LrKrrQrUEOp0rej5BIwpwcjtEE2NsZwgYwDyywptoqt3WO86nPXYz2KhkQmP +YCDmPrff4vXCv6zgefb/AIgrOkgD3ViEoePhCAg+0l3fEIECQQD7C68Nb6KAWUND +Q9B0RxYrlgXikQ8yVHhlyM433APe/NCJ9kl5dLXpyjuvrWB+ml6TlLrcroLGejbd +tYXvIiyJAkEAydZVHqB4MpMtuY7VJoHNgl06YBoeTI+BJptPaOUNl4SlUKIYJMhX +oOXIGk9uDjfSNS7HvunZBjgz092GShWvmQJAQ8NhmwTZHj/58fwqFljh2R4DtKZn +LbSzUvYjA9z1holDWRoLtycTu2mFNuRbuZC9mqR40/ye/CgdCzdmUagt0QJBAKq1 +00ySINd10Cive+yTwMPQIj2CGbpbbbq/hYyMntBWapQmZRFHOYZmkrZeFBGGeQ5u +QJdipiIyivNY2+nxKZECQCvumJPfZYxCeCAEC+G2xezrP6bC6FhzUOw6410UARTM +fuFjHpSfOiG62lfRdZgCPAr1L/1pJF+8RqjGlFfAuFA= +-----END RSA PRIVATE KEY----- +EOD; + } + } else { + $cert = ""; + $key = ""; + } + + /* generate lighttpd configuration */ + system_generate_lighty_config("{$g['varetc_path']}/lighty-webConfigurator.conf", + $key, $cert, "lighty-webConfigurator.pid", "/usr/local/www/"); + + /* attempt to start lighthttpd */ + $res = mwexec("/usr/local/sbin/lighttpd -f {$g['varetc_path']}/lighty-webConfigurator.conf"); + + if ($g['booting']) { + if ($res == 0) + echo "done.\n"; + else + echo "failed!\n"; + } + + return $res; +} + +function system_webgui_start_old() { + global $config, $g; if(isset($config['system']['developerspew'])) { $mt = microtime(); echo "system_webgui_start() being called $mt\n"; @@ -902,4 +990,4 @@ function system_enable_arp_wrong_if() { } -?>
\ No newline at end of file +?> |