X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fsocket.c;h=aacf9bed9f1f50f106db3cd78b322461fc689ef8;hb=a7d3cc26f9694053712458615006ea79cd7a7cb4;hp=34068b91921f0dd889ffcbffe60ca225454dd420;hpb=18ffdfda48c327f56cac0aabdc6bada91cc9b7df;p=elogind.git diff --git a/src/socket.c b/src/socket.c index 34068b919..aacf9bed9 100644 --- a/src/socket.c +++ b/src/socket.c @@ -385,7 +385,7 @@ static void socket_dump(Unit *u, FILE *f, const char *prefix) { prefix, s->directory_mode, prefix, yes_no(s->keep_alive), prefix, yes_no(s->free_bind), - prefix, s->tcp_congestion); + prefix, strna(s->tcp_congestion)); if (s->control_pid > 0) fprintf(f, @@ -634,7 +634,13 @@ static void socket_apply_socket_options(Socket *s, int fd) { int r, x; r = setsockopt(fd, IPPROTO_IP, IP_TTL, &s->ip_ttl, sizeof(s->ip_ttl)); - x = setsockopt(fd, IPPROTO_IPV6, IPV6_UNICAST_HOPS, &s->ip_ttl, sizeof(s->ip_ttl)); + + if (socket_ipv6_is_supported()) + x = setsockopt(fd, IPPROTO_IPV6, IPV6_UNICAST_HOPS, &s->ip_ttl, sizeof(s->ip_ttl)); + else { + x = -1; + errno = EAFNOSUPPORT; + } if (r < 0 && x < 0) log_warning("IP_TTL/IPV6_UNICAST_HOPS failed: %m");