From 778709ca08012a9a22250bca9ae48aadc857fa00 Mon Sep 17 00:00:00 2001 From: Marek Vavrusa <marek.vavrusa@nic.cz> Date: Thu, 6 Sep 2012 16:34:42 +0200 Subject: [PATCH] Implemented knot_rdata_soa_serial_set(). This is needed for constructing changesets from dynamic update packets. refs #937 --- src/libknot/rdata.c | 12 ++++++++++++ src/libknot/rdata.h | 1 + 2 files changed, 13 insertions(+) diff --git a/src/libknot/rdata.c b/src/libknot/rdata.c index 1cdd33930d..27a07d50ed 100644 --- a/src/libknot/rdata.c +++ b/src/libknot/rdata.c @@ -698,6 +698,18 @@ int64_t knot_rdata_soa_serial(const knot_rdata_t *rdata) return knot_wire_read_u32((uint8_t *)(rdata->items[2].raw_data + 1)); } +/*---------------------------------------------------------------------------*/ +void knot_rdata_soa_serial_set(knot_rdata_t *rdata, uint32_t serial) +{ + if (!rdata || rdata->count < 3) { + return; + } + + // the number is in network byte order, transform it + knot_wire_write_u32((uint8_t *)(rdata->items[2].raw_data + 1), + serial); +} + /*---------------------------------------------------------------------------*/ uint32_t knot_rdata_soa_refresh(const knot_rdata_t *rdata) diff --git a/src/libknot/rdata.h b/src/libknot/rdata.h index acd678fdec..62921e6087 100644 --- a/src/libknot/rdata.h +++ b/src/libknot/rdata.h @@ -329,6 +329,7 @@ const knot_dname_t *knot_rdata_get_name(const knot_rdata_t *rdata, uint16_t type); int64_t knot_rdata_soa_serial(const knot_rdata_t *rdata); +void knot_rdata_soa_serial_set(knot_rdata_t *rdata, uint32_t serial); uint32_t knot_rdata_soa_refresh(const knot_rdata_t *rdata); uint32_t knot_rdata_soa_retry(const knot_rdata_t *rdata); -- GitLab