]> git.ipfire.org Git - thirdparty/knot-dns.git/commitdiff
refresh: unify similar code
authorDaniel Salzman <daniel.salzman@nic.cz>
Tue, 26 Feb 2019 13:40:42 +0000 (14:40 +0100)
committerDaniel Salzman <daniel.salzman@nic.cz>
Thu, 28 Feb 2019 15:12:12 +0000 (16:12 +0100)
src/knot/events/handlers/refresh.c
src/knot/query/query.c
src/knot/query/query.h

index 37ac1788b1605a6ca7cfb0df0937da8284132083..e828a9294ec0bb0968826510ded877776560db43 100644 (file)
@@ -810,13 +810,14 @@ static int soa_query_produce(knot_layer_t *layer, knot_pkt_t *pkt)
 
        query_init_pkt(pkt);
 
-       int r = knot_pkt_put_question(pkt, data->zone->name, KNOT_CLASS_IN, KNOT_RRTYPE_SOA);
-       if (r != KNOT_EOK) {
+       int ret = knot_pkt_put_question(pkt, data->zone->name, KNOT_CLASS_IN,
+                                       KNOT_RRTYPE_SOA);
+       if (ret != KNOT_EOK) {
                return KNOT_STATE_FAIL;
        }
 
-       r = query_put_edns(pkt, &data->edns);
-       if (r != KNOT_EOK) {
+       ret = query_put_edns(pkt, &data->edns);
+       if (ret != KNOT_EOK) {
                return KNOT_STATE_FAIL;
        }
 
@@ -870,17 +871,21 @@ static int transfer_produce(knot_layer_t *layer, knot_pkt_t *pkt)
 {
        struct refresh_data *data = layer->data;
 
+       query_init_pkt(pkt);
+
        bool ixfr = (data->xfr_type == XFR_TYPE_IXFR);
 
-       query_init_pkt(pkt);
-       knot_pkt_put_question(pkt, data->zone->name, KNOT_CLASS_IN,
-                             ixfr ? KNOT_RRTYPE_IXFR : KNOT_RRTYPE_AXFR);
+       int ret = knot_pkt_put_question(pkt, data->zone->name, KNOT_CLASS_IN,
+                                       ixfr ? KNOT_RRTYPE_IXFR : KNOT_RRTYPE_AXFR);
+       if (ret != KNOT_EOK) {
+               return KNOT_STATE_FAIL;
+       }
 
        if (ixfr) {
                assert(data->soa);
                knot_rrset_t *sending_soa = knot_rrset_copy(data->soa, data->mm);
                uint32_t master_serial;
-               int ret = zone_get_master_serial(data->zone, &master_serial);
+               ret = zone_get_master_serial(data->zone, &master_serial);
                if (ret != KNOT_EOK) {
                        log_zone_error(data->zone->name, "Failed reading master's serial"
                                       "from KASP DB (%s)", knot_strerror(ret));
@@ -895,7 +900,10 @@ static int transfer_produce(knot_layer_t *layer, knot_pkt_t *pkt)
                knot_rrset_free(sending_soa, data->mm);
        }
 
-       query_put_edns(pkt, &data->edns);
+       ret = query_put_edns(pkt, &data->edns);
+       if (ret != KNOT_EOK) {
+               return KNOT_STATE_FAIL;
+       }
 
        return KNOT_STATE_CONSUME;
 }
index 61d0e81d95177cccae1071dc689f4fbf81716fe8..65b6519a155af0500715bf83637b1cc90e3cada2 100644 (file)
@@ -1,4 +1,4 @@
-/*  Copyright (C) 2018 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/*  Copyright (C) 2019 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
 #include "libknot/yparser/yptrafo.h"
 #include "libknot/rrset.h"
 
-int query_init_pkt(knot_pkt_t *pkt)
+void query_init_pkt(knot_pkt_t *pkt)
 {
-       if (!pkt) {
-               return KNOT_EINVAL;
+       if (pkt == NULL) {
+               return;
        }
 
        knot_pkt_clear(pkt);
        knot_wire_set_id(pkt->wire, dnssec_random_uint16_t());
-
-       return KNOT_EOK;
 }
 
 int query_edns_data_init(struct query_edns_data *edns_ptr, conf_t *conf,
index 52b082b5616afed621b26847968e36d8512507c0..3896a8ed26740497bc66d2a1fe07dec90b01b9a5 100644 (file)
@@ -1,4 +1,4 @@
-/*  Copyright (C) 2016 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/*  Copyright (C) 2019 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -38,10 +38,8 @@ struct query_edns_data {
  * Clear the packet and generate random transaction ID.
  *
  * \param pkt  Packet to initialize.
- *
- * \return Always KNOT_EOK if valid parameters supplied.
  */
-int query_init_pkt(knot_pkt_t *pkt);
+void query_init_pkt(knot_pkt_t *pkt);
 
 /*!
  * \brief Initialize EDNS parameters from server configuration.