1
|
<?php
|
2
|
/* $Id$ */
|
3
|
/*
|
4
|
globals.inc
|
5
|
part of pfSense (www.pfsense.com)
|
6
|
Copyright (C) 2004-2006 Scott Ullrich
|
7
|
|
8
|
Originally Part of m0n0wall
|
9
|
Copyright (C) 2003-2004 Manuel Kasper <mk@neon1.net>.
|
10
|
All rights reserved.
|
11
|
|
12
|
Redistribution and use in source and binary forms, with or without
|
13
|
modification, are permitted provided that the following conditions are met:
|
14
|
|
15
|
1. Redistributions of source code must retain the above copyright notice,
|
16
|
this list of conditions and the following disclaimer.
|
17
|
|
18
|
2. Redistributions in binary form must reproduce the above copyright
|
19
|
notice, this list of conditions and the following disclaimer in the
|
20
|
documentation and/or other materials provided with the distribution.
|
21
|
|
22
|
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
23
|
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
24
|
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
25
|
AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
26
|
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
27
|
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
28
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
29
|
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
30
|
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
31
|
POSSIBILITY OF SUCH DAMAGE.
|
32
|
|
33
|
pfSense_MODULE: utils
|
34
|
|
35
|
*/
|
36
|
|
37
|
function remove_numbers($string) {
|
38
|
$nums = array("1", "2", "3", "4", "5", "6", "7", "8", "9", "0", " ");
|
39
|
$string = str_replace($nums, '', $string);
|
40
|
return $string;
|
41
|
}
|
42
|
|
43
|
function get_nics_with_capabilities($CAPABILITIES) {
|
44
|
$ifs = `/sbin/ifconfig -l`;
|
45
|
$if_list = split(" ", $ifs);
|
46
|
$vlan_native_supp = array();
|
47
|
foreach($if_list as $if => $iface) {
|
48
|
$iface = trim($iface);
|
49
|
$capable = pfSense_get_interface_addresses($iface);
|
50
|
if(isset($capable['caps'][$CAPABILITIES])) {
|
51
|
$interfacenonum = remove_numbers($iface);
|
52
|
if(!in_array($interfacenonum, $vlan_native_supp))
|
53
|
$vlan_native_supp[] = $interfacenonum;
|
54
|
}
|
55
|
}
|
56
|
return $vlan_native_supp;
|
57
|
}
|
58
|
|
59
|
$g = array(
|
60
|
"base_packages" => "siproxd",
|
61
|
"event_address" => "unix:///var/run/check_reload_status",
|
62
|
"factory_shipped_username" => "admin",
|
63
|
"factory_shipped_password" => "pfsense",
|
64
|
"upload_path" => "/root",
|
65
|
"dhcpd_chroot_path" => "/var/dhcpd",
|
66
|
"varrun_path" => "/var/run",
|
67
|
"varetc_path" => "/var/etc",
|
68
|
"vardb_path" => "/var/db",
|
69
|
"varlog_path" => "/var/log",
|
70
|
"etc_path" => "/etc",
|
71
|
"tmp_path" => "/tmp",
|
72
|
"conf_path" => "/conf",
|
73
|
"ftmp_path" => "/ftmp",
|
74
|
"conf_default_path" => "/conf.default",
|
75
|
"cf_path" => "/cf",
|
76
|
"cf_conf_path" => "/cf/conf",
|
77
|
"www_path" => "/usr/local/www",
|
78
|
"xml_rootobj" => "pfsense",
|
79
|
"admin_group" => "admins",
|
80
|
"product_name" => "pfSense",
|
81
|
"product_copyright" => "BSD Perimeter LLC",
|
82
|
"product_copyright_url" => "http://www.bsdperimeter.com",
|
83
|
"product_copyright_years" => "2004 - 2010",
|
84
|
"product_website" => "www.pfsense.org",
|
85
|
"product_website_footer" => "http://www.pfsense.org/?gui20",
|
86
|
"product_email" => "coreteam@pfsense.org",
|
87
|
"hideplatform" => false,
|
88
|
"disablethemeselection" => false,
|
89
|
"disablehelpmenu" => false,
|
90
|
"disablehelpicon" => false,
|
91
|
"debug" => false,
|
92
|
"latest_config" => "7.5",
|
93
|
"nopkg_platforms" => array("cdrom"),
|
94
|
"minimum_ram_warning" => "105",
|
95
|
"minimum_ram_warning_text" => "128 MB",
|
96
|
"minimum_nic_count" => "1",
|
97
|
"minimum_nic_count_text" => "*AT LEAST* 1",
|
98
|
"wan_interface_name" => "wan",
|
99
|
"nopccard_platforms" => array("wrap", "net48xx"),
|
100
|
"xmlrpcbaseurl" => "www.pfsense.com",
|
101
|
"captiveportal_path" => "/usr/local/captiveportal",
|
102
|
"captiveportal_element_path" => "/var/db/cpelements",
|
103
|
"captiveportal_element_sizelimit" => 1048576,
|
104
|
"xmlrpcpath" => "/pfSense/xmlrpc.php",
|
105
|
"embeddedbootupslice" => "/dev/ad0a",
|
106
|
"services_dhcp_server_enable" => true,
|
107
|
"wireless_regex" => "/^(ndis|wi|ath|an|ral|ural|iwi|wlan|rum|run|bwn|zyd|mwl|bwi|ipw|iwn|malo|uath|upgt|urtw|wpi)/",
|
108
|
"help_base_url" => "/help.php"
|
109
|
);
|
110
|
|
111
|
// Loop through and set vlan_long_frame VLAN_MTU
|
112
|
$vlan_native_supp = get_nics_with_capabilities("vlanmtu");
|
113
|
if(count($vlan_native_supp) > 0)
|
114
|
$g['vlan_long_frame'] = $vlan_native_supp;
|
115
|
else
|
116
|
$g['vlan_long_frame'] = array("vge", "bfe", "bge", "dc", "em", "fxp", "gem", "hme", "ixgb", "le", "lem", "nge", "re", "rl", "sis", "sk", "ste", "ti", "tl", "tx", "txp", "vr", "xl", "lagg");
|
117
|
|
118
|
/* IP TOS flags */
|
119
|
$iptos = array("lowdelay", "throughput", "reliability");
|
120
|
|
121
|
/* TCP flags */
|
122
|
$tcpflags = array("syn", "ack", "fin", "rst", "psh", "urg");
|
123
|
|
124
|
if(file_exists("/etc/platform")) {
|
125
|
$arch = php_uname("m");
|
126
|
$g['platform'] = trim(file_get_contents("/etc/platform"));
|
127
|
if($g['platform'] == "nanobsd") {
|
128
|
$g['update_url']="http://snapshots.pfsense.org/FreeBSD_RELENG_8_1/{$arch}/pfSense_HEAD/.updaters/";
|
129
|
$g['update_manifest']="http://updates.pfSense.com/nanobsd/manifest";
|
130
|
$g['firmware_update_text']="pfSense-*.img.gz";
|
131
|
|
132
|
} else {
|
133
|
$g['update_url']="http://snapshots.pfsense.org/FreeBSD_RELENG_8_1/{$arch}/pfSense_HEAD/.updaters/";
|
134
|
$g['update_manifest']="http://updates.pfSense.com/manifest";
|
135
|
$g['firmware_update_text']="pfSense-*.tgz";
|
136
|
}
|
137
|
}
|
138
|
|
139
|
/* Default sysctls */
|
140
|
$sysctls = array("net.inet.ip.portrange.first" => "1024",
|
141
|
"net.inet.tcp.blackhole" => "2",
|
142
|
"net.inet.udp.blackhole" => "1",
|
143
|
"net.inet.ip.random_id" => "1",
|
144
|
"net.inet.tcp.drop_synfin" => "1",
|
145
|
"net.inet.ip.redirect" => "1",
|
146
|
"net.inet6.ip6.redirect" => "1",
|
147
|
"net.inet.tcp.syncookies" => "1",
|
148
|
"net.inet.tcp.recvspace" => "65228",
|
149
|
"net.inet.tcp.sendspace" => "65228",
|
150
|
"net.inet.ip.fastforwarding" => "0",
|
151
|
"net.inet.tcp.delayed_ack" => "0",
|
152
|
"net.inet.udp.maxdgram" => "57344",
|
153
|
"net.link.bridge.pfil_onlyip" => "0",
|
154
|
"net.link.bridge.pfil_member" => "1",
|
155
|
"net.link.bridge.pfil_bridge" => "0",
|
156
|
"net.link.tap.user_open" => "1",
|
157
|
"kern.rndtest.verbose" => "0",
|
158
|
"kern.randompid" => "347",
|
159
|
"net.inet.ip.intr_queue_maxlen" => "1000",
|
160
|
"hw.syscons.kbd_reboot" => "0",
|
161
|
"net.inet.tcp.inflight.enable" => "1",
|
162
|
"net.inet.tcp.log_debug" => "0",
|
163
|
"net.inet.tcp.tso" => "1",
|
164
|
"net.inet.icmp.icmplim" => "0",
|
165
|
"vfs.read_max" => "32"
|
166
|
);
|
167
|
|
168
|
$config_parsed = false;
|
169
|
|
170
|
?>
|