- For #762: relocate edns_opt_list_append_keepalive.

This commit is contained in:
George Thessalonikefs 2023-06-22 12:11:28 +02:00
parent 1cd75cccfc
commit 47cf44cc70
3 changed files with 20 additions and 11 deletions

View file

@ -941,17 +941,6 @@ parse_packet(sldns_buffer* pkt, struct msg_parse* msg, struct regional* region)
return 0;
}
static int
edns_opt_list_append_keepalive(struct edns_option** list, int msec,
struct regional* region)
{
uint8_t data[2]; /* For keepalive value */
data[0] = (uint8_t)((msec >> 8) & 0xff);
data[1] = (uint8_t)(msec & 0xff);
return edns_opt_list_append(list, LDNS_EDNS_KEEPALIVE, sizeof(data),
data, region);
}
/** RFC 1982 comparison, uses unsigned integers, and tries to avoid
* compiler optimization (eg. by avoiding a-b<0 comparisons),
* this routine matches compare_serial(), for SOA serial number checks */

View file

@ -1020,6 +1020,16 @@ int edns_opt_list_append_ede(struct edns_option** list, struct regional* region,
return 1;
}
int edns_opt_list_append_keepalive(struct edns_option** list, int msec,
struct regional* region)
{
uint8_t data[2]; /* For keepalive value */
data[0] = (uint8_t)((msec >> 8) & 0xff);
data[1] = (uint8_t)(msec & 0xff);
return edns_opt_list_append(list, LDNS_EDNS_KEEPALIVE, sizeof(data),
data, region);
}
int edns_opt_list_append(struct edns_option** list, uint16_t code, size_t len,
uint8_t* data, struct regional* region)
{

View file

@ -567,6 +567,16 @@ int edns_opt_list_append(struct edns_option** list, uint16_t code, size_t len,
int edns_opt_list_append_ede(struct edns_option** list, struct regional* region,
sldns_ede_code code, const char *txt);
/**
* Append edns keep alive option to edns options list
* @param list: the edns option list to append the edns option to.
* @param msec: the duration in msecs for the keep alive.
* @param region: region to allocate the new edns option.
* @return false on failure.
*/
int edns_opt_list_append_keepalive(struct edns_option** list, int msec,
struct regional* region);
/**
* Remove any option found on the edns option list that matches the code.
* @param list: the list of edns options.