commit - aff8d1901084bbfd81f4a6335dbed70a02b930fb
commit + 120381c93d65a860f38bc5e1541b1c00ff959124
blob - 8ab175cccb88092aec202bd08a62cbbc524e091c
blob + f71319a0b3bc474f5b44d04691a64f7bd6814680
--- gmid.c
+++ gmid.c
const char *dir;
int dirfd, logfd;
int cgi;
+int connected_clients;
+void siginfo_handler(int);
+
char *url_after_proto(char*);
char *url_start_of_request(char*);
int url_trim(struct client*, char*);
void usage(const char*);
+void
+siginfo_handler(int sig)
+{
+ (void)sig;
+}
+
char *
url_after_proto(char *url)
{
clients[i].af = AF_INET;
clients[i].addr = addr.sin_addr;
+ connected_clients++;
return;
}
}
return;
}
+ connected_clients--;
+
tls_free(c->ctx);
c->ctx = NULL;
fds[0].fd = sock;
for (;;) {
- if ((todo = poll(fds, MAX_USERS, INFTIM)) == -1)
+ if ((todo = poll(fds, MAX_USERS, INFTIM)) == -1) {
+ if (errno == EINTR) {
+ warnx("connected clients: %d", connected_clients);
+ continue;
+ }
err(1, "poll");
+ }
for (i = 0; i < MAX_USERS; i++) {
assert(i < MAX_USERS);
signal(SIGPIPE, SIG_IGN);
signal(SIGCHLD, SIG_IGN);
+#ifdef SIGINFO
+ signal(SIGINFO, siginfo_handler);
+#endif
+ signal(SIGUSR2, siginfo_handler);
+
+ connected_clients = 0;
+
dir = "docs/";
logfd = 2; /* stderr */
cgi = 0;