4 #LOOPIA_User="username"
6 #LOOPIA_Password="password"
8 LOOPIA_Api
="https://api.loopia.se/RPCSERV"
10 ######## Public functions #####################
12 #Usage: add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs"
17 LOOPIA_User
="${LOOPIA_User:-$(_readaccountconf_mutable LOOPIA_User)}"
18 LOOPIA_Password
="${LOOPIA_Password:-$(_readaccountconf_mutable LOOPIA_Password)}"
19 if [ -z "$LOOPIA_User" ] ||
[ -z "$LOOPIA_Password" ]; then
22 _err
"You don't specify loopia user and password yet."
23 _err
"Please create you key and try again."
27 #save the api key and email to the account conf file.
28 _saveaccountconf_mutable LOOPIA_User
"$LOOPIA_User"
29 _saveaccountconf_mutable LOOPIA_Password
"$LOOPIA_Password"
31 _debug
"First detect the root zone"
32 if ! _get_root
"$fulldomain"; then
36 _debug _sub_domain
"$_sub_domain"
37 _debug _domain
"$_domain"
41 _loopia_add_record
"$_domain" "$_sub_domain"
42 _loopia_update_record
"$_domain" "$_sub_domain" "$txtvalue"
50 LOOPIA_User
="${LOOPIA_User:-$(_readaccountconf_mutable LOOPIA_User)}"
51 LOOPIA_Password
="${LOOPIA_Password:-$(_readaccountconf_mutable LOOPIA_Password)}"
52 if [ -z "$LOOPIA_User" ] ||
[ -z "$LOOPIA_Password" ]; then
55 _err
"You don't specify LOOPIA user and password yet."
56 _err
"Please create you key and try again."
60 #save the api key and email to the account conf file.
61 _saveaccountconf_mutable LOOPIA_User
"$LOOPIA_User"
62 _saveaccountconf_mutable LOOPIA_Password
"$LOOPIA_Password"
64 _debug
"First detect the root zone"
65 if ! _get_root
"$fulldomain"; then
70 xml_content
=$
(printf '<?xml version="1.0" encoding="UTF-8"?>
72 <methodName>removeSubdomain</methodName>
75 <value><string>%s</string></value>
78 <value><string>%s</string></value>
81 <value><string>%s</string></value>
84 <value><string>%s</string></value>
87 </methodCall>' $LOOPIA_User $LOOPIA_Password "$_domain" "$_sub_domain")
89 response
="$(_post "$xml_content" "$LOOPIA_Api" "" "POST
")"
91 if ! _contains
"$response" "OK"; then
92 _err
"Error could not get txt records"
97 #################### Private functions below ##################################
107 xml_content
=$
(printf '<?xml version="1.0" encoding="UTF-8"?>
109 <methodName>getDomains</methodName>
112 <value><string>%s</string></value>
115 <value><string>%s</string></value>
118 </methodCall>' $LOOPIA_User $LOOPIA_Password)
120 response
="$(_post "$xml_content" "$LOOPIA_Api" "" "POST
")"
122 h
=$
(echo "$domain" | cut
-d .
-f $i-100)
128 if _contains
"$response" "$h"; then
129 _sub_domain
=$
(printf "%s" "$domain" | cut
-d .
-f 1-$p)
140 _loopia_update_record
() {
145 xml_content
=$
(printf '<?xml version="1.0" encoding="UTF-8"?>
147 <methodName>updateZoneRecord</methodName>
150 <value><string>%s</string></value>
153 <value><string>%s</string></value>
156 <value><string>%s</string></value>
159 <value><string>%s</string></value>
165 <value><string>TXT</string></value>
168 <name>priority</name>
169 <value><int>0</int></value>
173 <value><int>60</int></value>
177 <value><string>%s</string></value>
180 <name>record_id</name>
181 <value><int>0</int></value>
186 </methodCall>' $LOOPIA_User $LOOPIA_Password "$domain" "$sub_domain" "$txtval")
188 response
="$(_post "$xml_content" "$LOOPIA_Api" "" "POST
")"
190 if ! echo "$response" |
grep "OK" >/dev
/null
; then
197 _loopia_add_record
() {
201 xml_content
=$
(printf '<?xml version="1.0" encoding="UTF-8"?>
203 <methodName>addSubdomain</methodName>
206 <value><string>%s</string></value>
209 <value><string>%s</string></value>
212 <value><string>%s</string></value>
215 <value><string>%s</string></value>
218 </methodCall>' $LOOPIA_User $LOOPIA_Password "$domain" "$sub_domain")
220 response
="$(_post "$xml_content" "$LOOPIA_Api" "" "POST
")"
222 if ! echo "$response" |
grep "OK" >/dev
/null
; then