@@ -20,12 +20,9 @@ const std = @import("std");
2020const builtin = @import ("builtin" );
2121
2222const jsruntime = @import ("jsruntime" );
23- const websocket = @import ("websocket" );
2423
2524const Browser = @import ("browser/browser.zig" ).Browser ;
2625const server = @import ("server.zig" );
27- const handler = @import ("handler.zig" );
28- const MaxSize = @import ("msg.zig" ).MaxSize ;
2926
3027const parser = @import ("netsurf" );
3128const apiweb = @import ("apiweb.zig" );
@@ -86,11 +83,9 @@ const CliMode = union(CliModeTag) {
8683 const Server = struct {
8784 execname : []const u8 = undefined ,
8885 args : * std.process.ArgIterator = undefined ,
89- addr : std.net.Address = undefined ,
9086 host : []const u8 = Host ,
9187 port : u16 = Port ,
9288 timeout : u8 = Timeout ,
93- tcp : bool = false , // undocumented TCP mode
9489
9590 // default options
9691 const Host = "127.0.0.1" ;
@@ -160,10 +155,6 @@ const CliMode = union(CliModeTag) {
160155 return printUsageExit (execname , 1 );
161156 }
162157 }
163- if (std .mem .eql (u8 , "--tcp" , opt )) {
164- _server .tcp = true ;
165- continue ;
166- }
167158
168159 // unknown option
169160 if (std .mem .startsWith (u8 , opt , "--" )) {
@@ -186,10 +177,6 @@ const CliMode = union(CliModeTag) {
186177 if (default_mode == .server ) {
187178
188179 // server mode
189- _server .addr = std .net .Address .parseIp4 (_server .host , _server .port ) catch | err | {
190- log .err ("address (host:port) {any}\n " , .{err });
191- return printUsageExit (execname , 1 );
192- };
193180 _server .execname = execname ;
194181 _server .args = args ;
195182 return CliMode { .server = _server };
@@ -247,65 +234,19 @@ pub fn main() !void {
247234
248235 switch (cli_mode ) {
249236 .server = > | opts | {
250-
251- // Stream server
252- const addr = blk : {
253- if (opts .tcp ) {
254- break :blk opts .addr ;
255- } else {
256- const unix_path = "/tmp/lightpanda" ;
257- std .fs .deleteFileAbsolute (unix_path ) catch {}; // file could not exists
258- break :blk try std .net .Address .initUnix (unix_path );
259- }
260- };
261- const socket = server .listen (addr ) catch | err | {
262- log .err ("Server listen error: {any}\n " , .{err });
237+ const address = std .net .Address .parseIp4 (opts .host , opts .port ) catch | err | {
238+ log .err ("address (host:port) {any}\n " , .{err });
263239 return printUsageExit (opts .execname , 1 );
264240 };
265- defer std .posix .close (socket );
266- log .debug ("Server opts: listening internally on {any}..." , .{addr });
267-
268- const timeout = std .time .ns_per_s * @as (u64 , opts .timeout );
269241
270- // loop
271242 var loop = try jsruntime .Loop .init (alloc );
272243 defer loop .deinit ();
273244
274- // TCP server mode
275- if (opts .tcp ) {
276- return server .handle (alloc , & loop , socket , null , timeout );
277- }
278-
279- // start stream server in separate thread
280- var stream = handler.Stream {
281- .ws_host = opts .host ,
282- .ws_port = opts .port ,
283- .addr = addr ,
245+ const timeout = std .time .ns_per_s * @as (u64 , opts .timeout );
246+ server .run (alloc , address , timeout , & loop ) catch | err | {
247+ log .err ("Server error" , .{});
248+ return err ;
284249 };
285- const cdp_thread = try std .Thread .spawn (
286- .{ .allocator = alloc },
287- server .handle ,
288- .{ alloc , & loop , socket , & stream , timeout },
289- );
290-
291- // Websocket server
292- var ws = try websocket .Server (handler .Handler ).init (alloc , .{
293- .port = opts .port ,
294- .address = opts .host ,
295- .max_message_size = MaxSize + 14 , // overhead websocket
296- .max_conn = 1 ,
297- .handshake = .{
298- .timeout = 3 ,
299- .max_size = 1024 ,
300- // since we aren't using hanshake.headers
301- // we can set this to 0 to save a few bytes.
302- .max_headers = 0 ,
303- },
304- });
305- defer ws .deinit ();
306-
307- try ws .listen (& stream );
308- cdp_thread .join ();
309250 },
310251
311252 .fetch = > | opts | {
0 commit comments