Monday, November 08, 2010 at 12:02 AM.
system.verbs.builtins.betty.rpc.checkClient
on checkClient (adrParamTable) { <<Changes <<1/31/02; 2:06:22 PM by JES <<Perform the allow-by-IP address security check for betty.rpc.server and soap.rpc.server. Returns true if the RPC call is allowed, or false if not. <<Factored from betty.rpc.server. local (flBlocked = false); if defined (user.betty.prefs.flAllowByIpOnly) { if user.betty.prefs.flAllowByIpOnly { flBlocked = true; local (okIpList = user.betty.prefs.allowedIpAddresses); if typeOf (okIpList) == stringType { <<It's a comma-delimited string: create a local list from that string. local (s = okIpList); okIpList = {}; local (i); for i = 1 to string.countFields (s, ',') { local (oneIpAddress = string.nthField (s, ',', i)); oneIpAddress = string.trimWhiteSpace (oneIpAddress); if oneIpAddress != "" { okIpList = okIpList + oneIpAddress}}}; local (oneIp); for oneIp in okIpList { if string.trimWhiteSpace (oneIp) != "" { if adrParamTable^.client == oneIp { flblocked = false; break}}}}}; return (not flBlocked)}
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.