aboutsummaryrefslogtreecommitdiff
path: root/tcpserver.c
diff options
context:
space:
mode:
authorIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2010-03-26 14:32:18 +0000
committerIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2010-03-26 14:32:18 +0000
commit7c8ce3f27c6ec82d797a85aa79595739396b0acd (patch)
tree1e0e38ebd3d3bdd2e79ff5b5ac9b07c24c9e1c21 /tcpserver.c
parent73df569a2b83a21324834acfa1e661843ecd18dc (diff)
compatibility with mrpeach; convenience
re-add all those stupid outlets. use convenience functions to send data to these outlets svn path=/trunk/externals/iem/iemnet/; revision=13276
Diffstat (limited to 'tcpserver.c')
-rw-r--r--tcpserver.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/tcpserver.c b/tcpserver.c
index e56748a..3a15c31 100644
--- a/tcpserver.c
+++ b/tcpserver.c
@@ -54,7 +54,9 @@ typedef struct _tcpserver
t_object x_obj;
t_outlet *x_msgout;
t_outlet *x_connectout;
- t_outlet *x_status_outlet;
+ t_outlet *x_sockout; // legacy
+ t_outlet *x_addrout; // legacy
+ t_outlet *x_status_outlet;
t_tcpserver_socketreceiver *x_sr[MAX_CONNECT]; /* socket per connection */
t_int x_nconnections;
@@ -308,6 +310,7 @@ static void tcpserver_receive_callback(void *y0,
if(NULL==y || NULL==(x=y->sr_owner))return;
if(argc) {
+ iemnet__addrout(x->x_status_outlet, x->x_addrout, c->addr, c->port);
outlet_list(x->x_msgout, gensym("list"), argc, argv);
} else {
// disconnected
@@ -374,7 +377,12 @@ static void *tcpserver_new(t_floatarg fportno)
}
x = (t_tcpserver *)pd_new(tcpserver_class);
+
x->x_msgout = outlet_new(&x->x_obj, 0); /* 1st outlet for received data */
+ x->x_connectout = outlet_new(&x->x_obj, gensym("float")); /* 2nd outlet for number of connected clients */
+ x->x_sockout = outlet_new(&x->x_obj, gensym("float"));
+ x->x_addrout = outlet_new(&x->x_obj, gensym("list" ));
+ x->x_status_outlet = outlet_new(&x->x_obj, 0);/* 5th outlet for everything else */
@@ -388,9 +396,11 @@ static void *tcpserver_new(t_floatarg fportno)
else
{
sys_addpollfn(sockfd, (t_fdpollfn)tcpserver_connectpoll, x); // wait for new connections
- x->x_connectout = outlet_new(&x->x_obj, gensym("float")); /* 2nd outlet for number of connected clients */
- x->x_status_outlet = outlet_new(&x->x_obj, 0);/* 5th outlet for everything else */
}
+
+
+
+
x->x_connectsocket = sockfd;
x->x_nconnections = 0;