From 2da776ab5e58e8b2b231ef3205ef91873bf8dbe5 Mon Sep 17 00:00:00 2001 From: Bryan Roe Date: Sun, 12 Apr 2020 22:51:35 -0700 Subject: [PATCH] 1. Added ability to query MeshAent object for KVM Tile limit 2. Added TLS_WRITE_TRACE and KVMMaxTile build switch --- makefile | 13 +++++++++---- meshcore/agentcore.c | 9 +++++++++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/makefile b/makefile index 6b23e0c..e5644e4 100644 --- a/makefile +++ b/makefile @@ -127,6 +127,7 @@ CEXTRA = -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -fstack-protector -fno-s LDEXTRA = WatchDog = 6000000 +KVMMaxTile = 0 SKIPFLAGS = 0 ifeq ($(AID), 7) SKIPFLAGS = 1 @@ -381,10 +382,14 @@ ifeq ($(CRASH_HANDLER),0) CFLAGS += -D_NOILIBSTACKDEBUG endif -ifeq ($(SSL_EXPORTABLE_KEYS),0) +ifeq ($(SSL_EXPORTABLE_KEYS),1) CFLAGS += -D_SSL_KEYS_EXPORTABLE endif +ifeq ($(TLS_WRITE_TRACE),1) +CFLAGS += -D_TLSLOG +endif + GCCTEST := $(shell $(CC) meshcore/dummy.c -o /dev/null -no-pie > /dev/null 2>&1 ; echo $$? ) ifeq ($(GCCTEST),0) LDFLAGS += -no-pie @@ -469,16 +474,16 @@ pi: strip meshagent_pi linux: - $(MAKE) EXENAME="$(EXENAME)_$(ARCHNAME)$(EXENAME2)" AID="$(ARCHID)" ADDITIONALSOURCES="$(LINUXKVMSOURCES)" ADDITIONALFLAGS="-lrt -z noexecstack -z relro -z now" CFLAGS="-DJPEGMAXBUF=0 -DMESH_AGENTID=$(ARCHID) $(CFLAGS) $(CEXTRA)" LDFLAGS="$(LINUXSSL) $(LINUXFLAGS) $(LDFLAGS) $(LDEXTRA)" + $(MAKE) EXENAME="$(EXENAME)_$(ARCHNAME)$(EXENAME2)" AID="$(ARCHID)" ADDITIONALSOURCES="$(LINUXKVMSOURCES)" ADDITIONALFLAGS="-lrt -z noexecstack -z relro -z now" CFLAGS="-DJPEGMAXBUF=$(KVMMaxTile) -DMESH_AGENTID=$(ARCHID) $(CFLAGS) $(CEXTRA)" LDFLAGS="$(LINUXSSL) $(LINUXFLAGS) $(LDFLAGS) $(LDEXTRA)" $(SYMBOLCP) $(STRIP) macos: - $(MAKE) $(MAKEFILE) EXENAME="$(EXENAME)_$(ARCHNAME)" ADDITIONALSOURCES="$(MACOSKVMSOURCES)" CFLAGS="-arch x86_64 -mmacosx-version-min=10.5 -std=gnu99 -Wall -DJPEGMAXBUF=0 -DMESH_AGENTID=$(ARCHID) -D_POSIX -D_NOILIBSTACKDEBUG -D_NOHECI -DMICROSTACK_PROXY -D__APPLE__ $(CWEBLOG) -fno-strict-aliasing $(INCDIRS) $(CFLAGS) $(CEXTRA)" LDFLAGS="$(MACSSL) $(MACOSFLAGS) -L. -lpthread -ldl -lz -lutil -framework IOKit -framework ApplicationServices -framework SystemConfiguration -framework CoreFoundation -fconstant-cfstrings $(LDFLAGS) $(LDEXTRA)" + $(MAKE) $(MAKEFILE) EXENAME="$(EXENAME)_$(ARCHNAME)" ADDITIONALSOURCES="$(MACOSKVMSOURCES)" CFLAGS="-arch x86_64 -mmacosx-version-min=10.5 -std=gnu99 -Wall -DJPEGMAXBUF=$(KVMMaxTile) -DMESH_AGENTID=$(ARCHID) -D_POSIX -D_NOILIBSTACKDEBUG -D_NOHECI -DMICROSTACK_PROXY -D__APPLE__ $(CWEBLOG) -fno-strict-aliasing $(INCDIRS) $(CFLAGS) $(CEXTRA)" LDFLAGS="$(MACSSL) $(MACOSFLAGS) -L. -lpthread -ldl -lz -lutil -framework IOKit -framework ApplicationServices -framework SystemConfiguration -framework CoreFoundation -fconstant-cfstrings $(LDFLAGS) $(LDEXTRA)" $(SYMBOLCP) $(STRIP) freebsd: - $(MAKE) EXENAME="$(EXENAME)_$(ARCHNAME)$(EXENAME2)" ADDITIONALSOURCES="$(LINUXKVMSOURCES)" AID="$(ARCHID)" CFLAGS="-std=gnu99 -Wall -DMESH_AGENTID=$(ARCHID) -D_POSIX -D_FREEBSD -D_NOHECI -D_NOILIBSTACKDEBUG -DMICROSTACK_PROXY -fno-strict-aliasing $(INCDIRS) $(CFLAGS) $(CEXTRA)" LDFLAGS="$(BSDSSL) $(BSDFLAGS) -L. -lpthread -ldl -lz -lutil $(LDFLAGS) $(LDEXTRA)" + $(MAKE) EXENAME="$(EXENAME)_$(ARCHNAME)$(EXENAME2)" ADDITIONALSOURCES="$(LINUXKVMSOURCES)" AID="$(ARCHID)" CFLAGS="-std=gnu99 -Wall -DJPEGMAXBUF=$(KVMMaxTile) -DMESH_AGENTID=$(ARCHID) -D_POSIX -D_FREEBSD -D_NOHECI -D_NOILIBSTACKDEBUG -DMICROSTACK_PROXY -fno-strict-aliasing $(INCDIRS) $(CFLAGS) $(CEXTRA)" LDFLAGS="$(BSDSSL) $(BSDFLAGS) -L. -lpthread -ldl -lz -lutil $(LDFLAGS) $(LDEXTRA)" $(SYMBOLCP) $(STRIP) diff --git a/meshcore/agentcore.c b/meshcore/agentcore.c index 1dce8bb..c075edd 100644 --- a/meshcore/agentcore.c +++ b/meshcore/agentcore.c @@ -1904,6 +1904,15 @@ void ILibDuktape_MeshAgent_PUSH(duk_context *ctx, void *chain) ILibDuktape_EventEmitter_CreateEventEx(emitter, "kvmConnected"); ILibDuktape_CreateEventWithGetterAndSetterEx(ctx, "remoteMouseRender", ILibDuktape_MeshAgent_remoteMouseRender_get, ILibDuktape_MeshAgent_remoteMouseRender_set); +#if defined(WIN32) + ILibDuktape_CreateReadonlyProperty_int(ctx, "maxKvmTileSize", 0); +#else + #if defined(JPEGMAXBUF) + ILibDuktape_CreateReadonlyProperty_int(ctx, "maxKvmTileSize", JPEGMAXBUF); + #else + ILibDuktape_CreateReadonlyProperty_int(ctx, "maxKvmTileSize", 65500); + #endif +#endif #if defined(_POSIX) && !defined(__APPLE__) ILibDuktape_CreateInstanceMethod(ctx, "enableKvmSlaveLog", ILibDuktape_MeshAgent_enableKvmSlaveLog, 1);