コード例 #1
0
gboolean
g_sockaddr_serialize(SerializeArchive *sa, GSockAddr *addr)
{
  if (!addr)
    {
      return serialize_write_uint16(sa, 0);
    }

  gboolean result = serialize_write_uint16(sa, addr->sa.sa_family);
  switch (addr->sa.sa_family)
    {
    case AF_INET:
      {
        result &= _serialize_ipv4(addr, sa);
        break;
      }
#if SYSLOG_NG_ENABLE_IPV6
    case AF_INET6:
      {
        result &= _serialize_ipv6(addr, sa);
        break;
      }
#endif
    case AF_UNIX:
      {
        break;
      }
    default:
      {
        result = FALSE;
        break;
      }
    }
  return result;
}
コード例 #2
0
static gboolean
_serialize_ipv6(GSockAddr* addr, SerializeArchive* sa)
{
  struct in6_addr* in6a;
  in6a = g_sockaddr_inet6_get_address(addr);
  return serialize_write_blob(sa, (gchar*) in6a, sizeof(*in6a)) &&
         serialize_write_uint16(sa, htons(g_sockaddr_get_port(addr)));
}
コード例 #3
0
static void
_write_struct(SerializeArchive *sa, NVTable *self)
{
  serialize_write_uint32(sa, self->size);
  serialize_write_uint32(sa, self->used);
  serialize_write_uint16(sa, self->index_size);
  serialize_write_uint8(sa, self->num_static_entries);
  serialize_write_uint32_array(sa, self->static_entries, self->num_static_entries);
  serialize_write_uint32_array(sa, (guint32 *) nv_table_get_index(self), self->index_size * 2);
}
コード例 #4
0
ファイル: nvtable-serialize.c プロジェクト: Cytrian/syslog-ng
static void
_write_struct(SerializeArchive *sa, NVTable *self)
{
  guint16 i;
  NVDynValue *dyn_entries;

  serialize_write_uint32(sa, self->size);
  serialize_write_uint32(sa, self->used);
  serialize_write_uint16(sa, self->num_dyn_entries);
  serialize_write_uint8(sa, self->num_static_entries);
  for (i = 0; i < self->num_static_entries; i++)
    {
      serialize_write_uint32(sa, self->static_entries[i]);
    }
  dyn_entries = nv_table_get_dyn_entries(self);
  for (i = 0; i < self->num_dyn_entries; i++)
    {
      _serialize_nv_dyn_value(sa, &dyn_entries[i]);
    }
}