*/
#include <config.h>
+#include <string.h>
#include <glib.h>
#include "ginet6address.h"
-
G_DEFINE_TYPE (GInet6Address, g_inet6_address, G_TYPE_INET_ADDRESS);
struct _GInet6AddressPrivate {
-
- union {
- guint8 u6_addr8[16];
- guint16 u6_addr16[8];
- guint32 u6_addr32[4];
-
- } addr;
+ union {
+ guint8 u6_addr8[16];
+ guint16 u6_addr16[8];
+ guint32 u6_addr32[4];
+ } addr;
};
-
static void
g_inet6_address_finalize (GObject *object)
{
- GInet6Address *address;
+ GInet6Address *address G_GNUC_UNUSED = G_INET6_ADDRESS (object);
- address = G_INET6_ADDRESS (object);
-
if (G_OBJECT_CLASS (g_inet6_address_parent_class)->finalize)
(*G_OBJECT_CLASS (g_inet6_address_parent_class)->finalize) (object);
}
static void
g_inet6_address_dispose (GObject *object)
{
- GInet6Address *address;
+ GInet6Address *address G_GNUC_UNUSED = G_INET6_ADDRESS (object);
- address = G_INET6_ADDRESS (object);
-
if (G_OBJECT_CLASS (g_inet6_address_parent_class)->dispose)
(*G_OBJECT_CLASS (g_inet6_address_parent_class)->dispose) (object);
}
-
static void
g_inet6_address_class_init (GInet6AddressClass *klass)
{
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
+
g_type_class_add_private (klass, sizeof (GInet6AddressPrivate));
-
+
gobject_class->finalize = g_inet6_address_finalize;
gobject_class->dispose = g_inet6_address_dispose;
-
}
static void
GInet6Address *
g_inet6_address_from_string (const char *string)
{
- return NULL;
+ return NULL;
}
char *
GInet6Address *
g_inet6_address_from_bytes (guint8 bytes[])
{
- return NULL;
+ GInet6Address *address = G_INET6_ADDRESS (g_object_new (G_TYPE_INET6_ADDRESS, NULL));
+
+ g_memmove (address->priv->addr.u6_addr8, bytes, 16);
+
+ return address;
}
const guint8 *
return NULL;
}
-GInetAddress *
-g_inet6address_new_loopback (void)
+GInet6Address *
+g_inet6_address_new_loopback (void)
{
- return NULL;
+ guint8 bytes[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1};
+
+ return g_inet6_address_from_bytes (bytes);
}
-GInetAddress *
-g_inet6address_new_any (void)
+GInet6Address *
+g_inet6_address_new_any (void)
{
return NULL;
}
-