/* RFC 4795, section 2.5 requires the TTL to be set to 1 */
if (sa.sa.sa_family == AF_INET) {
- r = setsockopt_int(fd, IPPROTO_IP, IP_TTL, true);
+ r = setsockopt_int(fd, IPPROTO_IP, IP_TTL, 1);
if (r < 0)
return r;
} else if (sa.sa.sa_family == AF_INET6) {
- r = setsockopt_int(fd, IPPROTO_IPV6, IPV6_UNICAST_HOPS, true);
+ r = setsockopt_int(fd, IPPROTO_IPV6, IPV6_UNICAST_HOPS, 1);
if (r < 0)
return r;
}
random_bytes(&jitter, sizeof(jitter));
jitter %= LLMNR_JITTER_INTERVAL_USEC;
- r = sd_event_add_time(scope->manager->event,
- &scope->conflict_event_source,
- clock_boottime_or_monotonic(),
- now(clock_boottime_or_monotonic()) + jitter,
- LLMNR_JITTER_INTERVAL_USEC,
- on_conflict_dispatch, scope);
+ r = sd_event_add_time_relative(
+ scope->manager->event,
+ &scope->conflict_event_source,
+ clock_boottime_or_monotonic(),
+ jitter,
+ LLMNR_JITTER_INTERVAL_USEC,
+ on_conflict_dispatch, scope);
if (r < 0)
return log_debug_errno(r, "Failed to add conflict dispatch event: %m");
DnsTransaction *t;
DnsZoneItem *z, *i;
unsigned size = 0;
- Iterator iterator;
char *service_type;
int r;
return 0; /* we reach this point only if changing hostname didn't help */
/* Calculate answer's size. */
- HASHMAP_FOREACH(z, scope->zone.by_key, iterator) {
+ HASHMAP_FOREACH(z, scope->zone.by_key) {
if (z->state != DNS_ZONE_ITEM_ESTABLISHED)
continue;
return log_oom();
/* Second iteration, actually add RRs to the answer. */
- HASHMAP_FOREACH(z, scope->zone.by_key, iterator)
+ HASHMAP_FOREACH(z, scope->zone.by_key)
LIST_FOREACH (by_key, i, z) {
DnsAnswerFlags flags;
}
/* Since all the active services are in the zone make them discoverable now. */
- SET_FOREACH(service_type, types, iterator) {
+ SET_FOREACH(service_type, types) {
_cleanup_(dns_resource_record_unrefp) DnsResourceRecord *rr;
rr = dns_resource_record_new_full(DNS_CLASS_IN, DNS_TYPE_PTR,
/* In section 8.3 of RFC6762: "The Multicast DNS responder MUST send at least two unsolicited
* responses, one second apart." */
if (!scope->announced) {
- usec_t ts;
-
scope->announced = true;
- assert_se(sd_event_now(scope->manager->event, clock_boottime_or_monotonic(), &ts) >= 0);
- ts += MDNS_ANNOUNCE_DELAY;
-
- r = sd_event_add_time(
+ r = sd_event_add_time_relative(
scope->manager->event,
&scope->announce_event_source,
clock_boottime_or_monotonic(),
- ts,
+ MDNS_ANNOUNCE_DELAY,
MDNS_JITTER_RANGE_USEC,
on_announcement_timeout, scope);
if (r < 0)
}
int dns_scope_add_dnssd_services(DnsScope *scope) {
- Iterator i;
DnssdService *service;
DnssdTxtData *txt_data;
int r;
scope->announced = false;
- HASHMAP_FOREACH(service, scope->manager->dnssd_services, i) {
+ HASHMAP_FOREACH(service, scope->manager->dnssd_services) {
service->withdrawn = false;
r = dns_zone_put(&scope->zone, scope, service->ptr_rr, false);
int dns_scope_remove_dnssd_services(DnsScope *scope) {
_cleanup_(dns_resource_key_unrefp) DnsResourceKey *key = NULL;
- Iterator i;
DnssdService *service;
DnssdTxtData *txt_data;
int r;
if (r < 0)
return r;
- HASHMAP_FOREACH(service, scope->manager->dnssd_services, i) {
+ HASHMAP_FOREACH(service, scope->manager->dnssd_services) {
dns_zone_remove_rr(&scope->zone, service->ptr_rr);
dns_zone_remove_rr(&scope->zone, service->srv_rr);
LIST_FOREACH(items, txt_data, service->txt_data_items)