aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorSpencer Oliver <ntfreak@users.sourceforge.net>2009-12-10 14:31:28 +0000
committerSpencer Oliver <ntfreak@users.sourceforge.net>2009-12-11 10:26:15 +0000
commit08589462adf3f81b480faacecb8352428212a2f5 (patch)
tree89d250156b25f36e5aa4d5d45246ef79e08738fd /src/server
parent6b9c14e9085b5620c20e9cadffe1f5e64f09a0c6 (diff)
downloadriscv-openocd-08589462adf3f81b480faacecb8352428212a2f5.zip
riscv-openocd-08589462adf3f81b480faacecb8352428212a2f5.tar.gz
riscv-openocd-08589462adf3f81b480faacecb8352428212a2f5.tar.bz2
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>
Diffstat (limited to 'src/server')
-rw-r--r--src/server/server.c11
-rw-r--r--src/server/server.h1
2 files changed, 11 insertions, 1 deletions
diff --git a/src/server/server.c b/src/server/server.c
index 2f4bfb0..75a6bed 100644
--- a/src/server/server.c
+++ b/src/server/server.c
@@ -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;
diff --git a/src/server/server.h b/src/server/server.h
index be1afbe..a25920e 100644
--- a/src/server/server.h
+++ b/src/server/server.h
@@ -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);