diff --git a/src/dns/godaddy.js b/src/dns/godaddy.js index ae275047e..e3e7e745d 100644 --- a/src/dns/godaddy.js +++ b/src/dns/godaddy.js @@ -27,6 +27,7 @@ const GODADDY_API = 'https://api.godaddy.com/v1/domains'; // this is a workaround for godaddy not having a delete API // https://stackoverflow.com/questions/39347464/delete-record-libcloud-godaddy-api const GODADDY_INVALID_IP = '0.0.0.0'; +const GODADDY_INVALID_IPv6 = '0:0:0:0:0:0:0:0'; const GODADDY_INVALID_TXT = '""'; function formatError(response) { @@ -104,7 +105,11 @@ async function get(domainObject, location, type) { const values = response.body.map(function (record) { return record.data; }); - if (values.length === 1 && values[0] === GODADDY_INVALID_IP) return []; // pretend this record doesn't exist + if (values.length === 1) { + if ((type === 'A' && values[0] === GODADDY_INVALID_IP) + || (type === 'AAAA' && values[0] === GODADDY_INVALID_IPv6) + || (type === 'TXT' && values[0] === GODADDY_INVALID_TXT)) return []; // pretend this record doesn't exist + } return values; } @@ -130,7 +135,7 @@ async function del(domainObject, location, type, values) { // godaddy does not have a delete API. so fill it up with an invalid IP that we can ignore in future get() const records = [{ ttl: 600, - data: type === 'A' ? GODADDY_INVALID_IP : GODADDY_INVALID_TXT + data: type === 'A' ? GODADDY_INVALID_IP : (type === 'AAAA' ? GODADDY_INVALID_IPv6 : GODADDY_INVALID_TXT) }]; const [error, response] = await safe(superagent.put(`${GODADDY_API}/${zoneName}/records/${type}/${name}`)