Windows sandbox fix (#104)

* Implemented fix for #102

* Added Windows Sandbox note
This commit is contained in:
Simonmicro 2020-10-16 23:04:12 +02:00 committed by GitHub
parent c979f42da9
commit 56d4652de9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 3 deletions

View File

@ -149,7 +149,7 @@ If placed just after `connect` refers to the main address and all additive coupl
-u or --no-reuse -u or --no-reuse
> Use this subparser `connect` option not to allow binding / listening to the same ip address - port couple specified with `-n`. > Use this subparser `connect` option not to allow binding / listening to the same ip address - port couple specified with `-n`.
If placed just after `connect` refers to the main address and all additive couples without `-b` or `-u` options. Reusing port is activated by default. If placed just after `connect` refers to the main address and all additive couples without `-b` or `-u` options. Reusing port is activated by default (except when running inside the Windows Sandbox and the current user is `WDAGUtilityAccount`).
-d or --dual -d or --dual
> Use this subparser `connect` option to allow listening to an IPv6 address also accepting connections via IPv4. > Use this subparser `connect` option to allow listening to an IPv6 address also accepting connections via IPv4.

View File

@ -13,6 +13,7 @@ import pickle
import socketserver import socketserver
import queue as Queue import queue as Queue
import selectors import selectors
import getpass
from time import monotonic as time from time import monotonic as time
import pykms_RpcBind, pykms_RpcRequest import pykms_RpcBind, pykms_RpcRequest
@ -515,11 +516,11 @@ def server_check():
srv_config['listen'] = addresses srv_config['listen'] = addresses
def server_create(): def server_create():
# Create address list. # Create address list (when the current user indicates execution inside the Windows Sandbox, then we wont allow port reuse - it is not supported).
all_address = [( all_address = [(
srv_config['ip'], srv_config['port'], srv_config['ip'], srv_config['port'],
(srv_config['backlog_main'] if 'backlog_main' in srv_config else srv_options['backlog']['def']), (srv_config['backlog_main'] if 'backlog_main' in srv_config else srv_options['backlog']['def']),
(srv_config['reuse_main'] if 'reuse_main' in srv_config else srv_options['reuse']['def']) (srv_config['reuse_main'] if 'reuse_main' in srv_config else False if getpass.getuser() == 'WDAGUtilityAccount' else srv_options['reuse']['def'])
)] )]
log_address = "TCP server listening at %s on port %d" %(srv_config['ip'], srv_config['port']) log_address = "TCP server listening at %s on port %d" %(srv_config['ip'], srv_config['port'])