{
GInetSocketAddress *address G_GNUC_UNUSED = G_INET_SOCKET_ADDRESS (object);
+ g_object_unref (address->priv->address);
+
if (G_OBJECT_CLASS (g_inet_socket_address_parent_class)->dispose)
(*G_OBJECT_CLASS (g_inet_socket_address_parent_class)->dispose) (object);
}
static void
-g_inet_socket_address_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
+g_inet_socket_address_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
{
GInetSocketAddress *address = G_INET_SOCKET_ADDRESS (object);
}
static void
-g_inet_socket_address_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
+g_inet_socket_address_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
{
GInetSocketAddress *address = G_INET_SOCKET_ADDRESS (object);
switch (prop_id)
{
case PROP_ADDRESS:
- address->priv->address = G_INET_ADDRESS (g_value_get_object (value));
+ address->priv->address = G_INET_ADDRESS (g_object_ref_sink (g_value_get_object (value)));
break;
case PROP_PORT:
address->priv->port = (guint16) g_value_get_uint (value);
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
}
}
}
static gboolean
-g_inet_socket_address_to_native (GSocketAddress *address, gpointer dest)
+g_inet_socket_address_to_native (GSocketAddress *address,
+ gpointer dest)
{
GInetSocketAddress *addr;
struct sockaddr_in *sock = (struct sockaddr_in *) dest;
sock->sin_family = AF_INET;
- sock->sin_port = addr->priv->port;
+ sock->sin_port = g_htons (addr->priv->port);
memcpy (&(sock->sin_addr.s_addr), g_inet4_address_to_bytes (G_INET4_ADDRESS (addr->priv->address)), sizeof (sock->sin_addr));
memset (sock->sin_zero, 0, sizeof (sock->sin_zero));
return TRUE;
"address",
"address",
G_TYPE_INET_ADDRESS,
- G_PARAM_CONSTRUCT_ONLY | G_PARAM_READABLE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_BLURB | G_PARAM_STATIC_NICK));
+ G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_BLURB | G_PARAM_STATIC_NICK));
g_object_class_install_property (gobject_class, PROP_PORT,
g_param_spec_uint ("port",
0,
65535,
0,
- G_PARAM_CONSTRUCT_ONLY | G_PARAM_READABLE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_BLURB | G_PARAM_STATIC_NICK));
+ G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_BLURB | G_PARAM_STATIC_NICK));
}
static void
GInetSocketAddress *
-g_inet_socket_address_new (GInetAddress *address, guint16 port)
+g_inet_socket_address_new (GInetAddress *address,
+ guint16 port)
{
- return NULL;
+ return G_INET_SOCKET_ADDRESS (g_object_new (G_TYPE_INET_SOCKET_ADDRESS, "address", address, "port", port, NULL));
}
-
GInetAddress *
g_inet_socket_address_get_address (GInetSocketAddress *sockaddr)
{