about summary refs log tree commit diff stats
path: root/src/loader
diff options
context:
space:
mode:
authorbptato <nincsnevem662@gmail.com>2024-10-20 00:51:08 +0200
committerbptato <nincsnevem662@gmail.com>2024-10-20 01:27:28 +0200
commitddb0ba9eb1454b15ba6db7c109ce23c448ddd66e (patch)
treec185aaa70295c99c5e68fc2c553a6447b2aa78b9 /src/loader
parent1e23aefe5012af0f4dcbae3dc2d4e517948db6e6 (diff)
downloadchawan-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.nim10
-rw-r--r--src/loader/loaderhandle.nim1
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