1
0
mirror of https://github.com/Ylianst/MeshAgent synced 2026-01-03 09:03:48 +00:00

1. Added 'close' to net.server

2. updated message-box for MacOS (In Progress)
This commit is contained in:
Bryan Roe
2019-05-23 15:41:00 -07:00
parent 1a1ba0084e
commit 2895768ebf
2 changed files with 243 additions and 1 deletions

View File

@@ -1288,6 +1288,35 @@ duk_ret_t ILibDuktape_net_server_address(duk_context *ctx)
return(1);
}
duk_ret_t ILibDuktape_net_server_close(duk_context *ctx)
{
int nargs = duk_get_top(ctx);
duk_push_this(ctx);
if (nargs > 0)
{
duk_get_prop_string(ctx, -1, "once"); // [server][once]
duk_dup(ctx, -2); // [server][once][this]
duk_push_string(ctx, "close"); // [server][once][this][close]
duk_dup(ctx, 0); // [server][once][this][close][callback]
duk_call_method(ctx, 2); duk_pop(ctx); // [server]
}
ILibDuktape_net_server *server = (ILibDuktape_net_server*)Duktape_GetBufferProperty(ctx, -1, ILibDuktape_net_Server_buffer);
if (server != NULL && server->server != NULL)
{
if (!ILibIsChainBeingDestroyed(Duktape_GetChain(ctx)))
{
ILibAsyncServerSocket_RemoveFromChain(server->server);
server->server = NULL;
ILibDuktape_EventEmitter_SetupEmit(ctx, server->self, "close"); // [emit][this][close]
duk_call_method(ctx, 1);
}
}
return(0);
}
duk_ret_t ILibDuktape_net_createServer(duk_context *ctx)
{
int nargs = duk_get_top(ctx);
@@ -1314,6 +1343,7 @@ duk_ret_t ILibDuktape_net_createServer(duk_context *ctx)
server->emitter = ILibDuktape_EventEmitter_Create(ctx);
ILibDuktape_EventEmitter_CreateEventEx(server->emitter, "close");
ILibDuktape_EventEmitter_CreateEventEx(server->emitter, "connection");
ILibDuktape_CreateProperty_InstanceMethod(ctx, "close", ILibDuktape_net_server_close, DUK_VARARGS);
#ifndef MICROSTACK_NOTLS
if (isTLS)
{