[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openocd-development
Subject:    [OpenOCD-devel] [PATCH]: 49aa43f server: remove connection limit from tcl and telnet servers
From:       gerrit () openocd ! org (gerrit)
Date:       2015-08-13 18:47:13
Message-ID: 20150813184713.E8B3719807B8 () mail ! openocd ! org
[Download RAW message or body]

This is an automated email from Gerrit.

Austin Morton (austinpmorton@gmail.com) just uploaded a new patch set to Gerrit, \
which you can find at http://openocd.zylin.com/2937

-- gerrit

commit 49aa43ffb10518fec1ccfd328ca8be123ad12bb1
Author: Austin Morton <austinpmorton@gmail.com>
Date:   Thu Aug 13 14:45:29 2015 -0400

    server: remove connection limit from tcl and telnet servers
    
    Add constant CONNECTION_LIMIT_UNLIMITED which indicates a service
    has no connection limit
    
    Change-Id: I008d31264010c25fa44ca74eb6d5740eca38bee1
    Signed-off-by: Austin Morton <austinpmorton@gmail.com>

diff --git a/src/server/server.c b/src/server/server.c
index 7e90d89..24747f9 100644
--- a/src/server/server.c
+++ b/src/server/server.c
@@ -145,7 +145,8 @@ static int add_connection(struct service *service, struct \
command_context *cmd_c  ;
 	*p = c;
 
-	service->max_connections--;
+	if (service->max_connections != CONNECTION_LIMIT_UNLIMITED)
+		service->max_connections--;
 
 	return ERROR_OK;
 }
@@ -172,7 +173,9 @@ static int remove_connection(struct service *service, struct \
                connection *connect
 			*p = c->next;
 			free(c);
 
-			service->max_connections++;
+			if (service->max_connections != CONNECTION_LIMIT_UNLIMITED)
+				service->max_connections++;
+
 			break;
 		}
 
@@ -446,7 +449,7 @@ int server_loop(struct command_context *command_context)
 			/* handle new connections on listeners */
 			if ((service->fd != -1)
 			    && (FD_ISSET(service->fd, &read_fds))) {
-				if (service->max_connections > 0)
+				if (service->max_connections != 0)
 					add_connection(service, command_context);
 				else {
 					if (service->type == CONNECTION_TCP) {
diff --git a/src/server/server.h b/src/server/server.h
index 34c870a..0615233 100644
--- a/src/server/server.h
+++ b/src/server/server.h
@@ -39,6 +39,8 @@ enum connection_type {
 	CONNECTION_STDINOUT
 };
 
+#define CONNECTION_LIMIT_UNLIMITED		(-1)
+
 struct connection {
 	int fd;
 	int fd_out;	/* When using pipes we're writing to a different fd */
diff --git a/src/server/tcl_server.c b/src/server/tcl_server.c
index 409567c..a4270a8 100644
--- a/src/server/tcl_server.c
+++ b/src/server/tcl_server.c
@@ -250,7 +250,7 @@ int tcl_init(void)
 		return ERROR_OK;
 	}
 
-	return add_service("tcl", tcl_port, 1,
+	return add_service("tcl", tcl_port, CONNECTION_LIMIT_UNLIMITED,
 		&tcl_new_connection, &tcl_input,
 		&tcl_closed, NULL);
 }
diff --git a/src/server/telnet_server.c b/src/server/telnet_server.c
index 92d8c5e..2187dbe 100644
--- a/src/server/telnet_server.c
+++ b/src/server/telnet_server.c
@@ -625,7 +625,7 @@ int telnet_init(char *banner)
 
 	return add_service("telnet",
 		telnet_port,
-		1,
+		CONNECTION_LIMIT_UNLIMITED,
 		telnet_new_connection,
 		telnet_input,
 		telnet_connection_closed,

-- 

------------------------------------------------------------------------------
_______________________________________________
OpenOCD-devel mailing list
OpenOCD-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openocd-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic