public class

PacScriptMethods

extends Object
implements ScriptMethods
java.lang.Object
   ↳ com.microstrategy.utils.proxy.PacScriptMethods

Class Overview

Implementation of PAC JavaScript functions.

Summary

Constants
String OVERRIDE_LOCAL_IP
Public Constructors
PacScriptMethods()
Constructor
Public Methods
boolean dateRange(Object day1, Object month1, Object year1, Object day2, Object month2, Object year2, Object gmt)
Only the first parameter is mandatory.
boolean dnsDomainIs(String host, String domain)
Tests if an URL is in a given domain.
int dnsDomainLevels(String host)
Returns the number of DNS domain levels (number of dots) in the host name.
String dnsResolve(String host)
Resolves the given DNS host name into an IP address, and returns it in the dot separated format as a string.
String dnsResolveEx(String host)
dnsResolveEx
String getClientVersion()
getClientVersion
boolean isInNet(String host, String pattern, String mask)
Returns true if the IP address of the host matches the specified IP address pattern.
boolean isInNetEx(String ipAddress, String ipPrefix)
isInNetEx
boolean isPlainHostName(String host)
isPlainHostName
boolean isResolvable(String host)
Tries to resolve the host name.
boolean isResolvableEx(String host)
isResolvableEx
boolean localHostOrDomainIs(String host, String domain)
Is true if the host name matches exactly the specified host name, or if there is no domain name part in the host name, but the unqualified host name matches.
String myIpAddress()
Returns the IP address of the host that the process is running on, as a string in the dot-separated integer format.
String myIpAddressEx()
myIpAddressEx
void setCurrentTime(Calendar cal)
Sets a calendar with the current time.
boolean shExpMatch(String str, String shexp)
Returns true if the string matches the specified shell expression.
String sortIpAddressList(String ipAddressList)
sortIpAddressList
boolean timeRange(Object hour1, Object min1, Object sec1, Object hour2, Object min2, Object sec2, Object gmt)
Some parameters can be left out therefore the meaning of the parameters changes.
boolean weekdayRange(String wd1, String wd2, String gmt)
Only the first parameter is mandatory.
[Expand]
Inherited Methods
From class java.lang.Object
From interface com.microstrategy.utils.proxy.ScriptMethods

Constants

public static final String OVERRIDE_LOCAL_IP

Constant Value: "com.btr.proxy.pac.overrideLocalIP"

Public Constructors

public PacScriptMethods ()

Constructor

Public Methods

public boolean dateRange (Object day1, Object month1, Object year1, Object day2, Object month2, Object year2, Object gmt)

Only the first parameter is mandatory. All other parameters can be left out therefore the meaning of the parameters changes. The method definition shows the version with the most possible parameters filled. The real meaning of the parameters is guessed from it's value. If "from" and "to" are specified then the bounds are inclusive. If the "GMT" parameter is specified, times are taken to be in GMT, otherwise the local time zone is used.

Parameters
day1 is the day of month between 1 and 31 (as an integer).
month1 one of JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC
year1 is the full year number, for example 1995 (but not 95). Integer.
day2 is the day of month between 1 and 31 (as an integer).
month2 one of JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC
year2 is the full year number, for example 1995 (but not 95). Integer.
gmt "GMT" for gmt time format else "undefined"
Returns
  • true if the current date matches the given range.

public boolean dnsDomainIs (String host, String domain)

Tests if an URL is in a given domain.

Parameters
host is the host name from the URL.
domain is the domain name to test the host name against.
Returns
  • true if the domain of host name matches.

public int dnsDomainLevels (String host)

Returns the number of DNS domain levels (number of dots) in the host name.

Parameters
host is the host name from the URL.
Returns
  • number of DNS domain levels.

public String dnsResolve (String host)

Resolves the given DNS host name into an IP address, and returns it in the dot separated format as a string.

Parameters
host the host to resolve.
Returns
  • the resolved IP, empty string if not resolvable.

public String dnsResolveEx (String host)

dnsResolveEx

public String getClientVersion ()

getClientVersion

Returns
  • the extension version, currently 1.0

public boolean isInNet (String host, String pattern, String mask)

Returns true if the IP address of the host matches the specified IP address pattern. Pattern and mask specification is done the same way as for SOCKS configuration. Example: isInNet(host, "198.95.0.0", "255.255.0.0") is true if the IP address of the host matches 198.95.*.*.

Parameters
host a DNS host name, or IP address. If a host name is passed, it will be resolved into an IP address by this function.
pattern an IP address pattern in the dot-separated format.
mask mask for the IP address pattern informing which parts of the IP address should be matched against. 0 means ignore, 255 means match.
Returns
  • true if it matches else false.

public boolean isInNetEx (String ipAddress, String ipPrefix)

isInNetEx

Parameters
ipAddress an IP4 or IP6 address
ipPrefix A string containing colon delimited IP prefix with top n bits specified in the bit field (i.e. 3ffe:8311:ffff::/48 or 123.112.0.0/16).
Returns
  • true if the host is in the given subnet, else false.
See Also
  • com.btr.proxy.selector.pac.ScriptMethods#isInNetEx(java.lang.String, java.lang.String)

public boolean isPlainHostName (String host)

isPlainHostName

See Also
  • com.btr.proxy.selector.pac.ScriptMethods#isPlainHostName(java.lang.String)

public boolean isResolvable (String host)

Tries to resolve the host name. Returns true if succeeds.

Parameters
host is the host name from the URL.
Returns
  • true if resolvable else false.

public boolean isResolvableEx (String host)

isResolvableEx

Parameters
host is the host name from the URL.
Returns
  • true if resolvable else false.

public boolean localHostOrDomainIs (String host, String domain)

Is true if the host name matches exactly the specified host name, or if there is no domain name part in the host name, but the unqualified host name matches.

Parameters
host the host name from the URL.
domain fully qualified host name with domain to match against.
Returns
  • true if matches else false.

public String myIpAddress ()

Returns the IP address of the host that the process is running on, as a string in the dot-separated integer format.

Returns
  • an IP as string.

public String myIpAddressEx ()

myIpAddressEx

Returns
  • the list, empty string if not available.
See Also
  • com.btr.proxy.selector.pac.ScriptMethods#myIpAddressEx()

public void setCurrentTime (Calendar cal)

Sets a calendar with the current time. If this is set all date and time based methods will use this calendar to determine the current time instead of the real time. This is only be used by unit tests and is not part of the public API.

Parameters
cal a Calendar to set.

public boolean shExpMatch (String str, String shexp)

Returns true if the string matches the specified shell expression. Actually, currently the patterns are shell expressions, not regular expressions.

Parameters
str is any string to compare (e.g. the URL, or the host name).
shexp is a shell expression to compare against.
Returns
  • true if the string matches, else false.

public String sortIpAddressList (String ipAddressList)

sortIpAddressList

Parameters
ipAddressList the address list.
Returns
  • the sorted list, empty string if sort is not possible

public boolean timeRange (Object hour1, Object min1, Object sec1, Object hour2, Object min2, Object sec2, Object gmt)

Some parameters can be left out therefore the meaning of the parameters changes. The method definition shows the version with the most possible parameters filled. The real meaning of the parameters is guessed from it's value. If "from" and "to" are specified then the bounds are inclusive. If the "GMT" parameter is specified, times are taken to be in GMT, otherwise the local time zone is used.

 timeRange(hour)
 timeRange(hour1, hour2)
 timeRange(hour1, min1, hour2, min2)
 timeRange(hour1, min1, sec1, hour2, min2, sec2)
 timeRange(hour1, min1, sec1, hour2, min2, sec2, gmt)
 

Parameters
hour1 is the hour from 0 to 23. (0 is midnight, 23 is 11 pm.)
min1 minutes from 0 to 59.
sec1 seconds from 0 to 59.
hour2 is the hour from 0 to 23. (0 is midnight, 23 is 11 pm.)
min2 minutes from 0 to 59.
sec2 seconds from 0 to 59.
gmt "GMT" for gmt time format else "undefined"
Returns
  • true if the current time matches the given range.

public boolean weekdayRange (String wd1, String wd2, String gmt)

Only the first parameter is mandatory. Either the second, the third, or both may be left out. If only one parameter is present, the function yields a true value on the weekday that the parameter represents. If the string "GMT" is specified as a second parameter, times are taken to be in GMT, otherwise in local time zone. If both wd1 and wd2 are defined, the condition is true if the current weekday is in between those two weekdays. Bounds are inclusive. If the "GMT" parameter is specified, times are taken to be in GMT, otherwise the local time zone is used.

Parameters
wd1 weekday 1 is one of SUN MON TUE WED THU FRI SAT
wd2 weekday 2 is one of SUN MON TUE WED THU FRI SAT
gmt "GMT" for gmt time format else "undefined"
Returns
  • true if current day matches the criteria.