--- a/loudmouth/lm-socket.c Fri Jul 11 19:14:28 2008 +0300
+++ b/loudmouth/lm-socket.c Sat Jul 12 22:07:29 2008 +0200
@@ -143,7 +143,7 @@
lm_socket_read (LmSocket *socket,
gchar *buf,
gsize buf_len,
- gsize read_len)
+ gsize *read_len)
{
g_return_val_if_fail (LM_IS_SOCKET (socket), FALSE);
g_return_val_if_fail (buf != NULL, FALSE);
--- a/loudmouth/lm-socket.h Fri Jul 11 19:14:28 2008 +0300
+++ b/loudmouth/lm-socket.h Sat Jul 12 22:07:29 2008 +0200
@@ -47,7 +47,7 @@
gboolean (*read) (LmSocket *socket,
gchar *buf,
gsize buf_len,
- gsize read_len);
+ gsize *read_len);
void (*disconnect) (LmSocket *socket);
};
@@ -71,7 +71,7 @@
gboolean lm_socket_read (LmSocket *socket,
gchar *buf,
gsize buf_len,
- gsize read_len);
+ gsize *read_len);
void lm_socket_disconnect (LmSocket *socket);
G_END_DECLS
--- a/loudmouth/lm-soup-socket.c Fri Jul 11 19:14:28 2008 +0300
+++ b/loudmouth/lm-soup-socket.c Sat Jul 12 22:07:29 2008 +0200
@@ -53,7 +53,7 @@
static gboolean _soup_socket_read (LmSocket *socket,
gchar *buf,
gsize buf_len,
- gsize read_len);
+ gsize *read_len);
static void _soup_socket_disconnect (LmSocket *socket);
static void _soup_socket_callback (SoupSocket *soup,
guint status,
@@ -111,7 +111,6 @@
LmSoupSocketPriv *priv;
priv = GET_PRIV (soup_socket);
-
}
static void
@@ -130,6 +129,14 @@
priv = GET_PRIV (object);
+ if (priv->soup) {
+ if (soup_socket_is_connected (priv->soup)) {
+ soup_socket_disconnect (priv->soup);
+ }
+
+ g_object_unref (priv->soup);
+ }
+
(G_OBJECT_CLASS (lm_soup_socket_parent_class)->finalize) (object);
}
@@ -178,6 +185,15 @@
{
LmSoupSocketPriv *priv = GET_PRIV (socket);
+ if (priv->soup) {
+ g_warning ("Already have a SoupSocket");
+ return;
+ }
+
+ priv->soup = soup_socket_new ("remote-address", "kenny.imendio.com",
+ "non-blocking", TRUE,
+ NULL);
+
soup_socket_connect_async (priv->soup,
priv->cancellable,
(SoupSocketCallback)_soup_socket_callback,
@@ -193,6 +209,7 @@
SoupSocketIOStatus io_status;
if (!priv->soup || !soup_socket_is_connected (priv->soup)) {
+ g_warning ("Trying to write to an unconnected socket");
return FALSE;
}
@@ -206,15 +223,24 @@
static gboolean
_soup_socket_read (LmSocket *socket,
- gchar *buf,
- gsize buf_len,
- gsize read_len)
+ gchar *buf,
+ gsize buf_len,
+ gsize *read_len)
{
LmSoupSocketPriv *priv = GET_PRIV (socket);
+ SoupSocketIOStatus io_status;
if (!priv->soup || !soup_socket_is_connected (priv->soup)) {
+ g_warning ("Trying to read from an unconnected socket");
+ return FALSE;
}
+ io_status = soup_socket_read (priv->soup,
+ buf, buf_len, read_len,
+ priv->cancellable,
+ NULL /* FIXME: Look at if the match is up tonight */);
+
+
return FALSE;
}
--- a/loudmouth/lm-tcp-socket.c Fri Jul 11 19:14:28 2008 +0300
+++ b/loudmouth/lm-tcp-socket.c Sat Jul 12 22:07:29 2008 +0200
@@ -48,7 +48,7 @@
static gboolean tcp_socket_read (LmSocket *socket,
gchar *buf,
gsize buf_len,
- gsize read_len);
+ gsize *read_len);
static void tcp_socket_disconnect (LmSocket *socket);
G_DEFINE_TYPE_WITH_CODE (LmTcpSocket, lm_tcp_socket, G_TYPE_OBJECT,
@@ -180,9 +180,9 @@
static gboolean
tcp_socket_read (LmSocket *socket,
- gchar *buf,
- gsize buf_len,
- gsize read_len)
+ gchar *buf,
+ gsize buf_len,
+ gsize *read_len)
{
return FALSE;
}