diff --git a/vpn-charles.rb b/vpn-charles.rb index 461d1de..edc81bb 100755 --- a/vpn-charles.rb +++ b/vpn-charles.rb @@ -9,14 +9,14 @@ def log(message, options) end end -def retrieveServiceKey(options) +def retrieveServiceKey(options, versionIdentifier) juniperState = `scutil<< EOF - show State:/Network/Service/net.juniper.pulse.nc.main/IPv4 + show State:/Network/Service/#{versionIdentifier}/IPv4 quit EOF` log(juniperState, options) - serviceKey = juniperState.gsub(/.*net\.juniper\.DSUnderlyingServiceName : (.*?)\s.*/m, "\\1").chomp + serviceKey = juniperState.gsub(/.*net\.pulsesecure\.DSUnderlyingServiceName : (.*?)\s.*/m, "\\1").chomp log(serviceKey, options) return serviceKey end @@ -33,6 +33,9 @@ def retrieveServiceKey(options) opts.on( '-d', '--off', 'Deactivate charles on your VPN' ) do options[:on] = false end + opts.on( '-o', '--old', 'Use for older versions of pulse' ) do + options[:old] = true + end opts.on( '-h', '--help', 'Display this screen' ) do puts opts exit @@ -53,8 +56,12 @@ def retrieveServiceKey(options) exit end +versionIdentifier = "net.pulsesecure.pulse.nc.main" +if options[:old] + versionIdentifier = "net.juniper.ncproxyd.main" +end -serviceKey = retrieveServiceKey(options) +serviceKey = retrieveServiceKey(options, versionIdentifier) if options[:on] puts "Please make sure your VPN is connected and Charles is running, then" @@ -65,7 +72,7 @@ def retrieveServiceKey(options) results = `scutil<< EOF d.init get Setup:/Network/Service/#{serviceKey}/Proxies -set State:/Network/Service/net.juniper.pulse.nc.main/Proxies +set State:/Network/Service/#{versionIdentifier}/Proxies quit EOF` puts "Charles should be recording now. Don't forget to run:" @@ -77,10 +84,10 @@ def retrieveServiceKey(options) # disable proxying results = `scutil<< EOF d.init -get State:/Network/Service/net.juniper.pulse.nc.main/Proxies +get State:/Network/Service/#{versionIdentifier}/Proxies d.add HTTPSEnable 0 d.add HTTPEnable 0 -set State:/Network/Service/net.juniper.pulse.nc.main/Proxies +set State:/Network/Service/#{versionIdentifier}/Proxies quit EOF` end