Browse Source

server: add server_preinit which is called before config file is parsed.

This fixes the issue under native win32 of the socket interface not being
enabled (via WSAStartup) before init is called from a script.

Signed-off-by: Spencer Oliver <ntfreak@users.sourceforge.net>
tags/v0.4.0-rc1
Spencer Oliver 12 years ago
parent
commit
08589462ad
3 changed files with 14 additions and 3 deletions
  1. +3
    -2
      src/openocd.c
  2. +10
    -1
      src/server/server.c
  3. +1
    -0
      src/server/server.h

+ 3
- 2
src/openocd.c View File

@@ -62,7 +62,6 @@ COMMAND_HANDLER(handle_version_command)
return ERROR_OK;
}


static int log_target_callback_event_handler(struct target *target, enum target_event event, void *priv)
{
switch (event)
@@ -255,13 +254,15 @@ int openocd_main(int argc, char *argv[])
"http://openocd.berlios.de/doc/doxygen/bugs.html"
"\n");


command_context_mode(cmd_ctx, COMMAND_CONFIG);
command_set_output_handler(cmd_ctx, configuration_output_handler, NULL);

if (parse_cmdline_args(cmd_ctx, argc, argv) != ERROR_OK)
return EXIT_FAILURE;

if (server_preinit() != ERROR_OK)
return EXIT_FAILURE;

ret = parse_config_file(cmd_ctx);
if (ret != ERROR_OK)
return EXIT_FAILURE;


+ 10
- 1
src/server/server.c View File

@@ -487,8 +487,12 @@ void sig_handler(int sig) {
}
#endif

int server_init(struct command_context *cmd_ctx)
int server_preinit(void)
{
/* this currently only calls WSAStartup on native win32 systems
* before any socket operations are performed.
* This is an issue if you call init in your config script */

#ifdef _WIN32
WORD wVersionRequested;
WSADATA wsaData;
@@ -518,6 +522,11 @@ int server_init(struct command_context *cmd_ctx)
signal(SIGABRT, sig_handler);
#endif

return ERROR_OK;
}

int server_init(struct command_context *cmd_ctx)
{
int ret = tcl_init(cmd_ctx);
if (ERROR_OK != ret)
return ret;


+ 1
- 0
src/server/server.h View File

@@ -74,6 +74,7 @@ int add_service(char *name, enum connection_type type, unsigned short port,
input_handler_t in_handler, connection_closed_handler_t close_handler,
void *priv);

int server_preinit(void);
int server_init(struct command_context *cmd_ctx);
int server_quit(void);



Loading…
Cancel
Save