diff options
author | nirav <nirav@teisuu.com> | 2019-09-21 13:30:12 +0000 |
---|---|---|
committer | nirav <nirav@teisuu.com> | 2019-09-21 13:30:12 +0000 |
commit | 1c79bf5f79365739fd07f08e0d21e973537fc5ec (patch) | |
tree | 3deb33f43fb15e63eeb8814ee616a78765595628 /main.c | |
parent | d5f4022408249c5a513ae795b7b360854bd75a6c (diff) | |
download | gopherd-master.tar.gz gopherd-master.zip |
Diffstat (limited to 'main.c')
-rw-r--r-- | main.c | 33 |
1 files changed, 16 insertions, 17 deletions
@@ -1,5 +1,3 @@ -#define _POSIX_C_SOURCE 200112L - #include <sys/ioctl.h> #include <sys/socket.h> #include <sys/types.h> @@ -41,6 +39,7 @@ create_server(const char *port) perror("getaddrinfo"); return -1; } + for (p = res; p != NULL; p = p->ai_next) { if ((fd = socket(p->ai_family, p->ai_socktype, p->ai_protocol)) == -1) { @@ -94,9 +93,9 @@ accept_connection(int s_fd) struct sockaddr_storage sa; socklen_t salen; char host[HOSTMAX]; - int c_fd; + int cfd; - if ((c_fd = accept(s_fd, (struct sockaddr *) & sa, &salen)) == -1) { + if ((cfd = accept(s_fd, (struct sockaddr *) & sa, &salen)) == -1) { if (errno != EWOULDBLOCK || errno != EAGAIN) { perror("accept"); exit(1); @@ -110,17 +109,17 @@ accept_connection(int s_fd) } logmsg(LOG_INFO, "connection accepted from %s", host); - return c_fd; + return cfd; } static void -handle_client(int c_fd) +handle_client(int cfd) { int n; char buf[BUFSIZE]; char *lf; - n = recv(c_fd, &buf, BUFSIZE - 1, 0); + n = recv(cfd, &buf, BUFSIZE - 1, 0); switch (n) { case -1: if (errno != EWOULDBLOCK || errno != EAGAIN) { @@ -139,20 +138,20 @@ handle_client(int c_fd) *lf = '\0'; logmsg(LOG_INFO, "path: %s", buf); - handle_path(c_fd, buf); + handle_path(cfd, buf); } - close(c_fd); + close(cfd); } static void -main_loop(int s_fd) +main_loop(int sfd) { int i, rc, end_server = 0; - int c_fd, nfds = 1, curr_size = 0; + int cfd, nfds = 1, curr_size = 0; struct pollfd pfds[OPEN_MAX]; memset(pfds, 0, sizeof(pfds)); - pfds[0].fd = s_fd; + pfds[0].fd = sfd; pfds[0].events = POLLIN; do { @@ -175,15 +174,15 @@ main_loop(int s_fd) end_server = 1; break; } - if (pfds[i].fd == s_fd) { + if (pfds[i].fd == sfd) { do { - c_fd = accept_connection(s_fd); - if (c_fd != -1) { - pfds[nfds].fd = c_fd; + cfd = accept_connection(sfd); + if (cfd != -1) { + pfds[nfds].fd = cfd; pfds[nfds].events = POLLIN; nfds++; } - } while (c_fd != -1); + } while (cfd != -1); } else { handle_client(pfds[i].fd); pfds[i].fd = -1; |