From eef235d8795df740eb63cb135bd187b7ab9ac4ea Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Thu, 18 Nov 2004 00:28:26 +0000 Subject: limit the number of concurrent connections for all four protocols kick a client if it doesn't authenticate within 5s on ESD and native protocol git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@292 fefdeb5f-60dc-0310-8127-8f9354f1896f --- polyp/protocol-cli.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'polyp/protocol-cli.c') diff --git a/polyp/protocol-cli.c b/polyp/protocol-cli.c index 7ce53887..7122d23a 100644 --- a/polyp/protocol-cli.c +++ b/polyp/protocol-cli.c @@ -29,6 +29,10 @@ #include "protocol-cli.h" #include "cli.h" #include "xmalloc.h" +#include "log.h" + +/* Don't allow more than this many concurrent connections */ +#define MAX_CONNECTIONS 10 struct pa_protocol_cli { struct pa_module *module; @@ -49,6 +53,12 @@ static void on_connection(struct pa_socket_server*s, struct pa_iochannel *io, vo struct pa_cli *c; assert(s && io && p); + if (pa_idxset_ncontents(p->connections)+1 > MAX_CONNECTIONS) { + pa_log(__FILE__": Warning! Too many connections (%u), dropping incoming connection.\n", MAX_CONNECTIONS); + pa_iochannel_free(io); + return; + } + c = pa_cli_new(p->core, io, p->module); assert(c); pa_cli_set_eof_callback(c, cli_eof_cb, p); -- cgit