|
From: creedon <icr...@us...> - 2005-06-19 18:28:19
|
Update of /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/utilities In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20606 Modified Files: getConfigInfo Log Message: Mac OS X port forwarding info is sent even if port forwarding isn't enable, useful for diagnostics Index: getConfigInfo =================================================================== RCS file: /cvsroot/frontierkernel/odbs/mainResponderRoot/mainResponder/utilities/getConfigInfo,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** getConfigInfo 19 Jun 2005 04:00:41 -0000 1.2 --- getConfigInfo 19 Jun 2005 18:28:10 -0000 1.3 *************** *** 1,3 **** FrontierVcsFile:1:scpt:mainResponder.utilities.getConfigInfo ! on getConfigInfo (flIncludeHeader=true, fldebug = false) { ÇGet general config info about Frontier and mainResponder. ÇChanges Ç6/18/05; 11:20:24 AM by TAC Çmoved fldebug into parameters for call, added test bundle, less likely to leave debug flag set to true this way Çadded section for Mac OS X Port Forwarding and ipfw configuration Çwhen building simple table, get size of object in try in case object has no size as in the case of nil value Çdisabled Manila specific code local (mailtext = "", indentlevel = 0); on add (s) { mailtext = mailtext + string.filledstring (" ", indentlevel) + s + "\r\n"}; on addOnOff (label, bool) { local (s = label + ": "); if bool { s = s + "On"} else { s = s + "Off"}; add (s)}; add ("Frontier configuration on " + clock.now () + "."); indentlevel++; add (""); bundle { //Installation information if flIncludeHeader { add ("Installation information:"); indentlevel++; add (""); add ("Frontier version: " + Frontier.version ()); local (os = "Windows"); if system.environment.isMac { if system.environment.isCarbon { os = "Mac OS X"} else { os = "Mac OS"}}; add ("Operating System: " + os); local (osVersion = system.environment.osVersionString); if system.environment.isCarbon { osVersion = string.replace (osVersion, "16", "10")}; add ("OS Version: " + osVersion); add ("IP address: " + tcp.dns.getMyDottedId ()); add ("Frontier folder: " + file.folderfrompath (frontier.getprogrampath ())); add (""); indentlevel--}}; bundle { //About you and your computer add ("About you and your computer:"); indentlevel++; add (""); add ("Name: " + user.prefs.name); add ("Organization: " + user.prefs.organization); add ("Mail address: " + user.prefs.mailAddress); add ("Outgoing mail server: " + user.prefs.mailHost); addOnOff ("Web server", inetd.isDaemonRunning (@user.inetd.config.http)); add ("Port: " + user.inetd.config.http.port); add ("Log folder: " + user.log.prefs.folder); add (""); indentlevel--}; bundle { //Safety and performance add ("Safety and performance:"); indentlevel++; add (""); addOnOff ("Save changed databases every minute", config.mainResponder.prefs.flSaveDatabasesEveryMinute); add (""); indentlevel--}; bundle { //Proxy server add ("Proxy server:"); indentlevel++; add (""); add ("Domain: " + user.webbrowser.proxy.domain); add ("Port: " + user.webbrowser.proxy.port); add ("Username: " + user.webbrowser.proxy.username); add (""); indentlevel--}; bundle { //Installed tools add ("Installed tools:"); indentlevel++; add (""); local (adrItem); for adrItem in @user.tools.databases { if adrItem^.flInstalled { add (nameOf (adrItem^))}}; add (""); indentlevel--}; bundle { //Open Databases add ("Open Databases:"); indentlevel++; add (""); on visit (f) { local (fname = file.fileFromPath (f)); local (folder = file.folderFromPath (f)); local (folderName = file.fileFromPath (folder)); folderName = string.popTrailing (folderName, file.getPathChar ()); local (size = string.megabyteString (file.size (f))); add (folderName + "/" + fname + ": " + size)}; table.visitOpenDatabases (@visit); add (""); indentlevel--}; bundle { //Tools folder contents add ("Tools folder:"); indentlevel++; add (""); local (f); fileloop (f in Frontier.tools.getToolsFolderPath ()) { local (fname = file.fileFromPath (f)); local (size = string.megabyteString (file.size (f))); add (fname + ": " + size)}; add (""); indentlevel--}; bundle { //agents add ("Agents:"); indentlevel++; add (""); local (adrItem); for adrItem in @system.agents { add (nameOf (adrItem^))}; add (""); indentlevel--}; bundle { //threads add ("Threads:"); indentlevel++; add (""); local (adrItem); for adrItem in @user.scheduler.threads { local (flDefined = true, flEnabled = true); if not defined (adrItem^) { flDefined = false} else { if not (adrItem^^.enabled) { flEnabled = false}}; local (threadName = nameOf (adrItem^)); if not flDefined { add (threadName + ": [not defined]")} else { if not flEnabled { add (threadName + ": [disabled]")} else { add (threadName + ": " + adrItem^)}}}; add (""); indentlevel--}; bundle { //XML-RPC add ("XML-RPC:"); indentlevel++; add (""); local (ctOutgoingAsynchMessages = 0); if defined (user.betty.queueOutgoing.table) { ctOutgoingAsynchMessages = sizeOf (user.betty.queueOutgoing.table)}; addOnOff ("Allow by IP Only", user.betty.prefs.flAllowByIPOnly); ÇaddOnOff ("Keep Asynch Client Log", user.betty.prefs.flKeepAsynchClientLog) addOnOff ("Keep Server Log", user.betty.prefs.flKeepServerLog); add ("RPC Client Default Path: " + user.betty.prefs.rpcClientDefaultPath); add ("RPC Client Default Timeout: " + user.betty.prefs.rpcClientDefaultTimeout); add ("# Pending Asynch Messages: " + ctOutgoingAsynchMessages); add (""); add ("Handlers:"); indentlevel++; add (""); local (adr); for adr in @user.betty.rpcHandlers { local (name = nameOf (adr^)); local (type = typeOf (adr^)); local (val = ""); case type { tableType { val = sizeOf (adr^) + " items"}; scriptType { val = sizeOf (adr^) + " lines"}; addressType { val = adr^}}; if val == "" { add (name)} else { add (name + ": " + val)}}; add (""); indentlevel--; addOnOff ("RPC2 responder enabled", defined (user.webserver.responders.RPC2.enabled) and user.webserver.responders.RPC2.enabled); add (""); indentlevel--}; bundle { //SOAP add ("SOAP:"); indentlevel++; add (""); add ("RPC Client Default Timeout: " + user.soap.prefs.rpcClientDefaultTimeout); add (""); add ("Handlers:"); indentlevel++; add (""); local (adr); for adr in @user.soap.rpcHandlers { local (name = nameOf (adr^)); local (type = typeOf (adr^)); local (val = ""); case type { tableType { val = sizeOf (adr^) + " items"}; scriptType { val = sizeOf (adr^) + " lines"}; addressType { val = adr^}}; if val == "" { add (name)} else { add (name + ": " + val)}}; add (""); indentlevel--; addOnOff ("SOAP responder enabled", defined (user.webserver.responders.soap.enabled) and user.webserver.responders.soap.enabled); add (""); indentlevel--}; on doSimpleTable (adrTable) { local (adrItem); for adrItem in adrTable { local (name = nameOf (adrItem^)); local (lowerName = string.lower (name)); if lowerName contains "password" or lowerName contains "serialnum" { continue}; local (value); local (size); try { size = sizeOf (adrItem^)}; case typeOf (adrItem^) { outlineType { value = "outline: " + size + " lines"}; scriptType { value = "script: " + size + " lines"}; wpTextType { value = "wp-text: " + size + " characters"}; tableType { value = "table: " + size + " items"}; menubarType { value = "menubar: " + size + " lines"}} else { value = string (adrItem^)}; add (name + ": " + value)}}; on addTableAsSection (title, adrTable) { local (nameAddress = string.popFileFromAddress (string (adrTable))); title = title + " (" + nameAddress + "): "; add (title); indentLevel++; add (""); doSimpleTable (adrTable); add (""); indentLevel--}; bundle { //Webserver bundle { //Responders add ("Responders:"); indentlevel++; add (""); local (adr); for adr in @user.webserver.responders { local (name = nameOf (adr^)); while (typeOf (adr^) == addressType) { adr = adr^}; local (flEnabled = adr^.enabled); addOnOff (name, flEnabled)}; add (""); indentlevel--}; bundle { //Webserver stats add ("Webserver stats:"); indentlevel++; add (""); add ("Hits: " + user.webserver.stats.hits); add ("Max connections: " + user.webserver.stats.maxConnections); add ("Max memory available: " + user.webserver.stats.maxMemAvail); add ("Min memory available: " + user.webserver.stats.minMemAvail); add ("Up since: " + user.webserver.stats.upSince); if defined (user.webserver.stats.wormHits) { add ("Worm hits: " + user.webserver.stats.wormHits)}; add (""); indentlevel--}; bundle { //Webserver prefs add ("Webserver prefs:"); indentlevel++; add (""); add ("Default responder: " + user.webserver.prefs.defaultResponder); addOnOff ("Debugging", user.webserver.prefs.fldebug); addOnOff ("Domain stats", user.webserver.prefs.flDomainStats); addOnOff ("DNS Lookups", user.webserver.prefs.flUseDns); add (""); indentlevel--}; bundle { //Webserver prefilters add ("Webserver PreFilters:"); indentlevel++; add (""); local (adrItem); for adrItem in @user.webserver.preFilters { if typeOf (adrItem^) == addressType { add (nameOf (adrItem^) + ": " + adrItem^)} else { add (nameOf (adrItem^))}}; add (""); indentlevel--}; bundle { //Webserver postfilters add ("Webserver PostFilters:"); indentlevel++; add (""); local (adrItem); for adrItem in @user.webserver.postFilters { if typeOf (adrItem^) == addressType { add (nameOf (adrItem^) + ": " + adrItem^)} else { add (nameOf (adrItem^))}}; add (""); indentlevel--}}; Çbundle //Manila // 6/16/05; 10:58:11 AM by TAC // disabled, eventually remove? Çon doThemesTable (adrTable) Çlocal (adrItem) Çfor adrItem in adrTable Çlocal (enabledString = "enabled") Çif not adrItem^.flEnabled ÇenabledString = "disabled" Çadd (nameOf (adrItem^) + ": " + enabledString) Çbundle //Manila callbacks Çadd ("Manila callbacks:"); indentlevel++ Çadd ("") Çlocal (adrItem) Çfor adrItem in @config.manila.callbacks Çadd (nameOf (adrItem^) + ":"); indentLevel++ Çlocal (sizeTable = sizeOf (adrItem^)) Çif sizeTable < 1 Çadd ("[Empty]") Çelse Çlocal (adrCallback) Çfor adrCallback in adrItem Çif typeOf (adrCallback^) == addressType Çadd (nameOf (adrCallback^) + ": " + adrCallback^) Çelse Çadd (nameOf (adrCallback^)) ÇindentLevel-- Çadd (""); indentlevel-- Çbundle //Manila dg themes Çadd ("Manila discussion group themes:"); indentlevel++ Çadd ("") ÇdoThemesTable (@config.manila.discussionGroupThemes) Çadd (""); indentlevel-- Çbundle //Manila hosting Çadd ("Manila hosting:"); indentlevel++ Çadd ("") Çlocal (adrItem) Çfor adrItem in @config.manila.hosting.sites Çlocal (name = nameOf (adrItem^)) Çadd (name + ":");indentLevel++ ÇdoSimpleTable (adrItem) ÇindentLevel-- Çadd (""); indentlevel-- Çbundle //Manila prefs Çadd ("Manila prefs (config.manila.prefs):"); indentlevel++ Çadd ("") ÇdoSimpleTable (@config.manila.prefs) Çadd (""); indentlevel-- Çbundle //Manila sites Çadd ("Manila sites:"); indentlevel++ Çadd ("") Çadd ("# sites in config.manila.sites: " + sizeOf (config.manila.sites)) Çadd (""); indentlevel-- Çbundle //Manila stats Çadd ("Manila stats:"); indentlevel++ Çadd ("") Çadd ("# referers tables: " + sizeOf (config.manila.stats.referers)) Çif defined (config.manila.stats.reports) Çadd ("# reports: " + sizeOf (config.manila.stats.reports)) Çif defined (config.manila.stats.sites.allTime) Çadd ("# all-time sites stats: " + sizeOf (config.manila.stats.sites.allTime)) Çif defined (config.manila.stats.sites.hourly) Çadd ("# hourly sites stats: " + sizeOf (config.manila.stats.sites.hourly)) Çif defined (config.manila.stats.sites.today) Çadd ("# today sites stats: " + sizeOf (config.manila.stats.sites.today)) Çadd (""); indentlevel-- Çbundle //Manila themes Çadd ("Manila themes:"); indentlevel++ Çadd ("") ÇdoThemesTable (@config.manila.themes) Çadd (""); indentlevel-- bundle { //mainResponder addTableAsSection ("mainResponder global URLs", @config.mainResponder.urls); addTableAsSection ("mainResponder prefs", @config.mainResponder.prefs); addTableAsSection ("mainResponder globals", @config.mainResponder.globals); bundle { //mainResponder legal macros add ("mainResponder legal macros:"); indentlevel++; add (""); local (adrItem); for adrItem in @config.mainResponder.prefs.legalMacros { local (name = nameOf (adrItem^)); case typeOf (adrItem^) { booleanType { add (name + ": " + adrItem^)}; tableType { if (sizeOf (adrItem^) == 2) and (defined (adrItem^.flLegal)) and (defined (adrItem^.flParams)) { add (name + ": [takes params]: " + adrItem^.flLegal)} else { add (name + ": [misconfigured]")}}}}; add (""); indentlevel--}; bundle { //mainResponder search queue add ("mainResponder search queue:"); indentlevel++; add (""); if defined (config.mainResponder.data.searchQueue) { add ("# items: " + sizeOf (config.mainResponder.data.searchQueue))} else { add ("Empty")}; add (""); indentlevel--}; bundle { //mainResponder callbacks add ("mainResponder callbacks:"); indentlevel++; add (""); local (adrItem); for adrItem in @config.mainResponder.callbacks { add (nameOf (adrItem^) + ":"); indentLevel++; local (sizeTable = sizeOf (adrItem^)); if sizeTable < 1 { add ("[Empty]")} else { local (adrCallback); for adrCallback in adrItem { if typeOf (adrCallback^) == addressType { add (nameOf (adrCallback^) + ": " + adrCallback^)} else { add (nameOf (adrCallback^))}}}; indentLevel--}; add (""); indentlevel--}; bundle { //mainResponder domains add ("mainResponder domains (config.mainResponder.domains):"); indentlevel++; add (""); local (adrItem); for adrItem in @config.mainResponder.domains { local (name = nameOf (adrItem^)); if typeOf (adrItem^) == tableType { if defined (adrItem^.siteTree.directory.outline) { add (name + " [siteTree]:"); indentLevel++; add (string (adrItem^.siteTree.directory.outline)); add (""); indentLevel--} else { add (name + ": table " + sizeOf (adrItem^) + " items")}} else { add (name + ": " + string (adrItem^))}}; add (""); indentlevel--}}; bundle { //user table if defined (user.applescripts.prefs) { addTableAsSection ("AppleScript", @user.applescripts.prefs)}; if defined (user.backups) { addTableAsSection ("Backups", @user.backups)}; if defined (user.batchExporter) { addTableAsSection ("BatchExporter", @user.batchExporter)}; bundle { //user.callbacks add ("user.callbacks:"); indentlevel++; add (""); local (adrItem); for adrItem in @user.callbacks { add (nameOf (adrItem^) + ":"); indentLevel++; local (sizeTable = sizeOf (adrItem^)); if sizeTable < 1 { add ("[Empty]")} else { local (adrCallback); for adrCallback in adrItem { if typeOf (adrCallback^) == addressType { add (nameOf (adrCallback^) + ": " + adrCallback^)} else { add (nameOf (adrCallback^))}}}; indentLevel--}; add (""); indentlevel--}; if defined (user.com) { addTableAsSection ("COM", @user.com)}; bundle { //user.databases add ("user.databases:"); indentlevel++; add (""); local (adrItem); for adrItem in @user.databases { add (nameOf (adrItem^) + ":"); indentLevel++; doSimpleTable (adrItem); indentLevel--}; add (""); indentlevel--}; if defined (user.export) { addTableAsSection ("Export", @user.export)}; if defined (user.html.glossary) { add ("user.html.glossary:"); indentlevel++; add (""); add ("# items: " + sizeOf (user.html.glossary)); add (""); indentlevel--}; if defined (user.html.macros) { add ("user.html.macros:"); indentlevel++; add (""); add ("# items: " + sizeOf (user.html.macros)); add (""); indentlevel--}; if defined (user.html.renderers) { add ("user.html.renderers:"); indentlevel++; add (""); add ("# items: " + sizeOf (user.html.renderers)); add (""); indentlevel--}; if defined (user.html.prefs) { addTableAsSection ("HTML prefs", @user.html.prefs)}; if defined (user.menus) { addTableAsSection ("Menus", @user.menus)}; if defined (user.prefs) { addTableAsSection ("Basic prefs", @user.prefs)}; if defined (user.prefs.dates) { addTableAsSection ("Dates", @user.prefs.dates)}; if defined (user.prefs.dialogs) { addTableAsSection ("Dialogs", @user.prefs.dialogs)}; if defined (user.prefs.fonts) { addTableAsSection ("Fonts", @user.prefs.fonts)}; if defined (user.prefs.search) { addTableAsSection ("Search", @user.prefs.search)}; if defined (user.rootUpdates.prefs) { addTableAsSection ("Root Updates prefs", @user.rootUpdates.prefs)}; if defined (user.rootUpdates.servers) { add ("user.rootUpdates.Servers:"); indentlevel++; add (""); local (adrItem); for adrItem in @user.rootUpdates.Servers { add (nameOf (adrItem^) + ":"); indentLevel++; doSimpleTable (adrItem); indentLevel--}; add (""); indentlevel--}; if defined (user.unix.scripts) { addTableAsSection ("Unix scripts", @user.unix.scripts)}; if defined (user.webBrowser) { addTableAsSection ("WebBrowser", @user.webBrowser)}}; bundle { //Misc if defined (system.verbs.traps) { addTableAsSection ("Traps", @system.verbs.traps)}; if defined (system.verbs.extensions) { addTableAsSection ("Extensions", @system.verbs.extensions)}; bundle { //root table sizes add ("Top-level table sizes:"); indentLevel++; add (""); local (adrItem); for adrItem in @root { local (name = nameOf (adrItem^)); local (size = sizeOf (adrItem^)); if typeOf (adrItem^) != tableType { add (name + ": Not a table, which surprises us.")} else { add (name + ": " + size + " items")}}; add ("");indentLevel--}; if system.environment.isCarbon { // Mac OS X port forwarding and ipfw if defined (user.prefs.portForwardingAdminPassword) { local (s = sys.unixShellCommand ("echo \"" + user.prefs.portForwardingAdminPassword + "\" | sudo /sbin/ipfw -a list")); sys.unixShellCommand ("sudo -K"); // drop our privs add ("Mac OS X Port Forwarding and ipfw:"); indentlevel++; add (""); addOnOff ("Port Forwarding enabled", defined (user.prefs.portForwardingAdminPassword)); add (""); add ("ipfw configuration:"); indentlevel++; add (""); s = string.replaceAll (s, '\n', '\n' + string.filledstring (" ", indentLevel)); add (s); indentlevel--; add (""); indentlevel--}}}; bundle { //Guest Databases folders on doFolder (name) { add (name + " folder:"); indentlevel++; add (""); local (f); fileloop (f in Frontier.getSubFolder (name)) { local (fname = file.fileFromPath (f)); fname = string.popTrailing (fname, file.getPathChar ()); if file.isFolder (f) { add (fname + ": [folder]")} else { local (size = string.megabyteString (file.size (f))); add (fname + ": " + size)}}; add (""); indentlevel--}; doFolder ("apps"); doFolder ("ops"); doFolder ("www")}; if fldebug { wp.newTextObject (mailText, @temp.FrontierConfiguration); edit (@temp.FrontierConfiguration)}; return (mailText)}; Çbundle // test ÇgetConfigInfo (fldebug: true) \ No newline at end of file --- 1,3 ---- FrontierVcsFile:1:scpt:mainResponder.utilities.getConfigInfo ! on getConfigInfo (flIncludeHeader=true, fldebug = false) { ÇGet general config info about Frontier and mainResponder. ÇChanges Ç6/19/05; 10:44:09 AM by TAC ÇMac OS X port forwarding info is sent even if port forwarding isn't enable, could be useful for diagnostics Çmoved fldebug into parameters for call, added test bundle, less likely to leave debug flag set to true this way Çadded section for Mac OS X Port Forwarding and ipfw configuration Çwhen building simple table, get size of object in try in case object has no size as in the case of nil value Çdisabled Manila specific code local (mailtext = "", indentlevel = 0); on add (s) { mailtext = mailtext + string.filledstring (" ", indentlevel) + s + "\r\n"}; on addOnOff (label, bool) { local (s = label + ": "); if bool { s = s + "On"} else { s = s + "Off"}; add (s)}; add ("Frontier configuration on " + clock.now () + "."); indentlevel++; add (""); bundle { //Installation information if flIncludeHeader { add ("Installation information:"); indentlevel++; add (""); add ("Frontier version: " + Frontier.version ()); local (os = "Windows"); if system.environment.isMac { if system.environment.isCarbon { os = "Mac OS X"} else { os = "Mac OS"}}; add ("Operating System: " + os); local (osVersion = system.environment.osVersionString); if system.environment.isCarbon { osVersion = string.replace (osVersion, "16", "10")}; add ("OS Version: " + osVersion); add ("IP address: " + tcp.dns.getMyDottedId ()); add ("Frontier folder: " + file.folderfrompath (frontier.getprogrampath ())); add (""); indentlevel--}}; bundle { //About you and your computer add ("About you and your computer:"); indentlevel++; add (""); add ("Name: " + user.prefs.name); add ("Organization: " + user.prefs.organization); add ("Mail address: " + user.prefs.mailAddress); add ("Outgoing mail server: " + user.prefs.mailHost); addOnOff ("Web server", inetd.isDaemonRunning (@user.inetd.config.http)); add ("Port: " + user.inetd.config.http.port); add ("Log folder: " + user.log.prefs.folder); add (""); indentlevel--}; bundle { //Safety and performance add ("Safety and performance:"); indentlevel++; add (""); addOnOff ("Save changed databases every minute", config.mainResponder.prefs.flSaveDatabasesEveryMinute); add (""); indentlevel--}; bundle { //Proxy server add ("Proxy server:"); indentlevel++; add (""); add ("Domain: " + user.webbrowser.proxy.domain); add ("Port: " + user.webbrowser.proxy.port); add ("Username: " + user.webbrowser.proxy.username); add (""); indentlevel--}; bundle { //Installed tools add ("Installed tools:"); indentlevel++; add (""); local (adrItem); for adrItem in @user.tools.databases { if adrItem^.flInstalled { add (nameOf (adrItem^))}}; add (""); indentlevel--}; bundle { //Open Databases add ("Open Databases:"); indentlevel++; add (""); on visit (f) { local (fname = file.fileFromPath (f)); local (folder = file.folderFromPath (f)); local (folderName = file.fileFromPath (folder)); folderName = string.popTrailing (folderName, file.getPathChar ()); local (size = string.megabyteString (file.size (f))); add (folderName + "/" + fname + ": " + size)}; table.visitOpenDatabases (@visit); add (""); indentlevel--}; bundle { //Tools folder contents add ("Tools folder:"); indentlevel++; add (""); local (f); fileloop (f in Frontier.tools.getToolsFolderPath ()) { local (fname = file.fileFromPath (f)); local (size = string.megabyteString (file.size (f))); add (fname + ": " + size)}; add (""); indentlevel--}; bundle { //agents add ("Agents:"); indentlevel++; add (""); local (adrItem); for adrItem in @system.agents { add (nameOf (adrItem^))}; add (""); indentlevel--}; bundle { //threads add ("Threads:"); indentlevel++; add (""); local (adrItem); for adrItem in @user.scheduler.threads { local (flDefined = true, flEnabled = true); if not defined (adrItem^) { flDefined = false} else { if not (adrItem^^.enabled) { flEnabled = false}}; local (threadName = nameOf (adrItem^)); if not flDefined { add (threadName + ": [not defined]")} else { if not flEnabled { add (threadName + ": [disabled]")} else { add (threadName + ": " + adrItem^)}}}; add (""); indentlevel--}; bundle { //XML-RPC add ("XML-RPC:"); indentlevel++; add (""); local (ctOutgoingAsynchMessages = 0); if defined (user.betty.queueOutgoing.table) { ctOutgoingAsynchMessages = sizeOf (user.betty.queueOutgoing.table)}; addOnOff ("Allow by IP Only", user.betty.prefs.flAllowByIPOnly); ÇaddOnOff ("Keep Asynch Client Log", user.betty.prefs.flKeepAsynchClientLog) addOnOff ("Keep Server Log", user.betty.prefs.flKeepServerLog); add ("RPC Client Default Path: " + user.betty.prefs.rpcClientDefaultPath); add ("RPC Client Default Timeout: " + user.betty.prefs.rpcClientDefaultTimeout); add ("# Pending Asynch Messages: " + ctOutgoingAsynchMessages); add (""); add ("Handlers:"); indentlevel++; add (""); local (adr); for adr in @user.betty.rpcHandlers { local (name = nameOf (adr^)); local (type = typeOf (adr^)); local (val = ""); case type { tableType { val = sizeOf (adr^) + " items"}; scriptType { val = sizeOf (adr^) + " lines"}; addressType { val = adr^}}; if val == "" { add (name)} else { add (name + ": " + val)}}; add (""); indentlevel--; addOnOff ("RPC2 responder enabled", defined (user.webserver.responders.RPC2.enabled) and user.webserver.responders.RPC2.enabled); add (""); indentlevel--}; bundle { //SOAP add ("SOAP:"); indentlevel++; add (""); add ("RPC Client Default Timeout: " + user.soap.prefs.rpcClientDefaultTimeout); add (""); add ("Handlers:"); indentlevel++; add (""); local (adr); for adr in @user.soap.rpcHandlers { local (name = nameOf (adr^)); local (type = typeOf (adr^)); local (val = ""); case type { tableType { val = sizeOf (adr^) + " items"}; scriptType { val = sizeOf (adr^) + " lines"}; addressType { val = adr^}}; if val == "" { add (name)} else { add (name + ": " + val)}}; add (""); indentlevel--; addOnOff ("SOAP responder enabled", defined (user.webserver.responders.soap.enabled) and user.webserver.responders.soap.enabled); add (""); indentlevel--}; on doSimpleTable (adrTable) { local (adrItem); for adrItem in adrTable { local (name = nameOf (adrItem^)); local (lowerName = string.lower (name)); if lowerName contains "password" or lowerName contains "serialnum" { continue}; local (value); local (size); try { size = sizeOf (adrItem^)}; case typeOf (adrItem^) { outlineType { value = "outline: " + size + " lines"}; scriptType { value = "script: " + size + " lines"}; wpTextType { value = "wp-text: " + size + " characters"}; tableType { value = "table: " + size + " items"}; menubarType { value = "menubar: " + size + " lines"}} else { value = string (adrItem^)}; add (name + ": " + value)}}; on addTableAsSection (title, adrTable) { local (nameAddress = string.popFileFromAddress (string (adrTable))); title = title + " (" + nameAddress + "): "; add (title); indentLevel++; add (""); doSimpleTable (adrTable); add (""); indentLevel--}; bundle { //Webserver bundle { //Responders add ("Responders:"); indentlevel++; add (""); local (adr); for adr in @user.webserver.responders { local (name = nameOf (adr^)); while (typeOf (adr^) == addressType) { adr = adr^}; local (flEnabled = adr^.enabled); addOnOff (name, flEnabled)}; add (""); indentlevel--}; bundle { //Webserver stats add ("Webserver stats:"); indentlevel++; add (""); add ("Hits: " + user.webserver.stats.hits); add ("Max connections: " + user.webserver.stats.maxConnections); add ("Max memory available: " + user.webserver.stats.maxMemAvail); add ("Min memory available: " + user.webserver.stats.minMemAvail); add ("Up since: " + user.webserver.stats.upSince); if defined (user.webserver.stats.wormHits) { add ("Worm hits: " + user.webserver.stats.wormHits)}; add (""); indentlevel--}; bundle { //Webserver prefs add ("Webserver prefs:"); indentlevel++; add (""); add ("Default responder: " + user.webserver.prefs.defaultResponder); addOnOff ("Debugging", user.webserver.prefs.fldebug); addOnOff ("Domain stats", user.webserver.prefs.flDomainStats); addOnOff ("DNS Lookups", user.webserver.prefs.flUseDns); add (""); indentlevel--}; bundle { //Webserver prefilters add ("Webserver PreFilters:"); indentlevel++; add (""); local (adrItem); for adrItem in @user.webserver.preFilters { if typeOf (adrItem^) == addressType { add (nameOf (adrItem^) + ": " + adrItem^)} else { add (nameOf (adrItem^))}}; add (""); indentlevel--}; bundle { //Webserver postfilters add ("Webserver PostFilters:"); indentlevel++; add (""); local (adrItem); for adrItem in @user.webserver.postFilters { if typeOf (adrItem^) == addressType { add (nameOf (adrItem^) + ": " + adrItem^)} else { add (nameOf (adrItem^))}}; add (""); indentlevel--}}; Çbundle //Manila // 6/16/05; 10:58:11 AM by TAC // disabled, eventually remove? Çon doThemesTable (adrTable) Çlocal (adrItem) Çfor adrItem in adrTable Çlocal (enabledString = "enabled") Çif not adrItem^.flEnabled ÇenabledString = "disabled" Çadd (nameOf (adrItem^) + ": " + enabledString) Çbundle //Manila callbacks Çadd ("Manila callbacks:"); indentlevel++ Çadd ("") Çlocal (adrItem) Çfor adrItem in @config.manila.callbacks Çadd (nameOf (adrItem^) + ":"); indentLevel++ Çlocal (sizeTable = sizeOf (adrItem^)) Çif sizeTable < 1 Çadd ("[Empty]") Çelse Çlocal (adrCallback) Çfor adrCallback in adrItem Çif typeOf (adrCallback^) == addressType Çadd (nameOf (adrCallback^) + ": " + adrCallback^) Çelse Çadd (nameOf (adrCallback^)) ÇindentLevel-- Çadd (""); indentlevel-- Çbundle //Manila dg themes Çadd ("Manila discussion group themes:"); indentlevel++ Çadd ("") ÇdoThemesTable (@config.manila.discussionGroupThemes) Çadd (""); indentlevel-- Çbundle //Manila hosting Çadd ("Manila hosting:"); indentlevel++ Çadd ("") Çlocal (adrItem) Çfor adrItem in @config.manila.hosting.sites Çlocal (name = nameOf (adrItem^)) Çadd (name + ":");indentLevel++ ÇdoSimpleTable (adrItem) ÇindentLevel-- Çadd (""); indentlevel-- Çbundle //Manila prefs Çadd ("Manila prefs (config.manila.prefs):"); indentlevel++ Çadd ("") ÇdoSimpleTable (@config.manila.prefs) Çadd (""); indentlevel-- Çbundle //Manila sites Çadd ("Manila sites:"); indentlevel++ Çadd ("") Çadd ("# sites in config.manila.sites: " + sizeOf (config.manila.sites)) Çadd (""); indentlevel-- Çbundle //Manila stats Çadd ("Manila stats:"); indentlevel++ Çadd ("") Çadd ("# referers tables: " + sizeOf (config.manila.stats.referers)) Çif defined (config.manila.stats.reports) Çadd ("# reports: " + sizeOf (config.manila.stats.reports)) Çif defined (config.manila.stats.sites.allTime) Çadd ("# all-time sites stats: " + sizeOf (config.manila.stats.sites.allTime)) Çif defined (config.manila.stats.sites.hourly) Çadd ("# hourly sites stats: " + sizeOf (config.manila.stats.sites.hourly)) Çif defined (config.manila.stats.sites.today) Çadd ("# today sites stats: " + sizeOf (config.manila.stats.sites.today)) Çadd (""); indentlevel-- Çbundle //Manila themes Çadd ("Manila themes:"); indentlevel++ Çadd ("") ÇdoThemesTable (@config.manila.themes) Çadd (""); indentlevel-- bundle { //mainResponder addTableAsSection ("mainResponder global URLs", @config.mainResponder.urls); addTableAsSection ("mainResponder prefs", @config.mainResponder.prefs); addTableAsSection ("mainResponder globals", @config.mainResponder.globals); bundle { //mainResponder legal macros add ("mainResponder legal macros:"); indentlevel++; add (""); local (adrItem); for adrItem in @config.mainResponder.prefs.legalMacros { local (name = nameOf (adrItem^)); case typeOf (adrItem^) { booleanType { add (name + ": " + adrItem^)}; tableType { if (sizeOf (adrItem^) == 2) and (defined (adrItem^.flLegal)) and (defined (adrItem^.flParams)) { add (name + ": [takes params]: " + adrItem^.flLegal)} else { add (name + ": [misconfigured]")}}}}; add (""); indentlevel--}; bundle { //mainResponder search queue add ("mainResponder search queue:"); indentlevel++; add (""); if defined (config.mainResponder.data.searchQueue) { add ("# items: " + sizeOf (config.mainResponder.data.searchQueue))} else { add ("Empty")}; add (""); indentlevel--}; bundle { //mainResponder callbacks add ("mainResponder callbacks:"); indentlevel++; add (""); local (adrItem); for adrItem in @config.mainResponder.callbacks { add (nameOf (adrItem^) + ":"); indentLevel++; local (sizeTable = sizeOf (adrItem^)); if sizeTable < 1 { add ("[Empty]")} else { local (adrCallback); for adrCallback in adrItem { if typeOf (adrCallback^) == addressType { add (nameOf (adrCallback^) + ": " + adrCallback^)} else { add (nameOf (adrCallback^))}}}; indentLevel--}; add (""); indentlevel--}; bundle { //mainResponder domains add ("mainResponder domains (config.mainResponder.domains):"); indentlevel++; add (""); local (adrItem); for adrItem in @config.mainResponder.domains { local (name = nameOf (adrItem^)); if typeOf (adrItem^) == tableType { if defined (adrItem^.siteTree.directory.outline) { add (name + " [siteTree]:"); indentLevel++; add (string (adrItem^.siteTree.directory.outline)); add (""); indentLevel--} else { add (name + ": table " + sizeOf (adrItem^) + " items")}} else { add (name + ": " + string (adrItem^))}}; add (""); indentlevel--}}; bundle { //user table if defined (user.applescripts.prefs) { addTableAsSection ("AppleScript", @user.applescripts.prefs)}; if defined (user.backups) { addTableAsSection ("Backups", @user.backups)}; if defined (user.batchExporter) { addTableAsSection ("BatchExporter", @user.batchExporter)}; bundle { //user.callbacks add ("user.callbacks:"); indentlevel++; add (""); local (adrItem); for adrItem in @user.callbacks { add (nameOf (adrItem^) + ":"); indentLevel++; local (sizeTable = sizeOf (adrItem^)); if sizeTable < 1 { add ("[Empty]")} else { local (adrCallback); for adrCallback in adrItem { if typeOf (adrCallback^) == addressType { add (nameOf (adrCallback^) + ": " + adrCallback^)} else { add (nameOf (adrCallback^))}}}; indentLevel--}; add (""); indentlevel--}; if defined (user.com) { addTableAsSection ("COM", @user.com)}; bundle { //user.databases add ("user.databases:"); indentlevel++; add (""); local (adrItem); for adrItem in @user.databases { add (nameOf (adrItem^) + ":"); indentLevel++; doSimpleTable (adrItem); indentLevel--}; add (""); indentlevel--}; if defined (user.export) { addTableAsSection ("Export", @user.export)}; if defined (user.html.glossary) { add ("user.html.glossary:"); indentlevel++; add (""); add ("# items: " + sizeOf (user.html.glossary)); add (""); indentlevel--}; if defined (user.html.macros) { add ("user.html.macros:"); indentlevel++; add (""); add ("# items: " + sizeOf (user.html.macros)); add (""); indentlevel--}; if defined (user.html.renderers) { add ("user.html.renderers:"); indentlevel++; add (""); add ("# items: " + sizeOf (user.html.renderers)); add (""); indentlevel--}; if defined (user.html.prefs) { addTableAsSection ("HTML prefs", @user.html.prefs)}; if defined (user.menus) { addTableAsSection ("Menus", @user.menus)}; if defined (user.prefs) { addTableAsSection ("Basic prefs", @user.prefs)}; if defined (user.prefs.dates) { addTableAsSection ("Dates", @user.prefs.dates)}; if defined (user.prefs.dialogs) { addTableAsSection ("Dialogs", @user.prefs.dialogs)}; if defined (user.prefs.fonts) { addTableAsSection ("Fonts", @user.prefs.fonts)}; if defined (user.prefs.search) { addTableAsSection ("Search", @user.prefs.search)}; if defined (user.rootUpdates.prefs) { addTableAsSection ("Root Updates prefs", @user.rootUpdates.prefs)}; if defined (user.rootUpdates.servers) { add ("user.rootUpdates.Servers:"); indentlevel++; add (""); local (adrItem); for adrItem in @user.rootUpdates.Servers { add (nameOf (adrItem^) + ":"); indentLevel++; doSimpleTable (adrItem); indentLevel--}; add (""); indentlevel--}; if defined (user.unix.scripts) { addTableAsSection ("Unix scripts", @user.unix.scripts)}; if defined (user.webBrowser) { addTableAsSection ("WebBrowser", @user.webBrowser)}}; bundle { //Misc if defined (system.verbs.traps) { addTableAsSection ("Traps", @system.verbs.traps)}; if defined (system.verbs.extensions) { addTableAsSection ("Extensions", @system.verbs.extensions)}; bundle { //root table sizes add ("Top-level table sizes:"); indentLevel++; add (""); local (adrItem); for adrItem in @root { local (name = nameOf (adrItem^)); local (size = sizeOf (adrItem^)); if typeOf (adrItem^) != tableType { add (name + ": Not a table, which surprises us.")} else { add (name + ": " + size + " items")}}; add ("");indentLevel--}; if system.environment.isCarbon { // Mac OS X port forwarding and ipfw local (s = sys.unixShellCommand ("echo \"" + user.prefs.portForwardingAdminPassword + "\" | sudo /sbin/ipfw -a list")); sys.unixShellCommand ("sudo -K"); // drop our privs add ("Mac OS X Port Forwarding and ipfw:"); indentlevel++; add (""); addOnOff ("Port Forwarding enabled", defined (user.prefs.portForwardingAdminPassword)); add (""); add ("ipfw configuration:"); indentlevel++; add (""); s = string.replaceAll (s, '\n', '\n' + string.filledstring (" ", indentLevel)); add (s); indentlevel--; add (""); indentlevel--}}; bundle { //Guest Databases folders on doFolder (name) { add (name + " folder:"); indentlevel++; add (""); local (f); fileloop (f in Frontier.getSubFolder (name)) { local (fname = file.fileFromPath (f)); fname = string.popTrailing (fname, file.getPathChar ()); if file.isFolder (f) { add (fname + ": [folder]")} else { local (size = string.megabyteString (file.size (f))); add (fname + ": " + size)}}; add (""); indentlevel--}; doFolder ("apps"); doFolder ("ops"); doFolder ("www")}; if fldebug { wp.newTextObject (mailText, @temp.FrontierConfiguration); edit (@temp.FrontierConfiguration)}; return (mailText)}; Çbundle // test ÇgetConfigInfo (fldebug: true) \ No newline at end of file |