aboutsummaryrefslogtreecommitdiffstats
path: root/glougloud/server.c
diff options
context:
space:
mode:
authorLaurent Ghigonis <laurent@p1sec.com>2012-07-22 01:08:34 +0200
committerLaurent Ghigonis <laurent@p1sec.com>2012-07-22 01:08:34 +0200
commitd6d5ea47494b569882c032432dde23ec2505c631 (patch)
tree574e96066540b86f2c58dbaf1bd5bc9d073366a2 /glougloud/server.c
parentfix imcompatibility between imsg and imsgev ! (diff)
downloadglouglou-d6d5ea47494b569882c032432dde23ec2505c631.tar.xz
glouglou-d6d5ea47494b569882c032432dde23ec2505c631.zip
follow imsgev changes
Diffstat (limited to 'glougloud/server.c')
-rw-r--r--glougloud/server.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/glougloud/server.c b/glougloud/server.c
index c275234..3446f6e 100644
--- a/glougloud/server.c
+++ b/glougloud/server.c
@@ -38,6 +38,7 @@ struct user {
};
static void imsgev_main(struct imsgev *, int, struct imsg *);
+static void imsgev_main_needfd(struct imsgev *);
static void receive(int, short, void *);
static void ev_usrtimer(int, short, void *);
@@ -79,7 +80,7 @@ server_init(int fd[2])
signal(SIGPIPE, SIG_IGN);
srv = xmalloc(sizeof(struct server));
- imsgev_init(&srv->iev, fd[1], NULL, &imsgev_main);
+ imsgev_init(&srv->iev, fd[1], NULL, imsgev_main, imsgev_main_needfd);
srv->time = time(NULL);
event_set(&srv->ev, net_socket, EV_READ|EV_PERSIST, receive, NULL);
@@ -150,7 +151,7 @@ imsgev_main(struct imsgev *iev, int code, struct imsg *imsg)
case IMSGEV_EREAD:
case IMSGEV_EWRITE:
case IMSGEV_EIMSG:
- fatal("imsgev read/write error");
+ fatal("server: imsgev read/write error (%d)", code);
/* NOTREACHED */
break;
case IMSGEV_DONE:
@@ -161,6 +162,12 @@ imsgev_main(struct imsgev *iev, int code, struct imsg *imsg)
}
static void
+imsgev_main_needfd(struct imsgev *iev)
+{
+ fatal("server: imsgev_main_needfd");
+}
+
+static void
receive(int fd, short why, void *data)
{
struct sockaddr_in remote;