mirror of
https://github.com/Ylianst/MeshAgent
synced 2025-12-22 03:03:18 +00:00
Updated metadata for macos message-box, and updated cleanup for net.Server for ipc
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -123,6 +123,7 @@ typedef struct ILibDuktape_net_WindowsIPC
|
|||||||
#define ILibDuktape_TLSSocket2SecureContext "\xFF_TLSSocket2SecureContext"
|
#define ILibDuktape_TLSSocket2SecureContext "\xFF_TLSSocket2SecureContext"
|
||||||
#define ILibDuktape_IPAddress_SockAddr "\xFF_IPAddress_SockAddr"
|
#define ILibDuktape_IPAddress_SockAddr "\xFF_IPAddress_SockAddr"
|
||||||
#define ILibDuktape_net_server_metadata "\xFF_net_server_metadata"
|
#define ILibDuktape_net_server_metadata "\xFF_net_server_metadata"
|
||||||
|
#define ILibDuktape_net_server_IPCPath "\xFF_net_server_IPCPath"
|
||||||
|
|
||||||
extern void ILibAsyncServerSocket_RemoveFromChain(ILibAsyncServerSocket_ServerModule serverModule);
|
extern void ILibAsyncServerSocket_RemoveFromChain(ILibAsyncServerSocket_ServerModule serverModule);
|
||||||
|
|
||||||
@@ -1269,6 +1270,7 @@ duk_ret_t ILibDuktape_net_server_listen(duk_context *ctx)
|
|||||||
{
|
{
|
||||||
duk_push_this(ctx);
|
duk_push_this(ctx);
|
||||||
ILibDuktape_WriteID(ctx, "net.ipcServer");
|
ILibDuktape_WriteID(ctx, "net.ipcServer");
|
||||||
|
duk_push_string(ctx, ipc); duk_put_prop_string(ctx, -2, ILibDuktape_net_server_IPCPath);
|
||||||
duk_pop(ctx);
|
duk_pop(ctx);
|
||||||
|
|
||||||
#if defined(_POSIX)
|
#if defined(_POSIX)
|
||||||
@@ -1492,6 +1494,19 @@ duk_ret_t ILibDuktape_net_server_close(duk_context *ctx)
|
|||||||
ILibAsyncServerSocket_RemoveFromChain(server->server);
|
ILibAsyncServerSocket_RemoveFromChain(server->server);
|
||||||
server->server = NULL;
|
server->server = NULL;
|
||||||
|
|
||||||
|
#ifdef _POSIX
|
||||||
|
duk_push_this(ctx); // [server]
|
||||||
|
if(duk_has_prop_string(ctx, -1, ILibDuktape_net_server_IPCPath))
|
||||||
|
{
|
||||||
|
duk_eval_string(ctx, "require('fs');"); // [server][fs]
|
||||||
|
duk_get_prop_string(ctx, -1, "unlinkSync"); // [server][fs][unlinkSync]
|
||||||
|
duk_swap_top(ctx, -2); // [server][unlinkSync][this]
|
||||||
|
duk_get_prop_string(ctx, -3, ILibDuktape_net_server_IPCPath); // [server][unlinkSync][this][path]
|
||||||
|
duk_pcall_method(ctx, 1); duk_pop(ctx); // [server]
|
||||||
|
}
|
||||||
|
duk_pop(ctx); // [...]
|
||||||
|
#endif
|
||||||
|
|
||||||
ILibDuktape_EventEmitter_SetupEmit(ctx, server->self, "close"); // [emit][this][close]
|
ILibDuktape_EventEmitter_SetupEmit(ctx, server->self, "close"); // [emit][this][close]
|
||||||
duk_call_method(ctx, 1);
|
duk_call_method(ctx, 1);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -487,6 +487,7 @@ function macos_messageBox()
|
|||||||
{
|
{
|
||||||
// Start Local Server
|
// Start Local Server
|
||||||
var ret = this._initIPCBase();
|
var ret = this._initIPCBase();
|
||||||
|
ret.metadata = 'message-box/create'
|
||||||
ret.title = title; ret.caption = caption; ret.timeout = timeout;
|
ret.title = title; ret.caption = caption; ret.timeout = timeout;
|
||||||
if (layout == null)
|
if (layout == null)
|
||||||
{
|
{
|
||||||
@@ -552,6 +553,7 @@ function macos_messageBox()
|
|||||||
{
|
{
|
||||||
// Start Local Server
|
// Start Local Server
|
||||||
var ret = this._initIPCBase();
|
var ret = this._initIPCBase();
|
||||||
|
ret.metadata = 'clipboard/set'
|
||||||
ret.server = this.startMessageServer(ret);
|
ret.server = this.startMessageServer(ret);
|
||||||
ret.server.ret = ret;
|
ret.server.ret = ret;
|
||||||
ret.server.clipText = clipText;
|
ret.server.clipText = clipText;
|
||||||
@@ -559,6 +561,7 @@ function macos_messageBox()
|
|||||||
{
|
{
|
||||||
this._connection = c;
|
this._connection = c;
|
||||||
c.promise = this.ret;
|
c.promise = this.ret;
|
||||||
|
c.on('end', function () { this.promise.server.close(); });
|
||||||
c.on('data', function (buffer)
|
c.on('data', function (buffer)
|
||||||
{
|
{
|
||||||
if (buffer.len < 4 || buffer.readUInt32LE(0) > buffer.len) { this.unshift(buffer); }
|
if (buffer.len < 4 || buffer.readUInt32LE(0) > buffer.len) { this.unshift(buffer); }
|
||||||
@@ -586,12 +589,14 @@ function macos_messageBox()
|
|||||||
{
|
{
|
||||||
// Start Local Server
|
// Start Local Server
|
||||||
var ret = this._initIPCBase();
|
var ret = this._initIPCBase();
|
||||||
|
ret.metadata = 'clipboard/get'
|
||||||
ret.server = this.startMessageServer(ret);
|
ret.server = this.startMessageServer(ret);
|
||||||
ret.server.ret = ret;
|
ret.server.ret = ret;
|
||||||
ret.server.on('connection', function (c)
|
ret.server.on('connection', function (c)
|
||||||
{
|
{
|
||||||
this._connection = c;
|
this._connection = c;
|
||||||
c.promise = this.ret;
|
c.promise = this.ret;
|
||||||
|
c.on('end', function () { this.promise.server.close(); });
|
||||||
c.on('data', function (buffer)
|
c.on('data', function (buffer)
|
||||||
{
|
{
|
||||||
if (buffer.len < 4 || buffer.readUInt32LE(0) > buffer.len) { this.unshift(buffer); }
|
if (buffer.len < 4 || buffer.readUInt32LE(0) > buffer.len) { this.unshift(buffer); }
|
||||||
@@ -619,12 +624,14 @@ function macos_messageBox()
|
|||||||
{
|
{
|
||||||
// Start Local Server
|
// Start Local Server
|
||||||
var ret = this._initIPCBase();
|
var ret = this._initIPCBase();
|
||||||
|
ret.metadata = 'desktop/lock'
|
||||||
ret.server = this.startMessageServer(ret);
|
ret.server = this.startMessageServer(ret);
|
||||||
ret.server.ret = ret;
|
ret.server.ret = ret;
|
||||||
ret.server.on('connection', function (c)
|
ret.server.on('connection', function (c)
|
||||||
{
|
{
|
||||||
this._connection = c;
|
this._connection = c;
|
||||||
c.promise = this.ret;
|
c.promise = this.ret;
|
||||||
|
c.on('end', function () { this.promise.server.close(); });
|
||||||
c.on('data', function (buffer)
|
c.on('data', function (buffer)
|
||||||
{
|
{
|
||||||
if (buffer.len < 4 || buffer.readUInt32LE(0) > buffer.len) { this.unshift(buffer); }
|
if (buffer.len < 4 || buffer.readUInt32LE(0) > buffer.len) { this.unshift(buffer); }
|
||||||
@@ -648,6 +655,7 @@ function macos_messageBox()
|
|||||||
{
|
{
|
||||||
// Start Local Server
|
// Start Local Server
|
||||||
var ret = this._initIPCBase();
|
var ret = this._initIPCBase();
|
||||||
|
ret.metadata = 'notify'
|
||||||
ret.title = title; ret.caption = caption;
|
ret.title = title; ret.caption = caption;
|
||||||
ret.server = this.startMessageServer(ret);
|
ret.server = this.startMessageServer(ret);
|
||||||
ret.server.ret = ret;
|
ret.server.ret = ret;
|
||||||
@@ -655,6 +663,7 @@ function macos_messageBox()
|
|||||||
{
|
{
|
||||||
this._connection = c;
|
this._connection = c;
|
||||||
c.promise = this.ret;
|
c.promise = this.ret;
|
||||||
|
c.on('end', function () { this.promise.server.close(); });
|
||||||
c.on('data', function (buffer)
|
c.on('data', function (buffer)
|
||||||
{
|
{
|
||||||
if (buffer.len < 4 || buffer.readUInt32LE(0) > buffer.len) { this.unshift(buffer); }
|
if (buffer.len < 4 || buffer.readUInt32LE(0) > buffer.len) { this.unshift(buffer); }
|
||||||
@@ -824,6 +833,7 @@ function macos_messageBox()
|
|||||||
options.writableAll = true;
|
options.writableAll = true;
|
||||||
|
|
||||||
var ret = require('net').createServer();
|
var ret = require('net').createServer();
|
||||||
|
ret.descriptorMetadata = ('[' + options.path + ']' + (options.metadata ? (', ' + options.metadata) : ''));
|
||||||
ret.uid = require('user-sessions').consoleUid();
|
ret.uid = require('user-sessions').consoleUid();
|
||||||
ret.osversion = require('service-manager').getOSVersion();
|
ret.osversion = require('service-manager').getOSVersion();
|
||||||
ret._options = options;
|
ret._options = options;
|
||||||
|
|||||||
Reference in New Issue
Block a user