diff --git a/src/service/toks_service_ioctl.c b/src/service/toks_service_ioctl.c index 31fad83..f56dec5 100644 --- a/src/service/toks_service_ioctl.c +++ b/src/service/toks_service_ioctl.c @@ -19,9 +19,13 @@ int32_t toks_service_ioctl( { int32_t status; void * hport; + const char * refstr; + size_t reflen; struct _nt_tty_sync_msg msg; hport = toks_get_driver_hservice(dctx); + refstr = toks_get_driver_refstr(dctx); + reflen = 0; ntapi->tt_aligned_block_memset( &msg,0,sizeof(msg)); @@ -32,6 +36,15 @@ int32_t toks_service_ioctl( msg.data.ttyinfo.opcode = TOKS_DAEMON_IOCTL; msg.data.ttyinfo.opdata = ctlcode; + if (refstr && (reflen = toks_strlen(refstr))) { + if (reflen > sizeof(msg.data.syncinfo.ipcsvc.keys.key)) + reflen = sizeof(msg.data.syncinfo.ipcsvc.keys.key); + + ntapi->tt_generic_memcpy( + msg.data.syncinfo.ipcsvc.keys.key, + refstr,reflen); + } + switch (ctlcode) { case TOKS_IOCTL_SET_TOKEN_COUNT: case TOKS_IOCTL_SET_LOG_LEVEL: