LogDriver * afinet_dd_new(gint af, gchar *host, gint port, guint flags) { AFInetDestDriver *self = g_new0(AFInetDestDriver, 1); afsocket_dd_init_instance(&self->super, &self->sock_options.super, flags, g_strdup(host), g_strdup_printf("%s:%d", host, port)); if (self->super.flags & AFSOCKET_DGRAM) self->super.transport = g_strdup("udp"); else if (self->super.flags & AFSOCKET_STREAM) self->super.transport = g_strdup("tcp"); self->super.super.super.init = afinet_dd_init; self->super.super.super.queue = afinet_dd_queue; self->super.super.super.free_fn = afinet_dd_free; if (af == 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", port); } else { #if ENABLE_IPV6 self->super.bind_addr = g_sockaddr_inet6_new("::", 0); self->super.dest_addr = g_sockaddr_inet6_new("::", port); #else g_assert_not_reached(); #endif } self->super.setup_socket = afinet_dd_setup_socket; return &self->super.super; }
AFInetDestDriver * afinet_dd_new_instance(gint af, gint sock_type, gchar *host) { AFInetDestDriver *self = g_new0(AFInetDestDriver, 1); afsocket_dd_init_instance(&self->super, &self->sock_options.super, af, sock_type, host); self->super.super.super.super.init = afinet_dd_init; self->super.super.super.super.queue = afinet_dd_queue; self->super.super.super.super.free_fn = afinet_dd_free; self->super.setup_socket = afinet_dd_setup_socket; self->super.apply_transport = afinet_dd_apply_transport; if (sock_type == SOCK_STREAM) { self->sock_options.super.so_keepalive = TRUE; #if defined(TCP_KEEPTIME) && defined(TCP_KEEPIDLE) && defined(TCP_KEEPCNT) self->sock_options.tcp_keepalive_time = 60; self->sock_options.tcp_keepalive_intvl = 10; self->sock_options.tcp_keepalive_probes = 6; #endif } #if ENABLE_SPOOF_SOURCE g_static_mutex_init(&self->lnet_lock); #endif return self; }
LogDriver * afunix_dd_new(gchar *filename, guint flags) { AFUnixDestDriver *self = g_new0(AFUnixDestDriver, 1); afsocket_dd_init_instance(&self->super, &self->sock_options, flags); self->super.bind_addr = g_sockaddr_unix_new(NULL); self->super.dest_addr = g_sockaddr_unix_new(filename); return &self->super.super; }
static AFInetDestDriver * afinet_dd_new_instance(TransportMapper *transport_mapper, gchar *hostname, GlobalConfig *cfg) { AFInetDestDriver *self = g_new0(AFInetDestDriver, 1); afsocket_dd_init_instance(&self->super, socket_options_inet_new(), transport_mapper, cfg); self->super.super.super.super.init = afinet_dd_init; self->super.super.super.super.queue = afinet_dd_queue; self->super.super.super.super.free_fn = afinet_dd_free; self->super.construct_writer = afinet_dd_construct_writer; self->super.setup_addresses = afinet_dd_setup_addresses; self->super.get_dest_name = afinet_dd_get_dest_name; self->hostname = g_strdup(hostname); #if SYSLOG_NG_ENABLE_SPOOF_SOURCE g_static_mutex_init(&self->lnet_lock); self->spoof_source_maxmsglen = 1024; #endif return self; }
LogDriver * afinet_dd_new(gint af, gchar *host, gint port, guint flags) { AFInetDestDriver *self = g_new0(AFInetDestDriver, 1); afsocket_dd_init_instance(&self->super, &self->sock_options.super, flags); if (af == 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", port); } else { #if ENABLE_IPV6 self->super.bind_addr = g_sockaddr_inet6_new("::", 0); self->super.dest_addr = g_sockaddr_inet6_new("::", port); #else g_assert_not_reached(); #endif } afinet_resolve_name(self->super.dest_addr, host); self->super.setup_socket = afinet_dd_setup_socket; return &self->super.super; }