e7dc81cfad
Forward-declare pledge() and unveil() on OpenBSD
...
These are declared in unistd.h, but since _POSIX_SOURCE is defined
they are not visible. Conditionally duplicating the declarations here
seems less likely to bite me in the ass later on than making a bunch
of other BSD-specific things visible.
2022-10-14 19:14:27 +01:00
1491d79b98
Use in6addr_loopback instead of IN6ADDR_LOOPBACK_INIT
...
The latter is unavailable on OpenBSD with _POSIX_SOURCE defined
2022-10-14 19:11:18 +01:00
ae35d05390
Define _POSIX_SOURCE before includes
2022-10-14 18:54:30 +01:00
f3c7f9e20a
Use pledge() and unveil() on OpenBSD
2022-10-14 17:36:40 +01:00
c200de7dc1
Register signal handler using sigaction() instead of signal()
2022-10-14 17:33:21 +01:00
7666e3a99a
Remove signed/unsigned comparisons
2022-10-14 16:25:59 +01:00
4f9353ad86
Remove superfluous comment
2022-10-14 11:41:52 +01:00
076bda3dc3
Close files after sending
2022-10-14 11:41:43 +01:00
0311c858c3
Send incomplete response instead of dropping request for most errors
2022-10-14 11:39:36 +01:00
58c7b6feab
Terminate and send response outside of file/dir branch
2022-10-14 11:33:31 +01:00
06d92b3d25
Handle file requests
2022-10-14 11:24:39 +01:00
5c21a0a8e2
Get directory response code to work with full resource path
2022-10-14 10:38:12 +01:00
543858d01d
Test whether requested resource is a file or directory
2022-10-14 10:38:12 +01:00
a3cdde2c34
Construct full path of requested resource
...
Also detects .. in the selector string, as this could be used to see
files outside of srvroot, otherwise.
2022-10-14 10:27:02 +01:00
f6871a7922
Remove trailing slash from srvroot, if present
2022-10-14 10:27:02 +01:00
5c03ed950f
Send srvroot listing for empty selector
2022-10-14 10:27:02 +01:00
fa0dbed44c
Write an empty response to clients
2022-10-14 10:27:02 +01:00
1a13289da9
Improve error handling
2022-10-14 10:27:02 +01:00
f7583f538e
Read selector from client
2022-10-14 10:27:02 +01:00
2ab4966773
Add explanatory comments above each major block in main.c
2022-10-13 12:52:27 +01:00
88642c0c3f
Make accept() error handling a little neater
2022-10-13 12:09:35 +01:00
21de6cd3e7
Accept incoming connections inside main loop
2022-10-13 12:07:24 +01:00
b39e263499
Initialize socket before main loop
2022-10-13 12:06:25 +01:00
fffd1c3fff
Add main loop and signal handler
2022-10-13 11:57:29 +01:00
948c3971ee
Create project structure
2022-10-12 15:24:21 +01:00