File tree 1 file changed +7
-4
lines changed
1 file changed +7
-4
lines changed Original file line number Diff line number Diff line change 54
54
domain* : Domain
55
55
numThreads: int
56
56
loggers: seq [Logger ]
57
+ reusePort* : bool
58
+ # when false, will fail if --threads is passed or if 2
59
+ # processes bind to same address/port
57
60
58
61
HttpBeastDefect * = ref object of Defect
59
62
@@ -63,14 +66,14 @@ const
63
66
proc initSettings * (port: Port = Port (8080 ),
64
67
bindAddr: string = " " ,
65
68
numThreads: int = 0 ,
66
- domain = Domain .AF_INET ): Settings =
67
-
69
+ domain = Domain .AF_INET , reusePort = true ): Settings =
68
70
Settings (
69
71
port: port,
70
72
bindAddr: bindAddr,
71
73
domain: domain,
72
74
numThreads: numThreads,
73
- loggers: getHandlers ()
75
+ loggers: getHandlers (),
76
+ reusePort: reusePort,
74
77
)
75
78
76
79
proc initData (fdKind: FdKind , ip = " " ): Data =
@@ -317,7 +320,7 @@ proc eventLoop(params: (OnRequest, Settings)) =
317
320
318
321
let server = newSocket (settings.domain)
319
322
server.setSockOpt (OptReuseAddr , true )
320
- server.setSockOpt (OptReusePort , true )
323
+ server.setSockOpt (OptReusePort , settings.reusePort )
321
324
server.bindAddr (settings.port, settings.bindAddr)
322
325
server.listen ()
323
326
server.getFd ().setBlocking (false )
You can’t perform that action at this time.
0 commit comments