static gboolean afinet_dd_setup_addresses(AFSocketDestDriver *s) { AFInetDestDriver *self = (AFInetDestDriver *) s; if (!afsocket_dd_setup_addresses_method(s)) return FALSE; g_sockaddr_unref(self->super.bind_addr); g_sockaddr_unref(self->super.dest_addr); if (!resolve_hostname_to_sockaddr(&self->super.bind_addr, self->super.transport_mapper->address_family, self->bind_ip)) return FALSE; if (self->bind_port) g_sockaddr_set_port(self->super.bind_addr, afinet_lookup_service(self->super.transport_mapper, self->bind_port)); if (!resolve_hostname_to_sockaddr(&self->super.dest_addr, self->super.transport_mapper->address_family, self->hostname)) return FALSE; if (!self->dest_port) { const gchar *port_change_warning = transport_mapper_inet_get_port_change_warning(self->super.transport_mapper); if (port_change_warning) { msg_warning(port_change_warning, evt_tag_str("id", self->super.super.super.id)); } } g_sockaddr_set_port(self->super.dest_addr, _determine_port(self)); return TRUE; }
static gboolean afinet_dd_setup_addresses(AFSocketDestDriver *s) { AFInetDestDriver *self = (AFInetDestDriver *) s; if (!afsocket_dd_setup_addresses_method(s)) return FALSE; g_sockaddr_unref(self->super.bind_addr); g_sockaddr_unref(self->super.dest_addr); if (self->super.transport_mapper->address_family == AF_INET) { self->super.bind_addr = g_sockaddr_inet_new("0.0.0.0", 0); self->super.dest_addr = g_sockaddr_inet_new("0.0.0.0", 0); } #if ENABLE_IPV6 else if (self->super.transport_mapper->address_family == AF_INET6) { self->super.bind_addr = g_sockaddr_inet6_new("::", 0); self->super.dest_addr = g_sockaddr_inet6_new("::", 0); } #endif else { /* address family not known */ g_assert_not_reached(); } if ((self->bind_ip && !resolve_hostname(&self->super.bind_addr, self->bind_ip))) return FALSE; if (!resolve_hostname(&self->super.dest_addr, self->hostname)) return FALSE; if (!self->dest_port) { const gchar *port_change_warning = transport_mapper_inet_get_port_change_warning(self->super.transport_mapper); if (port_change_warning) { msg_warning(port_change_warning, evt_tag_str("id", self->super.super.super.id), NULL); } g_sockaddr_set_port(self->super.dest_addr, transport_mapper_inet_get_server_port(self->super.transport_mapper)); } else g_sockaddr_set_port(self->super.dest_addr, afinet_lookup_service(self->super.transport_mapper, self->dest_port)); return TRUE; }