#endif
-service_t *services = NULL;
+struct service *services = NULL;
/* shutdown_openocd == 1: exit the main event loop, and quit the debugger */
static int shutdown_openocd = 0;
-int handle_shutdown_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
/* set when using pipes rather than tcp */
int server_use_pipes = 0;
-int add_connection(service_t *service, command_context_t *cmd_ctx)
+int add_connection(struct service *service, command_context_t *cmd_ctx)
{
socklen_t address_size;
- connection_t *c, **p;
+ struct connection *c, **p;
int retval;
int flag = 1;
- c = malloc(sizeof(connection_t));
+ c = malloc(sizeof(struct connection));
c->fd = -1;
memset(&c->sin, 0, sizeof(c->sin));
c->cmd_ctx = copy_command_context(cmd_ctx);
return ERROR_OK;
}
-int remove_connection(service_t *service, connection_t *connection)
+int remove_connection(struct service *service, struct connection *connection)
{
- connection_t **p = &service->connections;
- connection_t *c;
+ struct connection **p = &service->connections;
+ struct connection *c;
/* find connection */
while ((c = *p))
int add_service(char *name, enum connection_type type, unsigned short port, int max_connections, new_connection_handler_t new_connection_handler, input_handler_t input_handler, connection_closed_handler_t connection_closed_handler, void *priv)
{
- service_t *c, **p;
+ struct service *c, **p;
int so_reuseaddr_option = 1;
- c = malloc(sizeof(service_t));
+ c = malloc(sizeof(struct service));
c->name = strdup(name);
c->type = type;
int remove_service(unsigned short port)
{
- service_t **p = &services;
- service_t *c;
+ struct service **p = &services;
+ struct service *c;
/* find service */
while ((c = *p))
int remove_services(void)
{
- service_t *c = services;
+ struct service *c = services;
/* loop service */
while (c)
{
- service_t *next = c->next;
+ struct service *next = c->next;
if (c->name)
free(c->name);
int server_loop(command_context_t *command_context)
{
- service_t *service;
+ struct service *service;
/* used in select() */
fd_set read_fds;
if (service->connections)
{
- connection_t *c;
+ struct connection *c;
for (c = service->connections; c; c = c->next)
{
/* handle activity on connections */
if (service->connections)
{
- connection_t *c;
+ struct connection *c;
for (c = service->connections; c;)
{
{
if ((retval = service->input(c)) != ERROR_OK)
{
- connection_t *next = c->next;
+ struct connection *next = c->next;
if (service->type == CONNECTION_PIPE)
{
/* if connection uses a pipe then shutdown openocd on error */
return ERROR_OK;
}
-int server_register_commands(command_context_t *context)
+/* tell the server we want to shut down */
+COMMAND_HANDLER(handle_shutdown_command)
{
- register_command(context, NULL, "shutdown", handle_shutdown_command,
- COMMAND_ANY, "shut the server down");
+ shutdown_openocd = 1;
- return ERROR_OK;
+ return ERROR_COMMAND_CLOSE_CONNECTION;
}
-/* tell the server we want to shut down */
-int handle_shutdown_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+int server_register_commands(command_context_t *context)
{
- shutdown_openocd = 1;
+ register_command(context, NULL, "shutdown",
+ handle_shutdown_command, COMMAND_ANY,
+ "shut the server down");
- return ERROR_COMMAND_CLOSE_CONNECTION;
+ return ERROR_OK;
}
-int server_port_command(struct command_context_s *cmd_ctx,
- char *cmd, char **args, int argc, unsigned short *out)
+
+SERVER_PORT_COMMAND()
{
switch (argc) {
case 0: