diff options
author | bptato <nincsnevem662@gmail.com> | 2024-10-20 00:51:08 +0200 |
---|---|---|
committer | bptato <nincsnevem662@gmail.com> | 2024-10-20 01:27:28 +0200 |
commit | ddb0ba9eb1454b15ba6db7c109ce23c448ddd66e (patch) | |
tree | c185aaa70295c99c5e68fc2c553a6447b2aa78b9 /src/loader | |
parent | 1e23aefe5012af0f4dcbae3dc2d4e517948db6e6 (diff) | |
download | chawan-ddb0ba9eb1454b15ba6db7c109ce23c448ddd66e.tar.gz |
dynstream, serversocket: use posix instead of nativesockets
nativesockets is a wrapper over posix and winapi, but we don't support winapi, so we can just fall back to PosixStream instead. SocketStream remains as a constraint over PosixStream to allow sendFileHandle/recvFileHandle. As a nice side effect, we can drop some allowed syscalls from the seccomp filter.
Diffstat (limited to 'src/loader')
-rw-r--r-- | src/loader/loader.nim | 10 | ||||
-rw-r--r-- | src/loader/loaderhandle.nim | 1 |
2 files changed, 4 insertions, 7 deletions
diff --git a/src/loader/loader.nim b/src/loader/loader.nim index 64fc6899..8033f896 100644 --- a/src/loader/loader.nim +++ b/src/loader/loader.nim @@ -21,8 +21,6 @@ # addCacheFile commands there.) import std/deques -import std/nativesockets -import std/net import std/options import std/os import std/posix @@ -1176,8 +1174,8 @@ proc initLoaderContext(fd: cint; config: LoaderConfig): LoaderContext = gctx = ctx let myPid = getCurrentProcessId() # we don't capsicumize loader, so -1 is appropriate here - ctx.ssock = initServerSocket(config.sockdir, -1, myPid, blocking = true) - let sfd = int(ctx.ssock.sock.getFd()) + ctx.ssock = newServerSocket(config.sockdir, -1, myPid) + let sfd = int(ctx.ssock.fd) ctx.pollData.register(sfd, POLLIN) if sfd >= ctx.handleMap.len: ctx.handleMap.setLen(sfd + 1) @@ -1217,7 +1215,7 @@ proc initLoaderContext(fd: cint; config: LoaderConfig): LoaderContext = ctx.clientData[pid] = ctx.pagerClient stream.sclose() # unblock main socket - ctx.ssock.sock.getFd().setBlocking(false) + ctx.ssock.setBlocking(false) # for CGI putEnv("SERVER_SOFTWARE", "Chawan") putEnv("SERVER_PROTOCOL", "HTTP/1.0") @@ -1293,7 +1291,7 @@ proc finishCycle(ctx: LoaderContext; unregRead: var seq[InputHandle]; proc runFileLoader*(fd: cint; config: LoaderConfig) = var ctx = initLoaderContext(fd, config) - let fd = int(ctx.ssock.sock.getFd()) + let fd = int(ctx.ssock.fd) while ctx.alive: ctx.pollData.poll(-1) var unregRead: seq[InputHandle] = @[] diff --git a/src/loader/loaderhandle.nim b/src/loader/loaderhandle.nim index 4813d55d..324e9f49 100644 --- a/src/loader/loaderhandle.nim +++ b/src/loader/loaderhandle.nim @@ -1,5 +1,4 @@ import std/deques -import std/net import std/posix import std/tables |