summaryrefslogtreecommitdiffhomepage
path: root/plop.c
diff options
context:
space:
mode:
Diffstat (limited to 'plop.c')
-rw-r--r--plop.c59
1 files changed, 6 insertions, 53 deletions
diff --git a/plop.c b/plop.c
index 7e53457..dc6f819 100644
--- a/plop.c
+++ b/plop.c
@@ -1,8 +1,7 @@
+#include "plop.h"
+
#include <errno.h>
#include <fcntl.h>
-#include <lauxlib.h>
-#include <lua.h>
-#include <lualib.h>
#include <netdb.h>
#include <poll.h>
#include <stdio.h>
@@ -12,6 +11,10 @@
#include <sys/types.h>
#include <unistd.h>
+#include <lauxlib.h>
+#include <lua.h>
+#include <lualib.h>
+
#include "http.h"
/// Tries to create, bind and start listening on INET server socket.
@@ -178,53 +181,3 @@ int handle_server(struct pollfd * fdv, int fdc, const int size)
return fdc;
}
-
-/// Standard entry point for the program.
-/// \param argc Argument count
-/// \param argv Argument array
-/// \return Error code
-int main(int argc, char ** argv)
-{
- lua_State * L = luaL_newstate();
- luaL_openlibs(L);
-
- if (3 != argc)
- {
- return 1; // TODO: Document error codes/print usage information
- }
-
- if (LUA_OK != luaL_dofile(L, argv[2]))
- {
- return 2; // TODO: Document error codes/print usage information
- }
-
- static const int max_clients = 200;
-
- int fdc = 0;
- struct request * requests[max_clients];
- struct pollfd fdv[max_clients];
-
- memset(requests, 0, sizeof(requests));
- memset(fdv, 0, sizeof(fdv));
-
- fdv[0].fd = make_server(NULL, argv[1]);
- fdv[0].events = POLLIN;
- fdc++;
-
- if (-1 == fdv[0].fd)
- {
- return 1; // TODO: Document error codes/print usage information
- }
-
- while (0 < fdc && -1 != poll(fdv, fdc, -1))
- {
- int shift_by = 0;
-
- for (int i = 1; i < fdc; ++i)
- {
- shift_by = handle_client(L, &fdv[i], &requests[i], shift_by);
- }
-
- fdc = handle_server(fdv, fdc - shift_by, max_clients);
- }
-}