eduvpn / macos

Deprecated, please go to https://github.com/eduvpn/apple
15 stars 40 forks source link

connect-disconnect few times -> errors in log, dns resolver wrong #203

Closed efef closed 5 years ago

efef commented 5 years ago

Since latest 1.2b1 release there is a new bug. Just connect, disconnect a few times and the app becomes unresponsive. Sometimes errors are shown in the GUI. It seems the DNS resolver is often not correctly set back.

Also the connecting time, before see a green icon, takes much longer than release version 1.1

This error is shown often in de log:

2019-02-17 22:10:33.407 scutil[77141:7578955] Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: ' -[NSArrayM insertObject:atIndex:]: object cannot be nil' *** First throw call stack: ( 0 CoreFoundation 0x00007fff4c0f523b exceptionPreprocess + 171 1 libobjc.A.dylib 0x00007fff73389c76 objc_exception_throw + 48 2 CoreFoundation 0x00007fff4c1364c4 _CFThrowFormattedException + 202 3 CoreFoundation 0x00007fff4c013730 -[__NSArrayM insertObject:atIndex:] + 1264 4 scutil 0x00000001022e749a scutil + 9370 5 scutil 0x00000001022e5ed5 scutil + 3797 6 scutil 0x00000001022e6837 scutil + 6199 7 libdyld.dylib 0x00007fff73fa3015 start + 1 8 ??? 0x0000000000000001 0x0 + 1 ) libc++abi.dylib: terminating with uncaught exception of type NSException /Applications/eduVPN.app/Contents/Resources/openvpn-2.4.6-openssl-1.1.0h/client.up.eduvpn.sh: line 287: 77141 Abort trap: 6 scutil > /dev/null <<-EOF open

Store our variables for the other scripts (leasewatch, down, etc.) to use

d.init

The '#' in the next line does NOT start a comment; it indicates to

scutil that a number follows it (as opposed to a string or an array) d.add PID # ${PPID} d.add Service ${PSID} d.add LeaseWatcherPlistPath "${LEASEWATCHER_PLIST_PATH}" d.add RemoveLeaseWatcherPlist "${REMOVE_LEASEWATCHER_PLIST}" d.add ScriptLogFile "${SCRIPT_LOG_FILE}" d.add MonitorNetwork "${ARG_MONITOR_NETWORK_CONFIGURATION}" d.add RestoreOnDNSReset "${ARG_RESTORE_ON_DNS_RESET}" d.add RestoreOnWINSReset "${ARG_RESTORE_ON_WINS_RESET}" d.add IgnoreOptionFlags "${ARG_IGNORE_OPTION_FLAGS}" d.add IsTapInterface "${ARG_TAP}" d.add FlushDNSCache "${ARG_FLUSH_DNS_CACHE}" d.add ResetPrimaryInterface "${ARG_RESET_PRIMARY_INTERFACE_ON_DISCONNECT}" d.add RouteGatewayIsDhcp "${bRouteGatewayIsDhcp}" d.add bAlsoUsingSetupKeys "${bAlsoUsingSetupKeys}" d.add TapDeviceHasBeenSetNone "false" d.add TunnelDevice "$dev" d.add RestoreIpv6Services "$ipv6_disabled_services_encoded" d.add NetworkSetupRestorednsserversInfo "$network_setup_restore_dns_info" d.add NetworkSetupRestoresearchdomainsInfo "$network_setup_restore_searchdomains_info" set State:/Network/OpenVPN

Back up the device's current DNS and SMB configurations,

Indicate 'no such key' by a dictionary with a single entry:

"eduVPNNoSuchKey : true"

If there isn't a key, "eduVPNNoSuchKey : true" won't be removed.

If there is a key, "eduVPNNoSuchKey : true" will be removed and the

key's contents will be used

d.init d.add eduVPNNoSuchKey true get State:/Network/Service/${PSID}/DNS set State:/Network/OpenVPN/OldDNS

d.init d.add eduVPNNoSuchKey true get Setup:/Network/Service/${PSID}/DNS set State:/Network/OpenVPN/OldDNSSetup

d.init d.add eduVPNNoSuchKey true get State:/Network/Service/${PSID}/SMB set State:/Network/OpenVPN/OldSMB

Initialize the new DNS map via State:

${SKP_DNS}d.init ${SKP_DNS}${SKP_DNS_SA}d.add ServerAddresses ${FIN_DNS_SA} ${SKP_DNS}${SKP_DNS_SD}d.add SearchDomains ${FIN_DNS_SD} ${SKP_DNS}${SKP_DNS_DN}d.add DomainName ${FIN_DNS_DN} ${SKP_DNS}set State:/Network/Service/${PSID}/DNS

If necessary, initialize the new DNS map via Setup: also

${SKP_SETUP_DNS}${SKP_DNS}d.init ${SKP_SETUP_DNS}${SKP_DNS}${SKP_DNS_SA}d.add ServerAddresses ${FIN_DNS_SA} ${SKP_SETUP_DNS}${SKP_DNS}${SKP_DNS_SD}d.add SearchDomains ${FIN_DNS_SD} ${SKP_SETUP_DNS}${SKP_DNS}${SKP_DNS_DN}d.add DomainName ${FIN_DNS_DN} ${SKP_SETUP_DNS}${SKP_DNS}set Setup:/Network/Service/${PSID}/DNS

Initialize the SMB map

${SKP_SMB}d.init ${SKP_SMB}${SKP_SMB_NN}d.add NetBIOSName ${FIN_SMB_NN} ${SKP_SMB}${SKP_SMB_WG}d.add Workgroup ${FIN_SMB_WG} ${SKP_SMB}${SKP_SMB_WA}d.add WINSAddresses * ${FIN_SMB_WA} ${SKP_SMB}set State:/Network/Service/${PSID}/SMB

quit EOF

Sun Feb 17 22:10:33 2019 MANAGEMENT: Client disconnected Sun Feb 17 22:10:33 2019 WARNING: Failed running command (--up/--down): external program exited with error status: 134 Sun Feb 17 22:10:33 2019 Exiting due to fatal error

efef commented 5 years ago

seems local issue