aboutsummaryrefslogtreecommitdiffstats
path: root/config/openbgpd/openbgpd.inc
diff options
context:
space:
mode:
authorErmal <eri@pfsense.org>2013-03-27 16:07:34 +0100
committerErmal <eri@pfsense.org>2013-03-27 16:08:20 +0100
commit6ec163b98180eb8bacbf515ca9c9f079424da376 (patch)
tree19d8f2f66479851c5a5becfeb60c2b2cc8b325b8 /config/openbgpd/openbgpd.inc
parent2ecc2ed1aff712464fa17ad82c919687f3a904c9 (diff)
downloadpfsense-packages-6ec163b98180eb8bacbf515ca9c9f079424da376.tar.gz
pfsense-packages-6ec163b98180eb8bacbf515ca9c9f079424da376.tar.bz2
pfsense-packages-6ec163b98180eb8bacbf515ca9c9f079424da376.zip
Correctly generate the hex value needed for md5sigkey value. Use correct permissions for configuration file when generating
Diffstat (limited to 'config/openbgpd/openbgpd.inc')
-rw-r--r--config/openbgpd/openbgpd.inc28
1 files changed, 15 insertions, 13 deletions
diff --git a/config/openbgpd/openbgpd.inc b/config/openbgpd/openbgpd.inc
index 2d1f47fd..f099e44d 100644
--- a/config/openbgpd/openbgpd.inc
+++ b/config/openbgpd/openbgpd.inc
@@ -122,8 +122,11 @@ function openbgpd_install_conf() {
$conffile .= " tcp md5sig password {$neighbor['md5sigpass']}\n";
}
if($neighbor['md5sigkey']) {
- $setkeycf .= "add {$openbgpd_conf['listenip']} {$neighbor['neighbor']} tcp 0x1000 -A tcp-md5 0x{$neighbor['md5sigkey']};\n";
- $conffile .= " tcp md5sig key {$neighbor['md5sigkey']}\n";
+ $hex = "";
+ for ($i = 0; $i < strlen($neighbor['md5sigkey']); $i++)
+ $hex .= dechex(ord($neighbor['md5sigkey'][$i]));
+ $setkeycf .= "add {$openbgpd_conf['listenip']} {$neighbor['neighbor']} tcp 0x1000 -A tcp-md5 0x{$hex};\n";
+ $conffile .= " tcp md5sig key {$hex}\n";
}
foreach($neighbor['row'] as $row) {
$conffile .= " {$row['parameters']} {$row['parmvalue']} \n";
@@ -149,8 +152,11 @@ function openbgpd_install_conf() {
$conffile .= " tcp md5sig password {$neighbor['md5sigpass']}\n";
}
if ($neighbor['md5sigkey']) {
- $setkeycf .= "add {$openbgpd_conf['listenip']} {$neighbor['neighbor']} tcp 0x1000 -A tcp-md5 0x{$neighbor['md5sigkey']};\n";
- $conffile .= " tcp md5sig key {$neighbor['md5sigkey']}\n";
+ $hex = "";
+ for ($i = 0; $i < strlen($neighbor['md5sigkey']); $i++)
+ $hex .= dechex(ord($neighbor['md5sigkey'][$i]));
+ $setkeycf .= "add {$openbgpd_conf['listenip']} {$neighbor['neighbor']} tcp 0x1000 -A tcp-md5 0x{$hex};\n";
+ $conffile .= " tcp md5sig key {$hex}\n";
}
$used_this_item = true;
foreach($neighbor['row'] as $row) {
@@ -173,13 +179,9 @@ function openbgpd_install_conf() {
}
}
safe_mkdir($bgpd_config_base);
- $fd = fopen("{$bgpd_config_base}/bgpd.conf", "w");
-
- // Write out the configuration file
- fwrite($fd, $conffile);
-
- // Close file handle
- fclose($fd);
+ // Write out the configuration file
+ @file_put_contents("{$bgpd_config_base}/bgpd.conf", "w");
+ @chmod("{$bgpd_config_base}/bgpd.conf", 0666);
// Create rc.d file
$rc_file_stop = <<<EOF
@@ -320,11 +322,11 @@ function bgpd_validate_group() {
if ($_POST['name'] == "")
$input_errors[] = "You must enter a name.";
- $_POST['name'] = openbgpd_remove_bad_chars($_POST['name']);
+ $_POST['name'] = remove_bad_chars($_POST['name']);
}
-function openbgpd_remove_bad_chars($string) {
+function remove_bad_chars($string) {
return preg_replace('/[^a-z|_|0-9]/i','',$string);
}