Feat: add gandi api methods
This commit is contained in:
+47
@@ -0,0 +1,47 @@
|
||||
#ifndef GANDI_H
|
||||
#define GANDI_H
|
||||
|
||||
#define GANDI_MAX_IP_LEN 46
|
||||
|
||||
/*
|
||||
* Stores the API key internally.
|
||||
* Must be called once at startup before calling other gandi methods.
|
||||
*
|
||||
* Returns 0 on success.
|
||||
* Returns -1 if api_key is NULL or empty.
|
||||
*/
|
||||
int gandi_init(const char *api_key);
|
||||
|
||||
/*
|
||||
* Fetches the current IPv4 addr from the special gandi fqdn
|
||||
*
|
||||
* Returns 0 on success.
|
||||
* Returns -1 on network or curl error.
|
||||
* Returns -2 on API auth error (401/403).
|
||||
* Returns -3 if the record was not found or has no values.
|
||||
*/
|
||||
int gandi_get_self_ip(const char *domain, const char *record_name, char *out_ip);
|
||||
|
||||
/*
|
||||
* Fetches all records of all domains,
|
||||
* looks for all A records where rrset_value
|
||||
* is set to `old_ip` and patches each one to `new_ip`.
|
||||
*
|
||||
* Returns 0 on success (all records updated).
|
||||
* Returns -1 on network or curl error, or if any patch failed.
|
||||
* Returns -2 on API auth error (401/403).
|
||||
* Returns -3 if no A records had old_ip.
|
||||
*/
|
||||
int gandi_update_domains(const char *fqdn, const char *old_ip, const char *new_ip);
|
||||
|
||||
/*
|
||||
* Patches an A record's rrset_value from `old_ip` to `new_ip`.
|
||||
*
|
||||
* Returns 0 on success.
|
||||
* Returns -1 on network or curl error.
|
||||
* Returns -2 on API auth error (401/403).
|
||||
*/
|
||||
int gandi_update_record(const char *domain, const char *record_name,
|
||||
const char *old_ip, const char *new_ip);
|
||||
|
||||
#endif /* GANDI_H */
|
||||
Reference in New Issue
Block a user