Skip to content
Snippets Groups Projects
Commit 178b289f authored by Bob Mottram's avatar Bob Mottram
Browse files

Add code entry to dynamic dns screen

parent 1eeabefd
No related branches found
No related tags found
No related merge requests found
......@@ -1850,6 +1850,7 @@ function regenerate_dynamic_dns {
ddns="$1"
ddns_username="$2"
ddns_password="$3"
ddns_code="$4"
local_hostname=$(grep 'host-name' /etc/avahi/avahi-daemon.conf | awk -F '=' '{print $2}').local
webadmin_install_dir="/var/www/${local_hostname}/htdocs/admin"
......@@ -1863,6 +1864,7 @@ function regenerate_dynamic_dns {
fi
sed -i "s|\"$ddns\"|\"$ddns\" selected|g" "$webadmin_install_dir/dynamicdns.html"
sed -i "s|DDNS_USERNAME|$ddns_username|g" "$webadmin_install_dir/dynamicdns.html"
sed -i "s|DDNS_CODE|$ddns_code|g" "$webadmin_install_dir/dynamicdns.html"
sed -i "s|CURRENT_IP_ADDRESS|$(get_external_ipv4_address)|g" "$webadmin_install_dir/dynamicdns.html"
# Note: For security don't populate the password
#sed -i "s|DDNS_PASSWORD|$ddns_password|g" "$webadmin_install_dir/dynamicdns.html"
......@@ -2581,6 +2583,7 @@ function update_dynamic_dns {
ddns=$(awk -F ',' '{print $1}' < "$dynamic_dns_file")
ddns_username=$(awk -F ',' '{print $2}' < "$dynamic_dns_file")
ddns_password=$(awk -F ',' '{print $3}' < "$dynamic_dns_file")
ddns_code=$(awk -F ',' '{print $4}' < "$dynamic_dns_file")
ddns_is_valid=
if [ "$ddns_username" ]; then
......@@ -2599,7 +2602,26 @@ function update_dynamic_dns {
if [ $ddns_is_valid ]; then
/usr/local/bin/${PROJECT_NAME}-ddns "$ddns" "$ddns_username" "$ddns_password"
regenerate_dynamic_dns "$ddns" "$ddns_username" "$ddns_password"
if [ "$ddns_code" ]; then
if [ ${#ddns_code} -gt 30 ]; then
# if the whole cron line was pasted then parse that
if [[ "$ddns_code" == *'freedns'* ]]; then
if [[ "$ddns_code" == *'?'* && "$ddns_code" == *'='* ]]; then
ddns_code=$(echo "$ddns_code" | awk -F '?' '{print $2}' | awk -F '=' '{print $1}')
fi
fi
if grep -q "DEFAULT_DOMAIN_CODE=" "$CONFIGURATION_FILE"; then
sed -i "s|DEFAULT_DOMAIN_CODE=.*|DEFAULT_DOMAIN_CODE=${ddns_code}|g" "$CONFIGURATION_FILE"
else
echo "DEFAULT_DOMAIN_CODE=${ddns_code}" >> "$CONFIGURATION_FILE"
fi
else
ddns_code=
fi
fi
regenerate_dynamic_dns "$ddns" "$ddns_username" "$ddns_password" "$ddns_code"
fi
rm "$dynamic_dns_file"
......
......@@ -1077,6 +1077,7 @@ function regenerate_webadmin_dynamic_dns {
read_config_param DDNS_PROVIDER
read_config_param DDNS_USERNAME
read_config_param DDNS_PASSWORD
read_config_param DEFAULT_DOMAIN_CODE
local_hostname=$(grep 'host-name' /etc/avahi/avahi-daemon.conf | awk -F '=' '{print $2}').local
webadmin_install_dir="/var/www/${local_hostname}/htdocs/admin"
......@@ -1091,6 +1092,7 @@ function regenerate_webadmin_dynamic_dns {
fi
sed -i "s|\"$ddns\"|\"$ddns\" selected|g" "$webadmin_install_dir/dynamicdns.html"
sed -i "s|DDNS_USERNAME|$DDNS_USERNAME|g" "$webadmin_install_dir/dynamicdns.html"
sed -i "s|DDNS_CODE|$DEFAULT_DOMAIN_CODE|g" "$webadmin_install_dir/dynamicdns.html"
sed -i "s|CURRENT_IP_ADDRESS|$(get_external_ipv4_address)|g" "$webadmin_install_dir/dynamicdns.html"
# Note: For security don't populate the password
#sed -i "s|DDNS_PASSWORD|$DDNS_PASSWORD|g" "$webadmin_install_dir/dynamicdns.html"
......
......@@ -169,7 +169,9 @@
</select>
<br><br>
<label translate="yes">Username</label>: <input type="text" name="ddns_username" value="DDNS_USERNAME"><br><br>
<label translate="yes">Password</label>: <input type="password" name="ddns_password" value=""><br><br><br>
<label translate="yes">Password</label>: <input type="password" name="ddns_password" value=""><br><br>
<label translate="yes">Code</label>: <input type="text" name="ddnscode" value="DDNS_CODE"><br><br>
<br>
<input type="submit" name="submitddnscancel" translate="yes" value="Cancel">
<input type="submit" name="submitddns" translate="yes" value="Continue">
</form>
......
......@@ -8,9 +8,10 @@ if (isset($_POST['submitddns'])) {
$ddns = htmlspecialchars($_POST['dynamicdns']);
$ddns_username = htmlspecialchars($_POST['ddns_username']);
$ddns_password = htmlspecialchars($_POST['ddns_password']);
$ddns_code = htmlspecialchars($_POST['ddnscode']);
$ddns_file = fopen(".dynamicdns.txt", "w") or die("Unable to create dynamicdns file");
fwrite($ddns_file, $ddns.','.$ddns_username.','.$ddns_password);
fwrite($ddns_file, $ddns.','.$ddns_username.','.$ddns_password.','.$ddns_code);
fclose($ddns_file);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment