#define INTERNAL_POOL_MAX 10
-struct thread_pool *pool;
+static struct thread_pool *pool;
int
internal_pool_init(void)
* aware that pthread_mutex_lock() can return error codes, which shouldn't
* prevent critical stack traces from printing.)
*/
-void
+static void
print_stack_trace(char const *title)
{
#ifdef BACKTRACE_ENABLED
if (cfg->color)
fprintf(lvl->stream, "%s", lvl->color);
- now = time(0);
+ now = time(NULL);
if (now != ((time_t) -1)) {
localtime_r(&now, &stm_buff);
strftime(time_buff, sizeof(time_buff), "%b %e %T", &stm_buff);
free(tal);
}
-int
+static int
foreach_uri(struct tal *tal, foreach_uri_cb cb, void *arg)
{
unsigned int i;
#define RTRPDU_HDR_LEN 8
#define RTRPDU_SERIAL_NOTIFY_LEN 12
-#define RTRPDU_SERIAL_QUERY_LEN 12
-#define RTRPDU_RESET_QUERY_LEN 8
#define RTRPDU_CACHE_RESPONSE_LEN 8
#define RTRPDU_IPV4_PREFIX_LEN 20
#define RTRPDU_IPV6_PREFIX_LEN 32
return send_response(fd, pdu.header.pdu_type, data, len);
}
-#define GET_END_OF_DATA_LENGTH(version) \
- ((version == RTR_V1) ? \
- RTRPDU_END_OF_DATA_V1_LEN : RTRPDU_END_OF_DATA_V0_LEN)
+#define MAX(a, b) ((a > b) ? a : b)
int
send_end_of_data_pdu(int fd, uint8_t version, serial_t end_serial)
{
struct end_of_data_pdu pdu;
- unsigned char data[GET_END_OF_DATA_LENGTH(version)];
+ unsigned char data[MAX(
+ RTRPDU_END_OF_DATA_V1_LEN, RTRPDU_END_OF_DATA_V0_LEN
+ )];
size_t len;
set_header_values(&pdu.header, version, PDU_TYPE_END_OF_DATA,
get_current_session_id(version));
- pdu.header.length = GET_END_OF_DATA_LENGTH(version);
pdu.serial_number = end_serial;
if (version == RTR_V1) {
+ pdu.header.length = RTRPDU_END_OF_DATA_V1_LEN;
pdu.refresh_interval = config_get_interval_refresh();
pdu.retry_interval = config_get_interval_retry();
pdu.expire_interval = config_get_interval_expire();
+ } else {
+ pdu.header.length = RTRPDU_END_OF_DATA_V0_LEN;
}
len = serialize_end_of_data_pdu(&pdu, data);
- if (len != GET_END_OF_DATA_LENGTH(version))
+ if (len != pdu.header.length)
pr_crit("Serialized End of Data is %zu bytes.", len);
return send_response(fd, pdu.header.pdu_type, data, len);
#include "primitive_writer.h"
static size_t
-serialize_pdu_header(struct pdu_header *header, uint16_t union_value,
+serialize_pdu_header(struct pdu_header const *header, uint16_t union_value,
unsigned char *buf)
{
unsigned char *ptr;
}
size_t
-serialize_end_of_data_pdu(struct end_of_data_pdu *pdu, unsigned char *buf)
+serialize_end_of_data_pdu(struct end_of_data_pdu const *pdu, unsigned char *buf)
{
size_t head_size;
unsigned char *ptr;
unsigned char *);
size_t serialize_ipv4_prefix_pdu(struct ipv4_prefix_pdu *, unsigned char *);
size_t serialize_ipv6_prefix_pdu(struct ipv6_prefix_pdu *, unsigned char *);
-size_t serialize_end_of_data_pdu(struct end_of_data_pdu *, unsigned char *);
+size_t serialize_end_of_data_pdu(struct end_of_data_pdu const *,
+ unsigned char *);
size_t serialize_cache_reset_pdu(struct cache_reset_pdu *, unsigned char *);
size_t serialize_router_key_pdu(struct router_key_pdu *, unsigned char *);
size_t serialize_error_report_pdu(struct error_report_pdu *, unsigned char *);
static struct client_arraylist clients;
static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
-struct thread_pool *request_handlers;
+static struct thread_pool *request_handlers;
#define REQUEST_BUFFER_LEN 1024