#include <netinet/ip.h>
#ifdef HAVE_NETINET_IP_VAR_H
-#include <netinet/ip_var.h>
+# include <netinet/ip_var.h>
#endif
#include <netdb.h>
#ifndef CS
# define CS (char *)
+# define CCS (const char *)
#endif
char line[1];
} line;
+typedef unsigned BOOL;
+#define FALSE 0
+#define TRUE 1
+
/*************************************************
* SIGALRM handler - crash out *
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));
close(listen_socket[i]);
listen_socket[i] = -1;
}
- }
}
}
}
for (count = 0; count < connection_count; count++)
{
-
struct {
int left;
- int in_use;
- } content_length = { .left = 0, .in_use = 0 };
+ BOOL in_use;
+ } content_length = { 0, FALSE };
alarm(timeout);
if (port <= 0)
if (listen_socket[i] > max_socket) max_socket = listen_socket[i];
}
- lcount = select(max_socket + 1, &select_listen, NULL, NULL, NULL);
- if (lcount < 0)
+ if ((lcount = select(max_socket + 1, &select_listen, NULL, NULL, NULL)) < 0)
{
printf("Select failed\n");
fflush(stdout);
accept_socket = -1;
for (i = 0; i < skn; i++)
- {
if (listen_socket[i] > 0 && FD_ISSET(listen_socket[i], &select_listen))
{
accept_socket = accept(listen_socket[i],
FD_CLR(listen_socket[i], &select_listen);
break;
}
- }
}
alarm(0);
doesn't work for other tests (e.g. ident tests) so we have explicit '<' and
'>' flags for input and output as well as the defaults. */
- for (; s != NULL; s = s->next)
+ for (; s; s = s->next)
{
char *ss = s->line;
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;
}
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;
}
alarm(0);
n += offset;
- printit(buffer, n);
+ printit(CS buffer, n);
if (data) do
{
n = (read(dup_accept_socket, &c, 1) == 1 && c == '.');
if (content_length.in_use) content_length.left--;
while (c != '\n' && read(dup_accept_socket, &c, 1) == 1)
- {
if (content_length.in_use) content_length.left--;
- }
} while (!n);
else if (memcmp(ss, buffer, n) != 0)
{
goto END_OFF;
}
alarm(0);
- n = (int)strlen(CS buffer);
+ n = strlen(CS buffer);
if (content_length.in_use) content_length.left -= (n - offset);
while (n > 0 && isspace(buffer[n-1])) n--;
buffer[n] = 0;
}
}
- if (sscanf(buffer, "<Content-length: %d", &content_length.left)) content_length.in_use = 1;
- 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);
}
}
if (s == NULL) printf("End of script\n");
-if (sockname != NULL) unlink(sockname);
+if (sockname) unlink(sockname);
exit(0);
}