]> git.sur5r.net Git - openocd/blobdiff - src/server/server.c
export find_file function
[openocd] / src / server / server.c
index 33bf00cf218907256daa8b962ae5ab0c8aa9fc2f..fb003624e6507d9fdaa2f1c97fab13edc0aa3b36 100644 (file)
@@ -52,9 +52,7 @@ int add_connection(service_t *service, command_context_t *cmd_ctx)
        unsigned int address_size;
        connection_t *c, **p;
        int retval;
-#ifndef _WIN32
        int flag=1;
-#endif
        
        c = malloc(sizeof(connection_t));
        c->fd = -1;
@@ -66,34 +64,17 @@ int add_connection(service_t *service, command_context_t *cmd_ctx)
        c->next = NULL;
 
        address_size = sizeof(c->sin);
-#ifndef _WIN32
-       int segsize=65536;
-       setsockopt(service->fd, IPPROTO_TCP, TCP_MAXSEG,  &segsize, sizeof(int));
-       int window_size = 128 * 1024;   
-
-       /* These setsockopt()s must happen before the accept() */
-
-       setsockopt(service->fd, SOL_SOCKET, SO_SNDBUF,
-                (char *) &window_size, sizeof(window_size));
-
-       setsockopt(service->fd, SOL_SOCKET, SO_RCVBUF,
-                (char *) &window_size, sizeof(window_size));
        
-#endif
        c->fd = accept(service->fd, (struct sockaddr *)&service->sin, &address_size);
-#ifndef _WIN32
-       // This increases performance dramatically for e.g. GDB load which
-       // does not have a sliding window protocol.
-    retval=setsockopt(c->fd,            /* socket affected */
-                            IPPROTO_TCP,     /* set option at TCP level */
-                            TCP_NODELAY,     /* name of option */
-                            (char *) &flag,  /* the cast is historical
-                                                    cruft */
-                            sizeof(int));    /* length of option value */
-    setsockopt(c->fd, IPPROTO_TCP, TCP_MAXSEG,  &segsize, sizeof(int));
-#endif 
-                               
-                               
+       
+       /* This increases performance dramatically for e.g. GDB load which
+        * does not have a sliding window protocol. */
+       retval=setsockopt(c->fd,        /* socket affected */
+                       IPPROTO_TCP,            /* set option at TCP level */
+                       TCP_NODELAY,            /* name of option */
+                       (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);
        if ((retval = service->new_connection(c)) == ERROR_OK)
        {
@@ -184,6 +165,19 @@ int add_service(char *name, enum connection_type type, unsigned short port, int
                exit(-1);
        }
        
+#ifndef _WIN32
+       int segsize=65536;
+       setsockopt(c->fd, IPPROTO_TCP, TCP_MAXSEG,  &segsize, sizeof(int));
+#endif
+       int window_size = 128 * 1024;   
+
+       /* These setsockopt()s must happen before the listen() */
+       
+       setsockopt(c->fd, SOL_SOCKET, SO_SNDBUF,
+               (char *)&window_size, sizeof(window_size));
+       setsockopt(c->fd, SOL_SOCKET, SO_RCVBUF,
+               (char *)&window_size, sizeof(window_size));
+       
        if (listen(c->fd, 1) == -1)
        {
                LOG_ERROR("couldn't listen on socket: %s", strerror(errno));
@@ -468,7 +462,6 @@ int server_init()
        signal(SIGBREAK, sig_handler);
        signal(SIGABRT, sig_handler);
 #endif
-
        
        return ERROR_OK;
 }
@@ -500,5 +493,3 @@ int handle_shutdown_command(struct command_context_s *cmd_ctx, char *cmd, char *
 
        return ERROR_COMMAND_CLOSE_CONNECTION;
 }
-
-