diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/bun.js/api/server.zig | 7 | ||||
-rw-r--r-- | src/deps/uws.zig | 9 |
2 files changed, 11 insertions, 5 deletions
diff --git a/src/bun.js/api/server.zig b/src/bun.js/api/server.zig index 029ce6533..62d8f602a 100644 --- a/src/bun.js/api/server.zig +++ b/src/bun.js/api/server.zig @@ -408,10 +408,6 @@ pub const ServerConfig = struct { } } - if (args.port == 0) { - JSC.throwInvalidArguments("Invalid port: must be > 0", .{}, global, exception); - } - if (args.base_uri.len > 0) { args.base_url = URL.parse(args.base_uri); if (args.base_url.hostname.len == 0) { @@ -4308,7 +4304,8 @@ pub fn NewServer(comptime ssl_enabled_: bool, comptime debug_mode_: bool) type { } pub fn getPort(this: *ThisServer) JSC.JSValue { - return JSC.JSValue.jsNumber(this.config.port); + var listener = this.listener orelse return JSC.JSValue.jsNumber(this.config.port); + return JSC.JSValue.jsNumber(listener.getLocalPort()); } pub fn getPendingRequests(this: *ThisServer) JSC.JSValue { diff --git a/src/deps/uws.zig b/src/deps/uws.zig index 6925fce19..73eb72649 100644 --- a/src/deps/uws.zig +++ b/src/deps/uws.zig @@ -987,6 +987,9 @@ pub const ListenSocket = opaque { pub fn close(this: *ListenSocket, ssl: bool) void { us_listen_socket_close(@boolToInt(ssl), this); } + pub fn getLocalPort(this: *ListenSocket, ssl: bool) i32 { + return us_socket_local_port(@boolToInt(ssl), this); + } }; extern fn us_listen_socket_close(ssl: i32, ls: *ListenSocket) void; extern fn uws_app_close(ssl: i32, app: *uws_app_s) void; @@ -1058,6 +1061,12 @@ pub fn NewApp(comptime ssl: bool) type { } return us_listen_socket_close(ssl_flag, @ptrCast(*uws.ListenSocket, this)); } + pub inline fn getLocalPort(this: *ThisApp.ListenSocket) i32 { + if (comptime is_bindgen) { + unreachable; + } + return us_socket_local_port(ssl_flag, @ptrCast(*uws.Socket, this)); + } }; pub fn get( |