diff --git a/meshcore/KVM/Linux/linux_kvm.c b/meshcore/KVM/Linux/linux_kvm.c index 5616d91..d66017e 100644 --- a/meshcore/KVM/Linux/linux_kvm.c +++ b/meshcore/KVM/Linux/linux_kvm.c @@ -1348,7 +1348,15 @@ void kvm_relay_brokenPipeSink_2(void *sender) void kvm_relay_brokenPipeSink(ILibProcessPipe_Pipe sender) { void *chain = ((void**)ILibMemory_Extra(sender))[2]; - ILibLifeTime_AddEx(ILibGetBaseTimer(chain), sender, 1000, kvm_relay_brokenPipeSink_2, NULL); + + if (g_slavekvm != 0) + { + int r; + waitpid(g_slavekvm, &r, WNOHANG); + g_slavekvm = 0; + } + + ILibLifeTime_AddEx(ILibGetBaseTimer(chain), sender, 4000, kvm_relay_brokenPipeSink_2, NULL); } void* kvm_relay_restart(int paused, void *processPipeMgr, ILibKVM_WriteHandler writeHandler, void *reserved, int uid, char* authToken, char *dispid) diff --git a/microscript/ILibDuktape_Polyfills.c b/microscript/ILibDuktape_Polyfills.c index 46a6dac..11c218e 100644 --- a/microscript/ILibDuktape_Polyfills.c +++ b/microscript/ILibDuktape_Polyfills.c @@ -2402,7 +2402,7 @@ void ILibDuktape_Polyfills_JS_Init(duk_context *ctx) ILibDuktape_AddCompressedModuleEx(ctx, "service-manager", _servicemanager, "2021-09-07T16:57:16.000-07:00"); free(_servicemanager); - duk_peval_string_noresult(ctx, "addCompressedModule('user-sessions', Buffer.from('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', 'base64'), '2021-08-24T15:51:21.000-07:00');"); + duk_peval_string_noresult(ctx, "addCompressedModule('user-sessions', Buffer.from('eJztPf1b2zjSP1+fp/+Dmmf34lxDIJR+wdF9Ught3oXQI2F7+wIPZ2IlcZvYOdtp4GX7v78zkmzLtmQ7fHS7u+RuS2KPpJE0M5oZjUar/3j8aMedXXn2aByQ9bXmK9JxAjohO643cz0zsF3n8aPHj/btAXV8apG5Y1GPBGNKWjNzAH/Emzr5hXo+QJP1xhoxEKAiXlVqW48fXblzMjWviOMGZO5TqMH2ydCeUEIvB3QWENshA3c6m9imM6BkYQdj1oqoo/H40a+iBvciMAHYBPAZ/BrKYMQMEFsCn3EQzDZXVxeLRcNkmDZcb7Q64XD+6n5np93ttVcAWyxx7Eyo7xOP/ndue9DNiytizgCZgXkBKE7MBXE9Yo48Cu8CF5FdeHZgO6M68d1hsDA9+viRZfuBZ1/Mg8Q4hahBf2UAGCnTIZVWj3R6FfK21ev06o8ffez03x8e98nH1tFRq9vvtHvk8IjsHHZ3O/3OYRd+7ZFW91fyc6e7WycURglaoZczD7EHFG0cQWrBcPUoTTQ/dDk6/owO7KE9gE45o7k5omTkfqGeA30hM+pNbR9n0QfkrMePJvbUDhgR+NkeQSP/WMXB+2J6pHvY7+z9er53eHTef9/pnffavR4gTLbJ2lYGorW/HwL0AKIpID4enH/s98SL8533re67NlZwubb+VoL5cPixffT26LC1u9Pq9RnAevOVeP/hbZ8D9Nr9fqf7Tqrl1VrzmQTV+nDQO+59aHd32duN5Kujdu/4oC0DvFQBtI77hwetfmeHgTTXkzAckX6rf9yT8GiFQEeHO9DX838dt49+Pe90YWSwKj5ol2sba+HI9Q9/bnc5GH+1thZ2t+9+ps6xDxMTDyN71r+aUXiWgOtRNrcdC4FDVNtHRzAjnW7veG+vs9Npd/vnb+Fr+4gBhVDv260P5//bPjo8P2gfHMZ4rAlcxOT0e+dAq73D/Tb+7bZ3+iT8bBMDBqi2lYXc7fQSwAxyXYY8gjb72So55DMFZLpKDrkhQ4Zktn/4DkY8VedzHeTeXgryhRpy52eSrvOlCvK4m4RlkK9UkPEY9I8O9wXkaxXkzlG71W+n6mypIPvto4NONwZmkG9r0Xy+O+7snrd2dnc4S533Do+Pdtpb0su3rX4fqfdDG150+613bUS01ekC68lw0lx/2G/9eo5M0WbtDOfOAAUMiPPJfOp8MD2fGpYZmHViUSZ/qFd7/OiaS3WsMEBa9gFZhGr4IPACIwbdigE9GgDUyZl4BBLQwMc2im9eSY2/EZXjxx7C4sXendhnjQl1RrAQvSFrNXKN9TVmc38cA9S2yFdeVvwBkLnnEAP+IiZfsYdSH5FTBRf6RtwrXAwb54cXn+gg6KC0qcIS6a34ArK6FVbOViejSr9QJ/CrtUYbv7Sh49DzxsCcTAysqk4Cb05rcacaA4+aAWXQRnUwBslPraoWYOIOPue9nzsKCNOyDmgwdq2ofJ1E/TbE8LGx4b3lQDiAmlqiVnT1PMlUtCUPJ38Ogzk0Jz6VX7mOFsdUURzHdMVYWoubsmleAa8C6WvmuQOY2sZsYgZAlFOyDTO+sJ1n69UsQfIagRy+wKr73nWzfYqhpsA8Y3MC7yNSOX9HHerZgwP+qlrLFPoMiz+dPFvH7sq1NHbYnHdh+f9CP3ju5ZVR/VnANqxJXlWiaDiT72iwb/pB2/Ncr3wpEFRQsDXA5neAC9wJjRYwmfJyK9mZuD59D7rMhFbjSWDFvKv4hzTecZWLwC8zJh8D35zZijFJ1JTtXNuZTylo2GGv/NYypf81p95VOB4OUhFT0z4uU8cRHYFCGkmkrhugYsjqWaaaY+eOKtoD9fqATl3vKlHqa/wV6hyMDbAYasq5+5qYYNaQaX2B2Skzjy0GqaVtXlEK6dYEWB1+txyr44A9YE7s/6M92ypbfmdMB5+Zbgb9vgADamzPypbF0QqbShfA5aMcR3NITZ/Fy0S712TKvmySajjtH9wFzn2A9lBi7mEhGkNZa9f2Zzhzm6T5tVwr1WPHK6o9W5M3G3hBmV4fIeCGptesljQ6c9va89xpD+w3Z9TSluLv++7xMVvHo8VBfm6MoDI1AeNHaC6/MDkul2vMM536xfRstFCN5os0n9lDI1OY45jqSxZM0wZDuy5wqzUYgmAG1JLtpnqDH0kpwpIpRL8mf1JY2AprBLJyFwT4x51PLOZTGLgOWLEB8Vln0EbH7mSkz1elWNHNIIyGoKYllw7NanQ4o84HvvhXa6pySkaXSjFRoRGpyrKwgrIy0hKxTPF90Dfms9Zg4M6dAISNbnnR4t1n/J9FOyvTcyR6/FNtkEQcn51Bo/rcekZfm89fr9DXu89XNi7W1lbMFxfWynD4bGM4fN588XzjVQK1QrsmtznzpWm9WttorlxsPDdXNgYmXXn10ny2Qung4mLjxSvzNW1mm1OaR7ntvBjSF6+fP3+x8nJtA9p5aa6tvBqub6wM1l9Zr5+9GFrmxkvV0iCW6F4AE4XEfVLlGhbIauAmxwELhKm14Q+mZ+Dv3ti03AV+A2k+kCE7qFzB330U1+hHwh9H1KcBg3YXDoOC9bF6lhabSJc7E9MHVAqZHlUEscoCO4w8c1rdJGt1NWCLe++Q4LvmlAJkUwP50fU+A9K7oC4PAtQ9Nsm6BvSwfQC65yZ5pnkf66ebZEMDgyagwOi5DiObzU+M+gsN4K47Ne0Q6KUGSEwkm3EAe6UDm9hg3L2d2xOrO0ddBGBf58KG46qbAg4lj2tTNwccFGbVmoMFjMPX1M0BB31vehY6XTmsbj44bMuy0D2KgLpJCVH1wSRjiOqmJkI0cAfuBJ1sCK2bH+SMvs1HSTc9++7IdUIg3eR0nIE7BSJ9ewVci4C6mTmcByNXAlzXTU5Y4x6wEYfUzU1YZQyZPzXI0ghVxCQCTDclElj7EgG1U+I6Q3sUVqebClA8bIvxVAipmxDRsKCaXzYQVjsv/hHYK5EJh6CvUwpHVgTb/pHrBrJ2yJ8Y+TohrEJzWFg9O7jSqLiRppZRBqWyjcB9Ox8OqWfUGriHQTtO8Mp4XifPk6tF2GzLAjLBfQsTmNh/57nzmab5D0AlAda7la3FxFokv0VaVw29QkKR0NlVhtSROohp8gz+e76xUYd1IP1/BeJcaX1SSmlFrKfMKNN0F/fJRoruKjukMvQMNZKNXerRoQGaNm9ei7QG8bB9XlqeblTFjgHtZ+v7baPGqyTX0dwIZ1e2RsWjROeEJWrkdKZA6RcWAsNErSWyBkc0EIrw4cLhy6jMRorXxqyEqQV1OPPJREG2Dm8hl9maa+sbKpK32OJ809LYMl/e97kPuqAeqCRTJsPq0eTrWr1g4KVbzFbg21bAd56WL8u86nO+l7Wme19C9mRLxn2JDDPJqDK0G3F1UBoJUlDGtibGODaAmd+XG6R7pj3hW8T/RcWZCFcvsdFfQp7yypJ+Kl5hUlykTT5jXJd3Aet8LJhk2N4uIczSVmnsFTXGKvmV7Q6zA4jAiW8nsi3lWaJnGSZXzCKQyNLkkRgchU3Ld2RiyZnc7qyzRuugkicI/E4aQXW+HpMuW3lyG5GIPHcM5Er0QjxL75ml58Y9KYdBqrtKrsCl0nPgRbgFkJb/afrP+B1wrYxQixFHiVfPyL26kL2qN0JALeO+CnvBkSLZbQxB6/LPUl4sxK5x7oNqwySewFp6onSlwZtrVnSTV/DRtuj6cX/vVdjtzbAi6Q0ywCb7N0ch+FrEvzliJEFRas4qJ35SO6gRLlk9Gpb7I3MRquuBiKxJKQQKCMOPBYMJD/P1A07dN1B5L9AEO2K9oeUkno6RcbMkZ8sHeSPVpZAp60ksbkL1jNwJ7i2jXzUHDb4MpKZa3vprqJ2/ipGD0eL4hwQl/q6l+pMjF6VXirnhbMQBGiYaG0bZilO1XTQwDC1NrRGNhnMXb20ZyZ6VJf8s7RcQ/gPV/8GoPtrzSZF+JMUzY3VrCkuhJst/VveAb7sfM41NCtQJnxZ4LCRFLxqavF19g81Udh/LtkDJvdwTH1As2CwZ1a574VpXZOKORkBrNu4wqO1KI6mbZvoJ7ILaj5O1J8PHRu6WXSKyRcV7c1Q/kw7vhuQLrhWw+m5oSsqo8Yf3g1jsWM5FbWfuedRJuLLEI2NwUXKH8zqtdeDbmQ3Y3ED6MH1xaesiI3OyoRkG9ykxcxBQq/OW7kSyZBsrlCmcUQqlCtpnIuKN6Zc2+SfHO0cH3CJPn9rlvGNijtiApBZqm/wjHNJwEsS09Zhuu002yE+kuU7QAVyrk9KgCpUYUfnElOJIkGwy3JbQdPHzqSFtukB9UrcK0dsguLGi70YtGh++i6dtPvKcJPbpTpbB5RVhOxJko6YfgDMFAsgFERLbJNwXrOl8jJ8akszUCphPDdkM10tABUK8kd2EG+0GTUiyTNGIwrfJRdOJVO0ZNP+pnHGUXY0T/JFVeHjUZ8OiQ9vB8JQZ9YIrsTjXSbw7ew2EPpmD0eeP3QV/euhMQsga+aqSaiCFoeDgIlrsNY5XjTIQ/8LKnowm7gXQ3LnjHsDImCP6YT6d6cX86ir5SIkjjkz4MA4EzGeTTHlhMoPSdTxnQIY0GIzhzcJ2LBCSY2YaZqW7KHiOBeUYRyi2It6t4DtNkIIAEaUdukhUaFzjcRTgpU31OQQY32w9jZkpFkARJJLbKgsdpZd2kAgbHbgWjUJHeX0RGeWG1hlyifHCScTA5iOB0AkkxiV9iFJr0Olxhpqz835l04nFp9ly+bEfDL8eI8RlQFgoM6hw7ozMgGFBdaeDuelTsqAA71QDsjABACrCJbNEzJkSn6HnTlmbMg1UeXBalbVpznmb0D9iDoI5NHaFZ3RYIXvguX5gDj6LeDawPOYDPJ9kBnKtjKIjEOjo2J1YgJ8SJTz/AwbM1JyNXY8fz5n72E/Okg3SGSI+rNeOu6jjDzz+ZEHlGF+MFXxk/OKTl/Gw2TBgNhQJvCuszMGhuSL2dEotGyT75EozsREETKtPg07404hpxKeTYfktKOhiF3iZjRGgPja/0DSH13kHHRKG+iH2bAQGFMRb1D0hbXz9XheiJvMO8lP6WSM/4jVRB9J3XXdiKStFw0+iSRHWyKKV3rNRzb4somYFUuoQKNBOdUuoql0Mb7pzpPJippbED+Og7hw/ZZBVDmKrq8LSbYCFaejntsFWav0w69/zbqp0efx85dpMRs0vJ+LF74SUn/qjYjnvL2xcjRG4ISopz/UDlEGq9XNTDZ9ucAEjZE4V7RW0m2w/dRQrp+3wIy9uNDTIUDn1QXcGEe9IchAnz89BsSSq4QflF6vyBAdgwgbgLK0Q0KkdSIdWsvBamSR/MqSj+lzA8vW5AC4zzPwc259moKXzPd/dULMDiwUjrSy0t7fs/LCxiI6L3UGHcgYur2goVZInf7+RSAHLzJxPghJjJy8X1exB5ZPj7s/dw49dwjE6424eCcW7pJjkCecSyEfW1AyX1ZWp69gB7nMKKvAvWRDwfrv94U4oIY1o6jj1XSHMqz3vAgt0uqCdtHb6nV/a99iDOx5wgf994545qH57/O9SbCTQzZ7uL4Esug+4/A49SaEqpnYui61BtBuNWPafj+klTAr8W81sq+haxUPK0CavQLiB1tfqyQcF/rq1vP1M1SeUf4lG0H/9ItFI4HJ3pCG6dGdLLZsstaVSFpkSk5ruLTsPnh648tWU7Fuij2tLoBl+ChjHHFgDZP3WTineSX/K8FL6w7rSvL+uCMvw2/Zn/f768/6w/036UkLPvEnVMXfmmez3wKgFw3thYh6Dq336hU5gmJXsvMTo3WxIlF6CB6FVMHWWODoDzAF2xh9ecMnd6f7hxZbUm93OwUE7eyy2zOc7EF4lqrwnC7TYCNSVTjWY8Askc8dgzCiGuyjTg0xsZ35ZJb/9RpSvhx6lF76lyB+i3l/kaWKqY9Pfd0e2sxOgwC10DY5osCknPCntFowjLKQW8QAKnrvI5oaRgPTeFhbvMbYnlrwVyB6cz8Iz1g16SQd79gTerF7Yzqo/hm6eVOHPmY4FWA0NP7DceQB/MAauWi0Di05XFObJzb3x3Pkc+ZiwuqfbhD2Mlw7Vtl2mBdvhRziMymIMa5HtY9iTDc1MyG/EXHwm1WugDDBeyA/r5Gv11MF9xlOnkl/xwrSDNgBqjYrspG1nRqgB3Zjy80SViqaenPldjmXyyLkysqbHtlWpp8kwn2414S3ag0EhwDQOS4CvLBxOA3nHZKom0TLUmKHEYiqMaqWep2oMH999YxG5V2HucIcYN4cXFtD6yKMzUnnnuFNKxIFdcmA65oh6FXiNLrUKtFc9PXWqpPqfqmCPlb1NiUWeFbFICfZg8RV6VqhWyd//zgIrMEYKs5p1MCxOXaBWI/9EepJFYXEZxUGiCPe/JLXJDli5sduSG8iVXNLC79UKvAYKwyxz9nZzy/5nd28LY+lwK5rlqPvBBoRBSm0CxeE6Pzx5dvZ07Z/MCQyiBEo/ZadmOI3i2y2hVZCv+D/W/gPZ/vnI9r6E5D5L6vsgJFXUFlaQ2f2XMwRlsjxhRHgyGJ4/YfuKGAqZH/R8hyReRk29P/VUoZYmSfC0guIwHBUkt9NKgshCGsshMQV5ZYe0gHRUQZFY5M12lNIzPm6TVjzDkO2wG3zDTupUFUOEyN7hcTdpUsvhxfG3aNiZLXd+6PAtkvMB5gYI9eGcIxWIe17RBovtph55Q5olAtLDxRLDU5tGBV0FGElDop2bKCxuZH/BF/OZUgpExJzMWVpmH4iPflFg7TfhnG/BLEsvDks0WMifkbk4sf0gmibgScU6UL3WMGNi0WEsPCSVk8pWZnYV4BadbFfKgTrbQmPCfTKw89C2+w+gVKYs17/WQf9ymPpVpsx1GSB4yrFiGJ3YZ+xEMmBGSmJG+Dln9/PJxtk2DIXQWIHpWN6NklWEo/6jf316WglD8OHrJoF/fvThnzp+i4LXFa8wxj98fOhgf8JXczsJ/7XC0jCzroJCyv82xd/1s7L9ZnNfLzf5pQYiHIWzUnVWbrvKMBkJfPs/vcNugy02hSuNyIbhyxmoE1WmnrHDOtJBHdakSEDND+WgIQEV8hTU7DWmqI7mWaXpJGV8tdfZBXzesGWMdYVnS7SHVwbWrDid8CB3b6cVRVIXT22EUpeszAg/Z4NKEpvTT64NmJBqDVWlUIFnMNtqES2MzlKCmlOX4YBV6nCr1CklFuFpWclImGz7wQG5xrE22QmVSmzPOrExW7LOMnBLc3Zapcq3Toq1qNVV0keHLFmYeGcG4f0OTyYXaV3ieE94cs2HeZo7al2plOanThqRWzSwp6ygxtF5Q+3uJukw2IkBEmkmC8qPYsD44CUreFYgPFOChxvMkWkXjy9UqBzielzHjUf76dObjrVPA8z4BxSXq9DXyfO1XPs0SdB3cCRXnwnrYSFYSgHXpvkPN+pwJ49fYCBvhhQbbar9IDd3iRB+yVBjuq5ssdXAhNXA5KuBiV2MdG5T1msldTNUCWPlEHRDw3zT/Ak0u01QZ0OlMFQSt4BCo/JfK/jzNJLWSq4rcCjdRKjoN2pKDe4trSZ1rbmWk6aIznrSgJe2oDTlYy+2xorSlMvqCxpAspQ1pa8EVnCDk93TtdqbbcmZXhpnolJz9LBkSTMut6bv3JrLxV1r1OlLlR6d0oB5hqC6SJ7KGJfIMQjxc0OjMCyqMwyjqhXP78VAjDr8PWy83CJW4pvbehra+vb2nhqRcjafvuzyAvGmtp++3mVgAQFov7sXt7lWvrE7kQh2mR0szQ6ZzW4Yy77TRVNx1iYrpHkWZQ0JM0UUx9Pgh+v6rKJ8JUu9fbItIrcK1a/EVRkF3eI45UjTnFHET5Tu5jO9whwDuKejhtQgIJA4gfJnLKHMcbTxEz6uy0lm4EGdM+2mlKhjzjItxruFRlhWnXYGP+VyLrOLMohR8jRuOogq+VObdaRkypGazuhJGJka1AYX8l11itR5aRtXbiAnOjJ/6yxa3oa4pi1wMMsmzmXVf8QSzHxX1ARLI1Deqjd3VueBIgOJui62JHHLP7EogQmWHkYNfpnOpd00euuyoFb83MLnVKqKAt9TmTq0kYuaqNGs0VhiHG6xxalBJaNP5IpdSZrw2w6yEQj8uaHM1hQ7dzLJ1sLXg+EoQ9h4KAHVvt6VMwD6psFglak3KDXwfawfiUs4qxqzPr60U6fWRtdyAh7ahFPRvZ/yTaFQgBmP1dMA8wonczaISz410yJd9bl2xsQInv846HSr4WWf8F1e1QVwM+cIuKbO1r/jOlv/vkGdITYiZBqjZsLKpCjqUMkqqwKoMo0yaDmWIeNi5D4U6ERMg6FbJde/eB8uxG++tfPNfZaxlgrrP0lxYWg5IJHFceCojTe3t08rgp5PJVX8h3UWTbjUromKagpVXRZiQ34q1onJZtrNnbmZjeVgkGUef/I70Nv3GW2ViN7D2X/2ZjsOJR0SdP9sogfIQcfQD03479nyZJAdYea7U50I0K8H8lpUV68K0YowcXBJYI2U0NTC1YE7FCfOWYjFpnJRSkhqIZxPogeo/0eiGYcq/uSu2yXTN5/PuQNIImh4kF29H8j4T0bG9025TZly184yusDNyJUtOMcpko0eFojh4mMyD8rBrTkpEwEectJpyEq4Hsu7I3jxU7hJ9LJ+Ua+simMJFyfm2ZPtiuOyCZZVB85sX0+r3EVZAUas4L/1MLT3VNpnPPnRP0MuRT9czrZfSXWj2CsE5spsYg5gKOpn1Xr1rFrLTV19y9TmD9vhf9Tt8LIe9ApRHOUpX/a6LCz3oEcnhHATlO+8XwruFJvqdjCtV2aBj6+0y0JmjJ9kzwYXDKkOS5AMl9vbzZq6cZW7UtPVa3UN2r0FsUkaBRUsW1oYxcuVu499irvZZpAP1IQMzGPVpOMMa2pvQuFpnPIkonTs58DjJ30bAYpZnVW4pFsvxzeeg1Sxo+Qh5OQh5ORPHXKSDhFhcSN+XtyIFOD1EC9CCjVY/PyBokV89QWVUUcf4kQe4kQe4kT+GHEiGV99InAEL44qocpnRMHqKnlLh3hnwYIS37wiDr+Gi6ekwZu4XAc0ABpUfcK2atntHxRTG+FlCVAOIE3ybvdAfUoCJRomXAhvfGE5XRQeI3H9UCSNRNarFXwOwgj0y3/jPTAGVJDuJhtLVlxsp6H1ya5puTSjO9ajZyJ9VvkrnpzUvWR4eQV3LNzJOYlwWhUdSwZOhF9Trg8YmffulO65E4vtvss7yfELo+ji7L+OXxqlsW0JCZw5wv7i9ptpJcRAdhv2tpfW/fXmcK6fxObNJ1FpVHNFi4lrySzXzrM280B4uzZHvUy+gZA23nnufKYgjui5MXqgDtCnYDQYcYz+cMQxColjtBxxLMauObVlsuBPfm+X9+9IDXwAvoUYV3Dqh9TGmnhkuDP86efPCjMIFMPH08saeNe5O4yqKtZh8hNdxhe6fzEnQHVYPfFndGAPbSqokTdJ4jY1njxdwkyWBbXqzKcX1Ktq8Ah7HaU6ii7MlJe/EANkjoouh2M+GvyA/FJoiFZv0ajLgnN1jdrx2DaitEPABXnINOSkNYBVXnRksgGYZCnAbKlxZxZGQYNyW1jj8jGqDA9gfEPdcf4acVjSo6yaou80NY0xqF1rc4jd1fbfDRuRPG8+WaFkxSUzoCn4gySJfwdTi69iYqbIbyw9GXduKH0bbL2WPdoFSfeUx1l/9Ct1w36ynTq+mjq2elZZevs6tVin90lyDLoSRx8K7Ee2DWLQ9DaItk3jJEODsgmZXqyGtmO1nS9tBw/PSyuW/LzcsnXhuZ+ZZmqCxFEY95pwZX43NFsu5dUzajMz/FgAlqp0bA67Mzj1DGkoikPGRooHMa8XYpD1QdcTuRcwenueO4XOGNj0iX2m9h4xt+4nxDAUcOyIhuqWLI3MtIcGtn2SLH/y6ezsZodlsvVAtzQtLCeBbxSqH05J4M1VMxKD6XN9L70riIsYa7cs2xHjuugAwFKeoIIjNAqdM6a3lOaZJMQyCSMy5F3+lI6mWw8pk3May2kuFSqOY7WKS+WMm7ar1Plie9BOuHGwVsV/A1he2YIq1tjKaVBJRHJdaxZYkCT2myZ8CwHrla2vUdhKvPBuywuvMotEeAzdn19Ax1nR9afcSjb4O2YGJ5JJwKpc1u+/bM4JhWd3uWOMN13N8aM7+Jdd1UvgkBUziiYUkqc4YOsvxMUxWyHefgC8tcK36GaRz4gbHolH4jDGD83t08opEOwP6+KL8CqtYUZnxorw+BT+YX8d+Cd2Q5BS9Pq3v6lHH/hds2McH6XSBFPmH+hKqErikFVp2gSs4hBlO4p13tYaaKhlQCERlY/fmipN4maRzhoVV6Hdoje9js3nL4pz4XPNWMVoDSvU0D+zWw1MPuSJgtDPn0hlxbwkzAhD3slaiRJ/zcN8wplrL5q/xzmAKMh/maMq4lBAGPDvnAmu0+z6ThzZY1yaz5gEUJsYE0fHa9geRW67mTXAWEyUvyvtOqyW+aAUrFvm9hzL9BaY6Y2DXqd4/iGrd6rmmINtsXMmJfKOGU8oek1xAKYOCxgscVBzFLhMHRYuxiTnacU4jTRBfMRPVt14a6VE9m9NOEU4YYpj52WXiXAjrbOr2l7r7P61t15t1X5rTDDrddyyiskFuHbEyAHPrMI3fl6VA+MLJCH468ynaSriT0On3Tc41Zp3pOR73ZBPWKHfJeV8i0y8lj+YkAYLqiar7MJ5cuzY/51TYGFZv0jTLIasrW9vS+9qsspxF/JLQ2zlpRbgiDWVTFlbzmuEn1JOKG2sguMGmny2Bc6p7zR04YGPMnzEZsQnH4BeTe8qXBEldhrlsNPoTtnp9qmcl9jGZ5R7C17JhG7cjFe+90OMv6MKIh0DxD3E00b1HgzGOxPf5CbyO5VjrIhAS0WnMshcFadM6CiaC39d0hMScgXzJwlVYzU0omR3YXevh2O2C/0fBK53pbyEK/cyz5sEn323MhGHJ75h6RZSMZsu5g7l4Nz3GEHiJDOSFF+qDfwHV0X8y2cdv4U65i3ptozucb95De47gcEyARZ34rqL/eD1zAkq5sgVVMT2NxVeP+lwFWs9dbhKQejJPB+x61t/njuR5oMhpExRw/+EXkI83aFK/KE2eVmteWZtJlfN7dPU/E5M9L2RcXoI/3JEnKXbwuw1NyVi2+qbFxPZoixYFAIBroxBugmx2xYjdfjzXVLxHdAmTJmeGnL0XykF5JLUyCbqakZVBKneUEzsfrKiJ82oSF2dtxUp4YTDcrGr4KZEPz5J+6J52zO2ZXpeTPGfIkQM7WYoLwZlWFlkEj2ccKFwSOwlC69AMlirx09j7qvp96EU43CC1Z+x+ksWsC0Ex2KKAuU2gViVeYyuuP+m8OKbhJBMvwzlQEKM3DqFVSgUJiZb606q7MufVTAsye+Y3TTi5njrk4uBQnsCl5wnfJlRrFFIiPeb5SS3aZJMK66GipKKp1/7gT2ZxJY7kFQ0Ok3yU5S5m4AZ1XHMZEJyJFuMyNditkRycvyIoCTdNnG5HLTqEE/N4NpDI3dsRSr8J3Eu/AQhlRjD5fe8yyCUm5tfMzBFio86fzvDpkwGd64vZTleZHDH9CKJHO1Cv1KcL44wU22941QsbOfZerWGx8b3Mf6zTg7MwWGvTvY8St/2dnnp9JZ8ECQCzOHn/fkycZhwkdrUF+7NzIXTx4Ws0W8fHXyXKQArOGahC2lVuvILw8oumxSDLeHPaaXOcgAXeZXSVd/OUwpkmLdGAF6ZVSJc8qFoUszBA9BbUMh5rhtU87SBHp0MZTrC3/fgDIpVe2C+lfkfYB1P93rJa9RvEEGRmhnbP4LJk+eGP8mZnYTfm88kBveoUkdHUonBUmc+pR6I4uO0YzD5xsjGB7EDJ547tX0q04R4lKA9BopjQhdhESOeO4+yqy4+6bvHFcxzAHQnX8Q9E+lzKxHMJ+YyZjDyOZbE1M8Acmw61iTpqo8eilVAi9BMwkZhYctuV1lNUnUrvIJSQklDHIpEbkq0+AAYOltghpHX3A5ABCSgKNQjLAml4P/R8KRWSt+dewPERmAhmOUXJs+ijEw88BOdVLIZEdoWqOv5afBgOoskZfIOhKjJVOdxcebv2LVeXLeIlYtcxgF8eaKnqII0SwM+gKLUwK47NQGbnxTPnuK5gSpmbq+yzEQxQKjaKvSKJ3yATqAh7gmKf+IswXDkaBfJEeJFsyMUDbZIaiVNMf+ivfYGxgdEd1ReVp3iGYy4S5JxUBCfyhQ0okGfGfQGSs4E5fCbKzK0YEeUIADEXOEKKdvshr2Nz2zHopeHQ6ZnxiFJC5DJlGChE7CT+OUTsRsmp2I7qlh6Vku0gglQvr+WWG40YIM5Dmim1oQvI4UUlokVlWiTiwOJ+Xz8aOpaczCa6OXM9QJfiHak8PAuYVb9/wM2oRLN', 'base64'), '2021-09-16T13:13:22.000-07:00');"); // Mesh Agent NodeID helper, refer to modules/_agentNodeId.js duk_peval_string_noresult(ctx, "addCompressedModule('_agentNodeId', Buffer.from('eJy9V21v2zYQ/m7A/+EWDJXUOHLWDQMWz8NcJ12MNM4WpSuKJiho6SRxkSmNpPyCIP99R0lOZEdOXGwYP9gmeeQ99/Yc3X3dbg3TbCl5FGt4c/jdTzASGhMYpjJLJdM8Fe1Wu/We+ygUBpCLACXoGGGQMZ++qp0O/IlSkTS8cQ/BNgJ71dae02u3lmkOU7YEkWrIFdINXEHIEwRc+Jhp4AL8dJolnAkfYc51XGip7nDbrU/VDelEMxJmJJ7RLKyLAdMGLdCItc6Out35fO6yAqmbyqiblHKq+340PBl7JweE1pz4IBJUCiT+nXNJZk6WwDIC47MJQUzYHFIJLJJIezo1YOeSay6iDqg01HMmsd0KuNKST3K95qcVNLK3LkCeYgL2Bh6MvD14O/BGXqfd+ji6Or34cAUfB5eXg/HV6MSDi0sYXoyPR1ejizHN3sFg/AnORuPjDiB5ibTgIpMGPUHkxoMYkLs8xDX1YVrCURn6POQ+GSWinEUIUTpDKcgWyFBOuTJRVAQuaLcSPuW6SAL11CJS8rprnBfmwjcy8GWKKh6nAY4C22m37spIzJgkx2rog2X1yiVF8fVjsDOZ+oTczRKmCeDUKberg2b4jLBbCRf5wjraXA6YnHNRXzdDy+X6wt36dIUpmBCkKuK25RnX4THTzNOpRMtxhxKZxgeMuED/d0ZpuQ+WG0ysDtzRaRZciGR5REpzhHun91RVafqDHp0oujtJWTBEqU0kjJI7yMLFEUFyf0P9Ng9DlAQJk9B40whaTgcyplQWSzL9CKyYBwEKi3S6EeozXJ4yFduOq1OPckxEthXjwtoEdL8+Jd1+bKPzrL82zkzI6NveZigoDt+/2YxEtwvvuFQahjH6t8DLWiW/D1NhilgV8yJhjv/XGLoSKeV8OmKWKJRFRJ1dQ2o0z0jxc+FqOEb22zPn6XqDbY0+eEHejK9Jttl/klGrcd+83JxhO1hi/CvyJNldXcNS4XHolzfBq1fFbCNsZfpZjgPflHK7R6j09mwHD92/XIbwL+swwJDliT7aLlVdQKhzKcCmbwP1voHC2RQ3CFzQEtn65dw7pZQwQh7KGTUCI1vdz0PbiPX7NS/WbChJfxvnNxj8DLOYQexyIvIp0iulbHUSI9Ngl6ZDK2p/Fd/MkW4S9NgQ1HVzWfFN7aLmAqfb6qVEMA5WChpDXHiJB8ZJ9Ta4RfIWlx2jYsaaMtxIKMLqG59/JjH39Ozkk/s+9VlyTo8ZLrA4XS4PcylR6A8K5c02tirUPN2bx+YJZpfRfSyTUreboIio4f0Ch7vXBGkq3Ba5f+Qol0QjdnWbinmobSJZy6ueTNfXFxkK8Ir9rcxiXi42+YuuPewZx8HPRour8glNVIWyt79Ps6/nma0s+8I5Mwy9FCHvQ8kmbijTqb1m/JbgNfvg+tqi50XNuM/0cUPSZTYRlyt632nb+pV+/pVyYVv7j4vfPix2TS+zJlQ/P/5gPWHwLU7a0WgzKjbYBLolgPWxyVpNY0sreWFrRaKLZ8x7xrQtN+/eZ+o15NBDovKRdU5kAIOICtTqNZ1t8kgzl5tRMEPJvHV2qpYOpkzQk15SzKtfLq4osuLrRkZaYTXExUqoT4WKOjT6eVmJnOqw0ruqQdjf57tTBfWL6vxnfkP/0jJTIqYL2U6/v/lk+/rKroyqqRCPvappPJebu+XB5g33jY3XwHjovNM0yBMkM+nvtlbr3aO3ue2qx6b7IFoa1W79A3i885M=', 'base64'));"); diff --git a/modules/user-sessions.js b/modules/user-sessions.js index cd4b57a..c948a5d 100644 --- a/modules/user-sessions.js +++ b/modules/user-sessions.js @@ -423,12 +423,14 @@ function UserSessions() { get: function () { + if (this._hasLoginCtl != null) { return (this._hasLoginCtl); } var child = require('child_process').execFile('/bin/sh', ['sh']); child.stdout.str = ''; child.stdout.on('data', function (chunk) { this.str += chunk.toString(); }); child.stdin.write("whereis loginctl | awk '{ print $2 }'\nexit\n"); child.waitExit(); - return (child.stdout.str.trim()!=""); + this._hasLoginCtl = child.stdout.str.trim() != ""; + return (this._hasLoginCtl); } }); Object.defineProperty(this, "gdmUid", { @@ -473,6 +475,71 @@ function UserSessions() throw ('username: ' + username + ' NOT FOUND'); }; + function linux_Onchange_checkLoginCtl() + { + if (linux_Onchange_checkLoginCtl.counter > 10) + { + console.info1("emitting 'changed' because giving up"); + require('user-sessions').emit('changed'); + return; + } + + var child = require('child_process').execFile('/bin/sh', ['sh']); + child.stdout.str = ''; child.stdout.on('data', function (chunk) { this.str += chunk.toString(); }); + child.stderr.str = ''; child.stderr.on('data', function (chunk) { this.str += chunk.toString(); }); + + child.stdin.write("loginctl list-sessions | tr '\\n' '`' | awk '{"); + child.stdin.write('printf "[";'); + child.stdin.write('del="";'); + child.stdin.write('n=split($0, lines, "`");'); + child.stdin.write('for(i=2;i ' + JSON.stringify(sids)); + + child = require('child_process').execFile('/bin/sh', ['sh']); + child.stdout.str = ''; child.stdout.on('data', function (chunk) { this.str += chunk.toString(); }); + child.stderr.str = ''; child.stderr.on('data', function (chunk) { this.str += chunk.toString(); }); + child.stdin.write("loginctl show-session -p State " + sids.join(' ') + " | grep State= | tr '\\n' '`' | awk -F'`' '{"); + child.stdin.write(' for(n=1;n