X-Git-Url: https://review.openocd.org/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Fserver%2Fserver.c;h=7d8ad51795a10fe423c9de36b9b5b43e77d52f99;hb=3e51d893ed3d1273b5487e05196f00fe3d14773d;hp=f762704dd3412f6c6761aeca0c14518311093626;hpb=74ce435d97ca4f6f81645d755d04123f075aa42b;p=openocd.git diff --git a/src/server/server.c b/src/server/server.c index f762704dd3..7d8ad51795 100644 --- a/src/server/server.c +++ b/src/server/server.c @@ -40,7 +40,7 @@ #endif -struct service *services = NULL; +static struct service *services = NULL; /* shutdown_openocd == 1: exit the main event loop, and quit the debugger */ static int shutdown_openocd = 0; @@ -48,7 +48,7 @@ static int shutdown_openocd = 0; /* set when using pipes rather than tcp */ int server_use_pipes = 0; -int add_connection(struct service *service, struct command_context *cmd_ctx) +static int add_connection(struct service *service, struct command_context *cmd_ctx) { socklen_t address_size; struct connection *c, **p; @@ -78,7 +78,7 @@ int add_connection(struct service *service, struct command_context *cmd_ctx) (char *)&flag, /* the cast is historical cruft */ sizeof(int)); /* length of option value */ - LOG_INFO("accepting '%s' connection from %i", service->name, c->sin.sin_port); + LOG_INFO("accepting '%s' connection from %i", service->name, service->port); if ((retval = service->new_connection(c)) != ERROR_OK) { close_socket(c->fd); @@ -112,7 +112,7 @@ int add_connection(struct service *service, struct command_context *cmd_ctx) return ERROR_OK; } -int remove_connection(struct service *service, struct connection *connection) +static int remove_connection(struct service *service, struct connection *connection) { struct connection **p = &service->connections; struct connection *c; @@ -233,35 +233,7 @@ int add_service(char *name, enum connection_type type, unsigned short port, int return ERROR_OK; } -int remove_service(unsigned short port) -{ - struct service **p = &services; - struct service *c; - - /* find service */ - while ((c = *p)) - { - if (c->port == port) - { - if (c->name) - free(c->name); - - if (c->priv) - free(c->priv); - - /* delete service */ - *p = c->next; - free(c); - } - - /* redirect p to next list pointer */ - p = &(*p)->next; - } - - return ERROR_OK; -} - -int remove_services(void) +static int remove_services(void) { struct service *c = services; @@ -292,7 +264,7 @@ int server_loop(struct command_context *command_context) { struct service *service; - bool poll = true; + bool poll_ok = true; /* used in select() */ fd_set read_fds; @@ -350,7 +322,7 @@ int server_loop(struct command_context *command_context) struct timeval tv; tv.tv_sec = 0; - if (poll) + if (poll_ok) { /* we're just polling this iteration, this is faster on embedded * hosts */ @@ -403,11 +375,11 @@ int server_loop(struct command_context *command_context) FD_ZERO(&read_fds); /* eCos leaves read_fds unchanged in this case! */ /* We timed out/there was nothing to do, timeout rather than poll next time */ - poll = false; + poll_ok = false; } else { /* There was something to do, next time we'll just poll */ - poll = true; + poll_ok = true; } for (service = services; service; service = service->next) @@ -541,7 +513,7 @@ int server_preinit(void) int server_init(struct command_context *cmd_ctx) { - int ret = tcl_init(cmd_ctx); + int ret = tcl_init(); if (ERROR_OK != ret) return ret; @@ -563,9 +535,11 @@ int server_quit(void) /* tell the server we want to shut down */ COMMAND_HANDLER(handle_shutdown_command) { + LOG_USER("shutdown command invoked"); + shutdown_openocd = 1; - return ERROR_COMMAND_CLOSE_CONNECTION; + return ERROR_OK; } static const struct command_registration server_command_handlers[] = {