ret = http_error("404", "Not Found", NULL,
"This is not a valid pathname index.");
} else {
- document = html_query(ctx->t, index, cfg);
+ document = html_query(ctx->t, index, cfg, 1);
if (document) {
ret = http_success("text/html", 1, document);
sfree(document);
int fd, ret;
int authtype;
char *authstring = NULL;
- unsigned long ipaddr;
struct fd *f;
struct sockaddr_in addr;
socklen_t addrlen;
fprintf(stderr, "socket(PF_INET): %s\n", strerror(errno));
exit(1);
}
+ memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
if (!dcfg->address) {
+#ifdef RANDOM_LOCALHOST
+ unsigned long ipaddr;
srand(0L);
ipaddr = 0x7f000000;
ipaddr += (1 + rand() % 255) << 16;
ipaddr += (1 + rand() % 255) << 8;
ipaddr += (1 + rand() % 255);
addr.sin_addr.s_addr = htonl(ipaddr);
+#else
+ addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
+#endif
addr.sin_port = htons(0);
-
} else {
addr.sin_addr.s_addr = inet_addr(dcfg->address);
addr.sin_port = dcfg->port ? htons(dcfg->port) : 0;
}
addrlen = sizeof(addr);
ret = bind(fd, (const struct sockaddr *)&addr, addrlen);
+#ifdef RANDOM_LOCALHOST
if (ret < 0 && errno == EADDRNOTAVAIL && !dcfg->address) {
/*
* Some systems don't like us binding to random weird
addr.sin_port = htons(0);
ret = bind(fd, (const struct sockaddr *)&addr, addrlen);
}
+#endif
if (ret < 0) {
fprintf(stderr, "bind: %s\n", strerror(errno));
exit(1);