+2003-06-27
+
+ * src/session.c: session_read_data_cb(): clear Session::read_data_buf
+ before calling callbacks.
+
2003-06-26
* src/socket.c: made socket connection protocol independent.
+2003-06-27
+
+ * src/session.c: session_read_data_cb(): ¥³¡¼¥ë¥Ð¥Ã¥¯¤ò¸Æ¤ÖÁ°¤Ë
+ Session::read_data_buf ¤ò¥¯¥ê¥¢¤¹¤ë¤è¤¦¤Ë¤·¤¿¡£
+
2003-06-26
* src/socket.c: ¥½¥±¥Ã¥ÈÀܳ¤ò¥×¥í¥È¥³¥ëÆÈΩ¤Ë¤·¤¿¡£
gint terminator_len;
gboolean complete = FALSE;
gint ret;
+ gchar *ret_data;
+ gint data_len;
g_return_val_if_fail(condition == G_IO_IN, FALSE);
}
/* callback */
- ret = session->recv_data_finished(session, data_buf->data,
- data_buf->len - terminator_len);
- session->recv_data_notify(session, data_buf->len - terminator_len,
+ ret_data = g_malloc(data_buf->len);
+ memcpy(ret_data, data_buf->data, data_buf->len);
+ data_len = data_buf->len - terminator_len;
+ g_byte_array_set_size(data_buf, 0);
+
+ ret = session->recv_data_finished(session, ret_data, data_len);
+ session->recv_data_notify(session, data_len,
session->recv_data_notify_data);
- g_byte_array_set_size(data_buf, 0);
+ g_free(ret_data);
if (ret < 0)
session->state = SESSION_ERROR;