#include <resolv.h>
#include <glob.h>
+#include <inttypes.h>
#include <stdio.h>
#include <time.h>
{
time_t t = monotonic_time();
- if (t - s->t <= TOUT_LOOKUP)
+ if (t - s->t <= TOUT_LOOKUP) {
+ DBG(2, "t=%" PRId64 ", s->t=%" PRId64 ", t - s->t = %" PRId64 "\n", (int64_t)t, (int64_t)s->t, (int64_t)(t - s->t));
return 0;
+ }
return t;
}
uint8_t *d_txt;
int rem2;
int txt_len = 0;
+ unsigned int n;
blobmsg_parse(service_policy, ARRAY_SIZE(service_policy),
_tb, blobmsg_data(b), blobmsg_data_len(b));
blobmsg_for_each_attr(txt, _tb[SERVICE_TXT], rem2)
txt_len += 1 + strlen(blobmsg_get_string(txt));
+ n = strlen(blobmsg_name(b));
s = calloc_a(sizeof(*s),
- &d_id, strlen(blobmsg_name(b)) + 1,
+ &d_id, n + 1,
&d_instance, _tb[SERVICE_INSTANCE] ? strlen(blobmsg_get_string(_tb[SERVICE_INSTANCE])) + 1 : 0,
&d_service, strlen(blobmsg_get_string(_tb[SERVICE_SERVICE])) + 1,
&d_txt, txt_len);
return;
s->port = blobmsg_get_u32(_tb[SERVICE_PORT]);
- s->id = strcpy(d_id, blobmsg_name(b));
+ s->id = strncpy(d_id, blobmsg_name(b), n);
if (_tb[SERVICE_INSTANCE])
s->instance = strcpy(d_instance, blobmsg_get_string(_tb[SERVICE_INSTANCE]));
else