]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Reformat pythonmod/pythonmod_utils.{c,h}.
authorGeorge Thessalonikefs <george@nlnetlabs.nl>
Mon, 22 Mar 2021 17:45:31 +0000 (18:45 +0100)
committerGeorge Thessalonikefs <george@nlnetlabs.nl>
Mon, 22 Mar 2021 17:45:31 +0000 (18:45 +0100)
doc/Changelog
pythonmod/pythonmod_utils.c
pythonmod/pythonmod_utils.h

index 67a53e8f44d6badfa35c9482dda390308a26bfef..dca62e20eca0c9c9600cf9b68befbff8c50bbbb5 100644 (file)
@@ -1,6 +1,7 @@
 22 March 2021: George
        - Fix unused-function warning when compiling with --enable-dnscrypt.
        - Fix for #367: fix memory leak when cannot bind to listening port.
+       - Reformat pythonmod/pythonmod_utils.{c,h}.
 
 22 March 2021: Wouter
        - Merge #449 from orbea: build: Add missing linker flags.
index 9f7282540e77ce1bdca5649063eb5c1f921ed0fc..21a16bbe85bfc113d59cd26089a765313cc0de92 100644 (file)
@@ -5,18 +5,18 @@
  *                     Marek Vavrusa  (xvavru00 AT stud.fit.vutbr.cz)
  *
  * This software is open source.
- * 
+ *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * are met:
- * 
+ *
  *    * Redistributions of source code must retain the above copyright notice,
  *      this list of conditions and the following disclaimer.
- * 
+ *
  *    * Redistributions in binary form must reproduce the above copyright notice,
  *      this list of conditions and the following disclaimer in the documentation
  *      and/or other materials provided with the distribution.
- * 
+ *
  *    * Neither the name of the organization nor the names of its
  *      contributors may be used to endorse or promote products derived from this
  *      software without specific prior written permission.
 #undef _XOPEN_SOURCE
 #include <Python.h>
 
-/* Store the reply_info and query_info pair in message cache (qstate->msg_cache) */
-int storeQueryInCache(struct module_qstate* qstate, struct query_info* qinfo, struct reply_info* msgrep, int is_referral)
+/* Store the reply_info and query_info pair in message cache
+ * (qstate->msg_cache) */
+int storeQueryInCache(struct module_qstate* qstate, struct query_info* qinfo,
+       struct reply_info* msgrep, int is_referral)
 {
-    if (!msgrep) 
-       return 0;
-
-    if (msgrep->authoritative) /*authoritative answer can't be stored in cache*/
-    {
-       PyErr_SetString(PyExc_ValueError, "Authoritative answer can't be stored");
-       return 0;
-    }
+       if (!msgrep)
+               return 0;
+
+       /* authoritative answer can't be stored in cache */
+       if (msgrep->authoritative) {
+               PyErr_SetString(PyExc_ValueError,
+                       "Authoritative answer can't be stored");
+               return 0;
+       }
 
-    return dns_cache_store(qstate->env, qinfo, msgrep, is_referral, 
-       qstate->prefetch_leeway, 0, NULL, qstate->query_flags);
+       return dns_cache_store(qstate->env, qinfo, msgrep, is_referral,
+               qstate->prefetch_leeway, 0, NULL, qstate->query_flags);
 }
 
-/*  Invalidate the message associated with query_info stored in message cache */
-void invalidateQueryInCache(struct module_qstate* qstate, struct query_info* qinfo)
-{ 
-    hashvalue_type h;
-    struct lruhash_entry* e;
-    struct reply_info *r;
-    size_t i, j;
-
-    h = query_info_hash(qinfo, qstate->query_flags);
-    if ((e=slabhash_lookup(qstate->env->msg_cache, h, qinfo, 0))) 
-    {
-       r = (struct reply_info*)(e->data);
-       if (r) 
-       {
-          r->ttl = 0;
-          if(rrset_array_lock(r->ref, r->rrset_count, *qstate->env->now)) {
-                  for(i=0; i< r->rrset_count; i++) 
-                  {
-                      struct packed_rrset_data* data = 
-                       (struct packed_rrset_data*) r->ref[i].key->entry.data;
-                      if(i>0 && r->ref[i].key == r->ref[i-1].key)
-                          continue;
-             
-                      data->ttl = r->ttl;
-                      for(j=0; j<data->count + data->rrsig_count; j++)
-                          data->rr_ttl[j] = r->ttl;
-                  }
-                  rrset_array_unlock(r->ref, r->rrset_count);
-          }
+/* Invalidate the message associated with query_info stored in message cache */
+void invalidateQueryInCache(struct module_qstate* qstate,
+       struct query_info* qinfo)
+{
+       hashvalue_type h;
+       struct lruhash_entry* e;
+       struct reply_info *r;
+       size_t i, j;
+
+       h = query_info_hash(qinfo, qstate->query_flags);
+       if ((e=slabhash_lookup(qstate->env->msg_cache, h, qinfo, 0))) {
+               r = (struct reply_info*)(e->data);
+               if (r) {
+                       r->ttl = 0;
+                       if(rrset_array_lock(r->ref, r->rrset_count, *qstate->env->now)) {
+                               for(i=0; i< r->rrset_count; i++) {
+                                       struct packed_rrset_data* data =
+                                               (struct packed_rrset_data*) r->ref[i].key->entry.data;
+                                       if(i>0 && r->ref[i].key == r->ref[i-1].key)
+                                               continue;
+
+                                       data->ttl = r->ttl;
+                                       for(j=0; j<data->count + data->rrsig_count; j++)
+                                               data->rr_ttl[j] = r->ttl;
+                               }
+                               rrset_array_unlock(r->ref, r->rrset_count);
+                       }
+               }
+               lock_rw_unlock(&e->lock);
+       } else {
+               log_info("invalidateQueryInCache: qinfo is not in cache");
        }
-       lock_rw_unlock(&e->lock);
-    } else {
-       log_info("invalidateQueryInCache: qinfo is not in cache");
-    }
 }
 
 /* Create response according to the ldns packet content */
 int createResponse(struct module_qstate* qstate, sldns_buffer* pkt)
 {
-    struct msg_parse* prs;
-    struct edns_data edns;
-    
-    /* parse message */
-    prs = (struct msg_parse*) regional_alloc(qstate->env->scratch, sizeof(struct msg_parse));
-    if (!prs) {
-       log_err("storeResponse: out of memory on incoming message");
-       return 0;
-    }
-
-    memset(prs, 0, sizeof(*prs));
-    memset(&edns, 0, sizeof(edns));
-
-    sldns_buffer_set_position(pkt, 0);
-    if (parse_packet(pkt, prs, qstate->env->scratch) != LDNS_RCODE_NOERROR) {
-       verbose(VERB_ALGO, "storeResponse: parse error on reply packet");
-       return 0;
-    }
-    /* edns is not examined, but removed from message to help cache */
-    if(parse_extract_edns(prs, &edns, qstate->env->scratch) !=
-           LDNS_RCODE_NOERROR)
-       return 0;
-
-    /* remove CD-bit, we asked for in case we handle validation ourself */
-    prs->flags &= ~BIT_CD;
-
-    /* allocate response dns_msg in region */
-    qstate->return_msg = (struct dns_msg*)regional_alloc(qstate->region, sizeof(struct dns_msg));
-    if (!qstate->return_msg)
-       return 0;
-
-    memset(qstate->return_msg, 0, sizeof(*qstate->return_msg));
-    if(!parse_create_msg(pkt, prs, NULL, &(qstate->return_msg)->qinfo, &(qstate->return_msg)->rep, qstate->region)) {
-       log_err("storeResponse: malloc failure: allocating incoming dns_msg");
-       return 0;
-    }
-    
-    /* Make sure that the RA flag is set (since the presence of 
-     * this module means that recursion is available) */
-    /* qstate->return_msg->rep->flags |= BIT_RA; */
-
-    /* Clear the AA flag */
-    /* FIXME: does this action go here or in some other module? */
-    /*qstate->return_msg->rep->flags &= ~BIT_AA; */
-
-    /* make sure QR flag is on */
-    /*qstate->return_msg->rep->flags |= BIT_QR; */
-
-    if(verbosity >= VERB_ALGO)
-       log_dns_msg("storeResponse: packet:", &qstate->return_msg->qinfo, qstate->return_msg->rep);
-
-    return 1;
+       struct msg_parse* prs;
+       struct edns_data edns;
+
+       /* parse message */
+       prs = (struct msg_parse*) regional_alloc(qstate->env->scratch,
+               sizeof(struct msg_parse));
+       if(!prs) {
+               log_err("createResponse: out of memory on incoming message");
+               return 0;
+       }
+
+       memset(prs, 0, sizeof(*prs));
+       memset(&edns, 0, sizeof(edns));
+
+       sldns_buffer_set_position(pkt, 0);
+       if(parse_packet(pkt, prs, qstate->env->scratch) != LDNS_RCODE_NOERROR) {
+               verbose(VERB_ALGO, "createResponse: parse error on reply packet");
+               return 0;
+       }
+       /* edns is not examined, but removed from message to help cache */
+       if(parse_extract_edns(prs, &edns, qstate->env->scratch) !=
+               LDNS_RCODE_NOERROR)
+               return 0;
+
+       /* remove CD-bit, we asked for in case we handle validation ourself */
+       prs->flags &= ~BIT_CD;
+
+       /* allocate response dns_msg in region */
+       qstate->return_msg = (struct dns_msg*) regional_alloc(qstate->region,
+               sizeof(struct dns_msg));
+       if(!qstate->return_msg)
+               return 0;
+
+       memset(qstate->return_msg, 0, sizeof(*qstate->return_msg));
+       if(!parse_create_msg(pkt, prs, NULL, &(qstate->return_msg)->qinfo,
+               &(qstate->return_msg)->rep, qstate->region)) {
+               log_err("createResponse: malloc failure: allocating incoming dns_msg");
+               return 0;
+       }
+
+       /* Make sure that the RA flag is set (since the presence of
+       * this module means that recursion is available) */
+       /* qstate->return_msg->rep->flags |= BIT_RA; */
+
+       /* Clear the AA flag */
+       /* FIXME: does this action go here or in some other module? */
+       /*qstate->return_msg->rep->flags &= ~BIT_AA; */
+
+       /* make sure QR flag is on */
+       /*qstate->return_msg->rep->flags |= BIT_QR; */
+
+       if(verbosity >= VERB_ALGO)
+               log_dns_msg("createResponse: packet:", &qstate->return_msg->qinfo,
+                       qstate->return_msg->rep);
+
+       return 1;
 }
 
 
@@ -176,7 +181,7 @@ void reply_addr2str(struct comm_reply* reply, char* dest, int maxlen)
                sinaddr = &((struct sockaddr_in6*)&(reply->addr))->sin6_addr;
        dest[0] = 0;
        if (inet_ntop(af, sinaddr, dest, (socklen_t)maxlen) == 0)
-          return;
+               return;
        dest[maxlen-1] = 0;
 }
 
@@ -190,6 +195,6 @@ void delegpt_addr_addr2str(struct delegpt_addr* target, char *dest, int maxlen)
                sinaddr = &((struct sockaddr_in6*)&(target->addr))->sin6_addr;
        dest[0] = 0;
        if (inet_ntop(af, sinaddr, dest, (socklen_t)maxlen) == 0)
-          return;
+               return;
        dest[maxlen-1] = 0;
 }
index 4ea86f9bee4c5ce3e5afb66fa87a4098675c76d4..3fb0c0d7fd510a9698c48077bcc0bf3d7f6bcc9a 100644 (file)
@@ -1,22 +1,22 @@
 /*
  * pythonmod_utils.h: utils header file
- * 
+ *
  * Copyright (c) 2009, Zdenek Vasicek (vasicek AT fit.vutbr.cz)
  *                     Marek Vavrusa  (xvavru00 AT stud.fit.vutbr.cz)
  *
  * This software is open source.
- * 
+ *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * are met:
- * 
+ *
  *    * Redistributions of source code must retain the above copyright notice,
  *      this list of conditions and the following disclaimer.
- * 
+ *
  *    * Redistributions in binary form must reproduce the above copyright notice,
  *      this list of conditions and the following disclaimer in the documentation
  *      and/or other materials provided with the distribution.
- * 
+ *
  *    * Neither the name of the organization nor the names of its
  *      contributors may be used to endorse or promote products derived from this
  *      software without specific prior written permission.
@@ -46,34 +46,38 @@ struct delegpt_addr;
 struct sldns_buffer;
 
 /**
- *  Store the reply_info and query_info pair in message cache (qstate->msg_cache)
+ * Store the reply_info and query_info pair in message cache
+ * (qstate->msg_cache).
  *
  * @param qstate: module environment
  * @param qinfo: query info, the query for which answer is stored.
  * @param msgrep: reply in dns_msg
  * @param is_referral: If true, then the given message to be stored is a
- *      referral. The cache implementation may use this as a hint.
- *      It will store only the RRsets, not the message.
+ *     referral. The cache implementation may use this as a hint.
+ *     It will store only the RRsets, not the message.
  * @return 0 on alloc error (out of memory).
  */
-int storeQueryInCache(struct module_qstate* qstate, struct query_info* qinfo, struct reply_info* msgrep, int is_referral);
+int storeQueryInCache(struct module_qstate* qstate, struct query_info* qinfo,
+       struct reply_info* msgrep, int is_referral);
 
 
 /**
- *  Invalidate the message associated with query_info stored in message cache.
+ * Invalidate the message associated with query_info stored in message cache.
  *
- *  This function invalidates the record in message cache associated with the given query only if such a record exists.
+ * This function invalidates the record in message cache associated with the
+ * given query only if such a record exists.
  *
  * @param qstate: module environment
  * @param qinfo: query info, the query for which answer is stored.
  */
-void invalidateQueryInCache(struct module_qstate* qstate, struct query_info* qinfo);
+void invalidateQueryInCache(struct module_qstate* qstate,
+       struct query_info* qinfo);
 
 /**
- *  Create response according to the ldns packet content
+ * Create response according to the ldns packet content.
+ *
+ * This function fills qstate.return_msg up with data of a given packet
  *
- *  This function fills qstate.return_msg up with data of a given packet
- * 
  * @param qstate: module environment
  * @param pkt: a sldns_buffer which contains sldns_packet data
  * @return 0 on failure, out of memory or parse error.
@@ -81,14 +85,20 @@ void invalidateQueryInCache(struct module_qstate* qstate, struct query_info* qin
 int createResponse(struct module_qstate* qstate, struct sldns_buffer* pkt);
 
 /**
- *  Convert reply->addr to string
- *  @param reply: comm reply with address in it.
- *  @param dest: destination string.
- *  @param maxlen: length of string buffer.
+ * Convert reply->addr to string.
+ * @param reply: comm reply with address in it.
+ * @param dest: destination string.
+ * @param maxlen: length of string buffer.
  */
 void reply_addr2str(struct comm_reply* reply, char* dest, int maxlen);
 
-/* Convert target->addr to string */
-void delegpt_addr_addr2str(struct delegpt_addr* target, char *dest, int maxlen);
+/**
+ * Convert target->addr to string.
+ * @param target: delegpt_addr with address in it.
+ * @param dest: destination string.
+ * @param maxlen: length of string buffer.
+ */
+void delegpt_addr_addr2str(struct delegpt_addr* target, char *dest,
+       int maxlen);
 
 #endif /* PYTHONMOD_UTILS_H */