server: add server_preinit which is called before config file is parsed.
authorSpencer Oliver <ntfreak@users.sourceforge.net>
Thu, 10 Dec 2009 14:31:28 +0000 (14:31 +0000)
committerSpencer Oliver <ntfreak@users.sourceforge.net>
Fri, 11 Dec 2009 10:26:15 +0000 (10:26 +0000)
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>
src/openocd.c
src/server/server.c
src/server/server.h

index 8cb86746bf51e61fd5f5a5b7cea4ff3d75e4d9d4..1105d2a4366a0d8c177eae42a67a4ecf307bdc6f 100644 (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;
index 2f4bfb0043dc393da9247644d5d80b9bdbc3b563..75a6bed08be6dcb48532c4b7b10561e9031a5877 100644 (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;
index be1afbe4083d9cb8637453ed39eac5246c87bb4a..a25920ed0d6495f6a759b0ed7820aa52c618a5c8 100644 (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);
 

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)