Ejemplo n.º 1
0
static gboolean
afsocket_sc_init(LogPipe *s)
{
  AFSocketSourceConnection *self = (AFSocketSourceConnection *) s;
  LogTransport *transport;
  LogProtoServer *proto;

  if (!self->reader)
    {
      transport = afsocket_sd_construct_transport(self->owner, self->sock);
      proto = log_proto_server_factory_construct(self->owner->proto_factory, transport, &self->owner->reader_options.proto_options.super);
      self->reader = log_reader_new(proto);
    }
  log_reader_set_options(self->reader, s,
                         &self->owner->reader_options,
                         STATS_LEVEL1,
                         self->owner->transport_mapper->stats_source,
                         self->owner->super.super.id,
                         afsocket_sc_stats_instance(self));
  log_reader_set_peer_addr(self->reader, self->peer_addr);
  log_pipe_append((LogPipe *) self->reader, s);
  if (log_pipe_init((LogPipe *) self->reader, NULL))
    {
      return TRUE;
    }
  else
    {
      log_pipe_unref((LogPipe *) self->reader);
      self->reader = NULL;
    }
  return FALSE;
}
Ejemplo n.º 2
0
LogProtoServer *
construct_server_proto_plugin(const gchar *name, LogTransport *transport)
{
    LogProtoServerFactory *proto_factory;

    log_proto_server_options_init(&proto_server_options, configuration);
    proto_factory = log_proto_server_get_factory(configuration, name);
    assert_true(proto_factory != NULL, "error looking up proto factory");
    return log_proto_server_factory_construct(proto_factory, transport, &proto_server_options);
}