]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
Some selective const goodness for tsig
authorMichael Weiser <michael.weiser@gmx.de>
Wed, 14 Dec 2016 13:36:37 +0000 (14:36 +0100)
committerWillem Toorop <willem@nlnetlabs.nl>
Wed, 14 Dec 2016 13:36:37 +0000 (14:36 +0100)
Add some consts where the interface does not take ownership of the parameter itself, e.g. if it's copied internally or just stored as is and never free()'d. This avoids annoying casts when the user program handles those static strings as consts as well.

ldns/resolver.h
ldns/tsig.h
resolver.c
tsig.c

index a0370abf19f548c611f080c87d8ff75b1ee6863d..84128dfecfba2ea9ca700bf347ad0f6af18cddd1 100644 (file)
@@ -312,21 +312,24 @@ size_t ldns_resolver_nameserver_rtt(const ldns_resolver *r, size_t pos);
 /**
  * Return the tsig keyname as used by the nameserver
  * \param[in] r the resolver
- * \return the name used.
+ * \return the name used. Still owned by the resolver - change using
+ * ldns_resolver_set_tsig_keyname().
  */
-char *ldns_resolver_tsig_keyname(const ldns_resolver *r);
+const char *ldns_resolver_tsig_keyname(const ldns_resolver *r);
 /**
  * Return the tsig algorithm as used by the nameserver
  * \param[in] r the resolver
- * \return the algorithm used.
+ * \return the algorithm used. Still owned by the resolver - change using
+ * ldns_resolver_set_tsig_algorithm().
  */
-char *ldns_resolver_tsig_algorithm(const ldns_resolver *r);
+const char *ldns_resolver_tsig_algorithm(const ldns_resolver *r);
 /**
  * Return the tsig keydata as used by the nameserver
  * \param[in] r the resolver
- * \return the keydata used.
+ * \return the keydata used. Still owned by the resolver - change using
+ * ldns_resolver_set_tsig_keydata().
  */
-char *ldns_resolver_tsig_keydata(const ldns_resolver *r);
+const char *ldns_resolver_tsig_keydata(const ldns_resolver *r);
 /**
  * pop the last nameserver from the resolver.
  * \param[in] r the resolver
@@ -521,23 +524,23 @@ void ldns_resolver_set_edns_udp_size(ldns_resolver *r, uint16_t s);
 /**
  * Set the tsig key name
  * \param[in] r the resolver
- * \param[in] tsig_keyname the tsig key name
+ * \param[in] tsig_keyname the tsig key name (copied into resolver)
  */
-void ldns_resolver_set_tsig_keyname(ldns_resolver *r, char *tsig_keyname);
+void ldns_resolver_set_tsig_keyname(ldns_resolver *r, const char *tsig_keyname);
 
 /**
  * Set the tsig algorithm
  * \param[in] r the resolver
- * \param[in] tsig_algorithm the tsig algorithm
+ * \param[in] tsig_algorithm the tsig algorithm (copied into resolver)
  */
-void ldns_resolver_set_tsig_algorithm(ldns_resolver *r, char *tsig_algorithm);
+void ldns_resolver_set_tsig_algorithm(ldns_resolver *r, const char *tsig_algorithm);
 
 /**
  * Set the tsig key data
  * \param[in] r the resolver
- * \param[in] tsig_keydata the key data
+ * \param[in] tsig_keydata the key data (copied into resolver)
  */
-void ldns_resolver_set_tsig_keydata(ldns_resolver *r, char *tsig_keydata);
+void ldns_resolver_set_tsig_keydata(ldns_resolver *r, const char *tsig_keydata);
 
 /**
  * Set round trip time for all nameservers. Note this currently
index 0936da93882737c65f23d113ec5c0f242c5eea09..bba06ea1450820ddd05d4648fa55ff0eb1f50df6 100644 (file)
@@ -25,15 +25,15 @@ extern "C" {
 */
 typedef struct ldns_tsig_credentials_struct
 {
-    char *algorithm;
-    char *keyname;
-    char *keydata;
+    const char *algorithm;
+    const char *keyname;
+    const char *keydata;
     /* XXX More eventually. */
 } ldns_tsig_credentials;
 
-char *ldns_tsig_algorithm(const ldns_tsig_credentials *);
-char *ldns_tsig_keyname(const ldns_tsig_credentials *);
-char *ldns_tsig_keydata(const ldns_tsig_credentials *);
+const char *ldns_tsig_algorithm(const ldns_tsig_credentials *);
+const char *ldns_tsig_keyname(const ldns_tsig_credentials *);
+const char *ldns_tsig_keydata(const ldns_tsig_credentials *);
 char *ldns_tsig_keyname_clone(const ldns_tsig_credentials *);
 char *ldns_tsig_keydata_clone(const ldns_tsig_credentials *);
 
index e09b577f567a493110810c9d2cee68fdb4bf3709..79f502588a99fdb07deec604bb3947450ebac3aa 100644 (file)
@@ -203,19 +203,19 @@ ldns_resolver_timeout(const ldns_resolver *r)
        return r->_timeout;
 }
 
-char *
+const char *
 ldns_resolver_tsig_keyname(const ldns_resolver *r)
 {
        return r->_tsig_keyname;
 }
 
-char *
+const char *
 ldns_resolver_tsig_algorithm(const ldns_resolver *r)
 {
        return r->_tsig_algorithm;
 }
 
-char *
+const char *
 ldns_resolver_tsig_keydata(const ldns_resolver *r)
 {
        return r->_tsig_keydata;
@@ -577,21 +577,21 @@ ldns_resolver_push_searchlist(ldns_resolver *r, ldns_rdf *d)
 }
 
 void
-ldns_resolver_set_tsig_keyname(ldns_resolver *r, char *tsig_keyname)
+ldns_resolver_set_tsig_keyname(ldns_resolver *r, const char *tsig_keyname)
 {
        LDNS_FREE(r->_tsig_keyname);
        r->_tsig_keyname = strdup(tsig_keyname);
 }
 
 void
-ldns_resolver_set_tsig_algorithm(ldns_resolver *r, char *tsig_algorithm)
+ldns_resolver_set_tsig_algorithm(ldns_resolver *r, const char *tsig_algorithm)
 {
        LDNS_FREE(r->_tsig_algorithm);
        r->_tsig_algorithm = strdup(tsig_algorithm);
 }
 
 void
-ldns_resolver_set_tsig_keydata(ldns_resolver *r, char *tsig_keydata)
+ldns_resolver_set_tsig_keydata(ldns_resolver *r, const char *tsig_keydata)
 {
        LDNS_FREE(r->_tsig_keydata);
        r->_tsig_keydata = strdup(tsig_keydata);
diff --git a/tsig.c b/tsig.c
index 08d50f71c8dc09a1fb3c35baeda7c8b799296146..62776f061d6afaa696b8bf6103a0b67ee6e464d9 100644 (file)
--- a/tsig.c
+++ b/tsig.c
 #include <openssl/md5.h>
 #endif /* HAVE_SSL */
 
-char *
+const char *
 ldns_tsig_algorithm(const ldns_tsig_credentials *tc)
 {
        return tc->algorithm;
 }
 
-char *
+const char *
 ldns_tsig_keyname(const ldns_tsig_credentials *tc)
 {
        return tc->keyname;
 }
 
-char *
+const char *
 ldns_tsig_keydata(const ldns_tsig_credentials *tc)
 {
        return tc->keydata;