diff options
author | Juan Manuel Tomás <jtomas1815@gmail.com> | 2020-07-17 23:31:57 -0300 |
---|---|---|
committer | Juan Manuel Tomás <jtomas1815@gmail.com> | 2020-07-17 23:31:57 -0300 |
commit | e9122394f97d54a6b28b4dd52db24e22cb1ab340 (patch) | |
tree | aefb94d3c11daca71b52757a2d52a414a7a8f5ab /src/jet.cpp | |
parent | d608bef678fa97b3af910fa62598c55f33650825 (diff) | |
download | jet-e9122394f97d54a6b28b4dd52db24e22cb1ab340.tar.gz jet-e9122394f97d54a6b28b4dd52db24e22cb1ab340.zip |
Move main files into subdirectories
Diffstat (limited to 'src/jet.cpp')
-rw-r--r-- | src/jet.cpp | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/src/jet.cpp b/src/jet.cpp deleted file mode 100644 index 6cc4470..0000000 --- a/src/jet.cpp +++ /dev/null @@ -1,72 +0,0 @@ -#include <stdio.h> -#include <stdint.h> -#include <string.h> -#include <stdlib.h> - -#include <sys/types.h> -#include <sys/stat.h> -#include <fcntl.h> -#include <sys/socket.h> -#include <netinet/ip.h> -#include <arpa/inet.h> -#include <unistd.h> -#include <sys/epoll.h> - -#include "common/ipc.cpp" -#include "server/page.cpp" -#include "server/buffer.cpp" -#include "server/point.cpp" -#include "server/client.cpp" - -#define PORT 6969 -#define MAX_EVENTS 10 - -int create_listener() { - int s = socket(AF_INET, SOCK_STREAM, 0); - sockaddr_in addr = { AF_INET, htons(PORT), htonl(INADDR_LOOPBACK)}; - int opt = 1; - setsockopt(s, SOL_SOCKET, SO_REUSEADDR | SO_REUSEPORT, &opt, sizeof(opt)); - bind(s, (sockaddr *) &addr, sizeof(sockaddr_in)); - listen(s, MAX_EVENTS); - return s; -} - -int main() { - Buffer scratch("scratch"); - scratch.read_file("test.txt"); - - int listener = create_listener(); - - int epollfd = epoll_create1(0); - - epoll_event ev; - ev.events = EPOLLIN; - ev.data.fd = listener; - epoll_ctl(epollfd, EPOLL_CTL_ADD, listener, &ev); - - epoll_event events[MAX_EVENTS]; - Client *clients[1024] = {}; - - while (true) { - int nfds = epoll_wait(epollfd, events, MAX_EVENTS, -1); - - for (int i = 0; i < nfds; i++) { - if (events[i].data.fd == listener) { - int clientfd = accept(listener, 0, 0); - ev.events = EPOLLIN | EPOLLET; - ev.data.fd = clientfd; - if (clients[clientfd]) { - delete clients[clientfd]; - } - Client *c = new Client(scratch); - c->sockfd = clientfd; - clients[clientfd] = c; - epoll_ctl(epollfd, EPOLL_CTL_ADD, clientfd, &ev); - } else { - clients[events[i].data.fd]->parse_message(); - } - } - } - - close(listener); -} |