#include "iochannel.h"
#include <unistd.h>
+#include <fcntl.h>
struct hc_server_cb
{
hc_conn_new (int fd, HCClientFunc func, gpointer data)
{
HCConn *conn;
+ fcntl (fd, F_SETFL, fcntl (fd, F_GETFL, 0) | O_NONBLOCK);
conn = g_slice_new (HCConn);
conn->channel = g_io_channel_unix_new (fd);
conn->func = func;
return conn;
}
+void
+hc_conn_set_callback (HCConn *conn, HCClientFunc func, gpointer data)
+{
+ conn->func = func;
+ conn->data = data;
+}
+
ssize_t
hc_conn_read (HCConn *conn, char *buffer, size_t len)
{
ssize_t hc_conn_read (HCConn *, char *, size_t);
void hc_conn_write (HCConn *, char *, size_t);
void hc_conn_close (HCConn *);
+void hc_conn_set_callback (HCConn *, HCClientFunc, gpointer);
#endif