diff --git a/modules/affile/affile-dest.c b/modules/affile/affile-dest.c index 7cd2bcabef1..139d917a7b2 100644 --- a/modules/affile/affile-dest.c +++ b/modules/affile/affile-dest.c @@ -292,24 +292,28 @@ static void affile_dw_set_owner(AFFileDestWriter *self, AFFileDestDriver *owner) { GlobalConfig *cfg = log_pipe_get_config(&owner->super.super.super); + log_pipe_set_config(&self->super, cfg); + + if (self->writer) + log_pipe_set_config((LogPipe *) self->writer, cfg); if (self->owner) log_pipe_unref(&self->owner->super.super.super); - log_pipe_ref(&owner->super.super.super); + + self->owner = owner; - self->super.expr_node = owner->super.super.super.expr_node; + if (self->owner) { + log_pipe_ref(&self->owner->super.super.super); + log_pipe_set_options(&self->super, &self->owner->super.super.super.options); + self->super.expr_node = self->owner->super.super.super.expr_node; + } - log_pipe_set_options(&self->super, &owner->super.super.super.options); - log_pipe_set_config(&self->super, cfg); - if (self->writer) - { - log_pipe_set_config((LogPipe *) self->writer, cfg); + if (self->writer && self->owner) log_writer_set_options(self->writer, &self->super, &owner->writer_options, self->owner->super.super.id, self->filename); - } } static void