From 0fc5e1003c1324279775a47d3416f2f7735c4e2e Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Thu, 4 Apr 2019 22:01:52 +0200 Subject: [PATCH] zeromq: add support for network emulation --- lib/nodes/zeromq.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/lib/nodes/zeromq.c b/lib/nodes/zeromq.c index 2298d9249..9fecd2186 100644 --- a/lib/nodes/zeromq.c +++ b/lib/nodes/zeromq.c @@ -542,6 +542,23 @@ int zeromq_poll_fds(struct node *n, int fds[]) return 1; } +int zeromq_netem_fds(struct node *n, int fds[]) +{ + int ret; + struct zeromq *z = (struct zeromq *) n->_vd; + + int fd; + size_t len = sizeof(fd); + + ret = zmq_getsockopt(z->out.socket, ZMQ_FD, &fd, &len); + if (ret) + return ret; + + fds[0] = fd; + + return 1; +} + static struct plugin p = { .name = "zeromq", .description = "ZeroMQ Distributed Messaging (libzmq)", @@ -559,7 +576,8 @@ static struct plugin p = { .destroy = zeromq_destroy, .read = zeromq_read, .write = zeromq_write, - .poll_fds = zeromq_poll_fds + .poll_fds = zeromq_poll_fds, + .netem_fds = zeromq_netem_fds, } };