|
@@ -35,12 +35,12 @@ NAMESERVER5='85.25.251.254'
|
35
|
35
|
NAMESERVER6='2.141.58.13'
|
36
|
36
|
|
37
|
37
|
# parameters used when adding a new domain
|
38
|
|
-DDNS_PROVIDER="default@freedns.afraid.org"
|
|
38
|
+DDNS_PROVIDER="freedns"
|
39
|
39
|
DDNS_USERNAME=
|
40
|
40
|
DDNS_PASSWORD=
|
41
|
41
|
|
42
|
|
-INADYN_REPO="https://github.com/bashrc/inadyn"
|
43
|
|
-INADYN_COMMIT='fadbe17f520d337dfb8d69ee4bf1fcaa23fce0d6'
|
|
42
|
+INADYN_REPO="https://github.com/troglobit/inadyn"
|
|
43
|
+INADYN_COMMIT='3fe26d2235ddda9047cf33e8ed1453bcc3bbbf19'
|
44
|
44
|
INADYN_CONFIG_FILE=/etc/inadyn.conf
|
45
|
45
|
|
46
|
46
|
# web site used to obtain the external IP address of the system
|
|
@@ -105,42 +105,57 @@ function update_inadyn_config {
|
105
|
105
|
fi
|
106
|
106
|
|
107
|
107
|
if ! grep -q "$DDNS_PROVIDER" "${INADYN_CONFIG_FILE}"; then
|
108
|
|
- # store any previous aliases
|
109
|
|
- grep 'alias ' "${INADYN_CONFIG_FILE}" > /tmp/inadyn_aliases
|
110
|
|
-
|
111
|
|
- # remove entry for any previous ddns
|
112
|
|
- sed -i '/system /,$d' "${INADYN_CONFIG_FILE}"
|
113
|
|
-
|
114
|
|
- # add the new provider
|
115
|
|
- { echo '';
|
116
|
|
- echo "system $DDNS_PROVIDER";
|
117
|
|
- echo ' ssl';
|
118
|
|
- echo " checkip-url $GET_IP_ADDRESS_URL /"; } >> "${INADYN_CONFIG_FILE}"
|
119
|
|
- if [ "$DDNS_USERNAME" ]; then
|
120
|
|
- echo " username $DDNS_USERNAME" >> "${INADYN_CONFIG_FILE}"
|
121
|
|
- fi
|
122
|
|
- if [ "$DDNS_PASSWORD" ]; then
|
123
|
|
- echo " password $DDNS_PASSWORD" >> "${INADYN_CONFIG_FILE}"
|
124
|
|
- fi
|
|
108
|
+ if grep -q "{" "${INADYN_CONFIG_FILE}"; then
|
|
109
|
+ sed -i "s|provider .*|provider $DDNS_PROVIDER {|g" "${INADYN_CONFIG_FILE}"
|
|
110
|
+ sed -i "s|username .*|username = $DDNS_USERNAME|g" "${INADYN_CONFIG_FILE}"
|
|
111
|
+ sed -i "s|password .*|password = $DDNS_PASSWORD|g" "${INADYN_CONFIG_FILE}"
|
|
112
|
+ sed -i "s|checkip-server .*|checkip-server = $GET_IP_ADDRESS_URL|g" "${INADYN_CONFIG_FILE}"
|
|
113
|
+ else
|
|
114
|
+ # Old inadyn config file format
|
|
115
|
+ # store any previous aliases
|
|
116
|
+ grep 'alias ' "${INADYN_CONFIG_FILE}" > /tmp/inadyn_aliases
|
|
117
|
+
|
|
118
|
+ # remove entry for any previous ddns
|
|
119
|
+ sed -i '/system /,$d' "${INADYN_CONFIG_FILE}"
|
|
120
|
+
|
|
121
|
+ # add the new provider
|
|
122
|
+ { echo '';
|
|
123
|
+ echo "system $DDNS_PROVIDER";
|
|
124
|
+ echo ' ssl';
|
|
125
|
+ echo " checkip-url $GET_IP_ADDRESS_URL /"; } >> "${INADYN_CONFIG_FILE}"
|
|
126
|
+ if [ "$DDNS_USERNAME" ]; then
|
|
127
|
+ echo " username $DDNS_USERNAME" >> "${INADYN_CONFIG_FILE}"
|
|
128
|
+ fi
|
|
129
|
+ if [ "$DDNS_PASSWORD" ]; then
|
|
130
|
+ echo " password $DDNS_PASSWORD" >> "${INADYN_CONFIG_FILE}"
|
|
131
|
+ fi
|
125
|
132
|
|
126
|
|
- if [ -f /tmp/inadyn_aliases ]; then
|
127
|
|
- cat /tmp/inadyn_aliases >> "${INADYN_CONFIG_FILE}"
|
128
|
|
- rm /tmp/inadyn_aliases
|
|
133
|
+ if [ -f /tmp/inadyn_aliases ]; then
|
|
134
|
+ cat /tmp/inadyn_aliases >> "${INADYN_CONFIG_FILE}"
|
|
135
|
+ rm /tmp/inadyn_aliases
|
|
136
|
+ fi
|
129
|
137
|
fi
|
130
|
138
|
else
|
131
|
|
- # change username/password for an existing provider
|
132
|
|
- if [ "$DDNS_USERNAME" ]; then
|
133
|
|
- if grep -q " username " "${INADYN_CONFIG_FILE}"; then
|
134
|
|
- sed -i "s| username .*| username $DDNS_USERNAME|g" "${INADYN_CONFIG_FILE}"
|
135
|
|
- else
|
136
|
|
- echo " username $DDNS_USERNAME" >> "${INADYN_CONFIG_FILE}"
|
|
139
|
+ if grep -q "{" "${INADYN_CONFIG_FILE}"; then
|
|
140
|
+ sed -i "s|username .*|username = $DDNS_USERNAME|g" "${INADYN_CONFIG_FILE}"
|
|
141
|
+ sed -i "s|password .*|password = $DDNS_PASSWORD|g" "${INADYN_CONFIG_FILE}"
|
|
142
|
+ sed -i "s|checkip-server .*|checkip-server = $GET_IP_ADDRESS_URL|g" "${INADYN_CONFIG_FILE}"
|
|
143
|
+ else
|
|
144
|
+ # Old inadyn config file format
|
|
145
|
+ # change username/password for an existing provider
|
|
146
|
+ if [ "$DDNS_USERNAME" ]; then
|
|
147
|
+ if grep -q " username " "${INADYN_CONFIG_FILE}"; then
|
|
148
|
+ sed -i "s| username .*| username $DDNS_USERNAME|g" "${INADYN_CONFIG_FILE}"
|
|
149
|
+ else
|
|
150
|
+ echo " username $DDNS_USERNAME" >> "${INADYN_CONFIG_FILE}"
|
|
151
|
+ fi
|
137
|
152
|
fi
|
138
|
|
- fi
|
139
|
|
- if [ "$DDNS_PASSWORD" ]; then
|
140
|
|
- if grep -q " password " "${INADYN_CONFIG_FILE}"; then
|
141
|
|
- sed -i "s| password .*| password $DDNS_PASSWORD|g" "${INADYN_CONFIG_FILE}"
|
142
|
|
- else
|
143
|
|
- echo " password $DDNS_PASSWORD" >> "${INADYN_CONFIG_FILE}"
|
|
153
|
+ if [ "$DDNS_PASSWORD" ]; then
|
|
154
|
+ if grep -q " password " "${INADYN_CONFIG_FILE}"; then
|
|
155
|
+ sed -i "s| password .*| password $DDNS_PASSWORD|g" "${INADYN_CONFIG_FILE}"
|
|
156
|
+ else
|
|
157
|
+ echo " password $DDNS_PASSWORD" >> "${INADYN_CONFIG_FILE}"
|
|
158
|
+ fi
|
144
|
159
|
fi
|
145
|
160
|
fi
|
146
|
161
|
fi
|
|
@@ -203,24 +218,29 @@ function add_ddns_domain {
|
203
|
218
|
exit 5745
|
204
|
219
|
fi
|
205
|
220
|
if ! grep -q "$DDNS_PROVIDER" "${INADYN_CONFIG_FILE}"; then
|
206
|
|
- { echo '';
|
207
|
|
- echo "system $DDNS_PROVIDER";
|
208
|
|
- echo ' ssl';
|
209
|
|
- echo " checkip-url $GET_IP_ADDRESS_URL /"; } >> "${INADYN_CONFIG_FILE}"
|
210
|
|
- if [ $DDNS_USERNAME ]; then
|
211
|
|
- echo " username $DDNS_USERNAME" >> "${INADYN_CONFIG_FILE}"
|
212
|
|
- fi
|
213
|
|
- if [ $DDNS_PASSWORD ]; then
|
214
|
|
- echo " password $DDNS_PASSWORD" >> "${INADYN_CONFIG_FILE}"
|
215
|
|
- fi
|
|
221
|
+ { echo 'period = 300';
|
|
222
|
+ echo 'user-agent = Mozilla/5.0';
|
|
223
|
+ echo '';
|
|
224
|
+ echo "provider $DDNS_PROVIDER {";
|
|
225
|
+ echo " ssl = true";
|
|
226
|
+ echo " checkip-ssl = false";
|
|
227
|
+ echo " checkip-server = $GET_IP_ADDRESS_URL";
|
|
228
|
+ echo " username = $DDNS_USERNAME";
|
|
229
|
+ echo " password = $DDNS_PASSWORD";
|
|
230
|
+ echo " hostname = { $CURRENT_DDNS_DOMAIN }";
|
|
231
|
+ echo '}'; } > "${INADYN_CONFIG_FILE}"
|
|
232
|
+ else
|
|
233
|
+ sed -i "s|checkip-server .*|checkip-server = $GET_IP_ADDRESS_URL|g" "${INADYN_CONFIG_FILE}"
|
216
|
234
|
fi
|
217
|
235
|
|
218
|
236
|
if ! grep -q "$CURRENT_DDNS_DOMAIN" "${INADYN_CONFIG_FILE}"; then
|
219
|
|
- echo " alias $CURRENT_DDNS_DOMAIN" >> "${INADYN_CONFIG_FILE}"
|
|
237
|
+ DDNS_HOSTNAMES=$(grep 'hostname ' "${INADYN_CONFIG_FILE}"| awk -F '{' '{print $2}' | sed 's| }||g')
|
|
238
|
+ sed -i "s|hostname .*|hostname = {${DDNS_HOSTNAMES}, ${CURRENT_DDNS_DOMAIN} }|g" "${INADYN_CONFIG_FILE}"
|
220
|
239
|
fi
|
221
|
240
|
chmod 600 "${INADYN_CONFIG_FILE}"
|
222
|
|
- systemctl restart inadyn
|
|
241
|
+
|
223
|
242
|
systemctl daemon-reload
|
|
243
|
+ systemctl restart inadyn
|
224
|
244
|
}
|
225
|
245
|
|
226
|
246
|
function remove_ddns_domain {
|
|
@@ -241,9 +261,12 @@ function remove_ddns_domain {
|
241
|
261
|
fi
|
242
|
262
|
if grep -q "$CURRENT_DDNS_DOMAIN" "${INADYN_CONFIG_FILE}"; then
|
243
|
263
|
systemctl stop inadyn
|
244
|
|
- sed -i "/alias $CURRENT_DDNS_DOMAIN/d" "${INADYN_CONFIG_FILE}"
|
245
|
|
- systemctl start inadyn
|
|
264
|
+ sed -i "s|, ${CURRENT_DDNS_DOMAIN}||g" "${INADYN_CONFIG_FILE}"
|
|
265
|
+ if grep -q "$CURRENT_DDNS_DOMAIN" "${INADYN_CONFIG_FILE}"; then
|
|
266
|
+ sed -i "s|${CURRENT_DDNS_DOMAIN}||g" "${INADYN_CONFIG_FILE}"
|
|
267
|
+ fi
|
246
|
268
|
systemctl daemon-reload
|
|
269
|
+ systemctl start inadyn
|
247
|
270
|
fi
|
248
|
271
|
}
|
249
|
272
|
|