Handle Proxy Protocol v2 safely as well.
[users/heiko/exim.git] / test / src / server.c
index 4a48965e27142e5f2df0c353a0999045a9ad72ec..ce55c5c377ac716be3f875b7c683eed0fb56d9b5 100644 (file)
@@ -52,6 +52,7 @@ on all interfaces, unless the option -noipv6 is given. */
 
 #ifndef CS
 # define CS (char *)
+# define CCS (const char *)
 #endif
 
 
@@ -397,7 +398,6 @@ else
       sin4.sin_addr.s_addr = (S_ADDR_TYPE)INADDR_ANY;
       sin4.sin_port = htons(port);
       if (bind(listen_socket[i], (struct sockaddr *)&sin4, sizeof(sin4)) < 0)
-        {
         if (listen_socket[v6n] < 0 || errno != EADDRINUSE)
           {
           printf("IPv4 socket bind() failed: %s\n", strerror(errno));
@@ -408,7 +408,6 @@ else
           close(listen_socket[i]);
           listen_socket[i] = -1;
           }
-        }
       }
     }
   }
@@ -662,7 +661,7 @@ for (count = 0; count < connection_count; count++)
          n = dlen < sizeof(buffer) ? dlen : sizeof(buffer);
          if ((n = read(dup_accept_socket, CS buffer, n)) == 0)
            {
-           printf("Unxpected EOF read from client\n");
+           printf("Unexpected EOF read from client\n");
            s = s->next;
            goto END_OFF;
            }
@@ -672,7 +671,7 @@ for (count = 0; count < connection_count; count++)
        while (dlen-- > 0)
          if (fgetc(in) == EOF)
            {
-           printf("Unxpected EOF read from client\n");
+           printf("Unexpected EOF read from client\n");
            s = s->next;
            goto END_OFF;
            }
@@ -728,7 +727,7 @@ for (count = 0; count < connection_count; count++)
        alarm(0);
        n += offset;
 
-       printit(buffer, n);
+       printit(CS buffer, n);
 
        if (data) do
          {
@@ -774,8 +773,10 @@ for (count = 0; count < connection_count; count++)
          }
        }
 
-       if (sscanf(buffer, "<Content-length: %d", &content_length.left)) content_length.in_use = TRUE;
-       if (content_length.in_use && content_length.left <= 0) shutdown(dup_accept_socket, SHUT_RD);
+       if (sscanf(CCS buffer, "<Content-length: %d", &content_length.left))
+                 content_length.in_use = TRUE;
+       if (content_length.in_use && content_length.left <= 0)
+         shutdown(dup_accept_socket, SHUT_RD);
       }
     }