void log_drv_append(LogDriver *self, LogDriver *next) { if (self->drv_next) log_drv_unref(self->drv_next); self->drv_next = log_drv_ref(next); }
static void afsocket_sc_set_owner(AFSocketSourceConnection *self, AFSocketSourceDriver *owner) { if (self->reader) log_reader_set_options(self->reader, &self->super, &owner->reader_options, 1, afsocket_sc_stats_source(self), owner->super.id, afsocket_sc_stats_instance(self)); log_drv_unref(&self->owner->super); log_drv_ref(&owner->super); self->owner = owner; log_pipe_append(&self->super, &owner->super.super); }
AFSocketSourceConnection * afsocket_sc_new(AFSocketSourceDriver *owner, GSockAddr *peer_addr, int fd) { AFSocketSourceConnection *self = g_new0(AFSocketSourceConnection, 1); log_pipe_init_instance(&self->super); self->super.init = afsocket_sc_init; self->super.deinit = afsocket_sc_deinit; self->super.notify = afsocket_sc_notify; self->super.free_fn = afsocket_sc_free; log_drv_ref(&owner->super); self->owner = owner; self->peer_addr = g_sockaddr_ref(peer_addr); self->sock = fd; return self; }