Monday, November 08, 2010 at 12:04 AM.
system.verbs.builtins.mainResponder.discuss.rpcMessageEnclosure
on rpcMessageEnclosure (client, port, msgnum) {
<<9/6/99; 4:01:16 PM by DW
<<First try sending the object to userland.receiveObject, if that fails, try sending to editorial.receiveEnclosure.
<<For more information see http://frontier.userland.com/discuss/msgReader$1277.
<<Changes:
<<04/12/00; 1:37:43 PM by JES
<<localized using mainResponder.getString
<<05/01/00; 7:26:52 PM by JES
<<Changed getString calls to use a replacement table address instead of a lists
local (pta = html.getpagetableaddress ());
local (htmltext = "", indentlevel = 0);
on add (s) {
htmltext = htmltext + string.filledString ("\t", indentlevel) + s + "\r"};
local (adrmsg = mainresponder.discuss.getmessagetable (msgnum));
local (adr = adrmsg^.enclosureAddress);
local (type = string.delete (adrmsg^.enclosuretype, 1, sizeof ("application/x-frontier-")));
local (bits); pack (adrmsg^.enclosurebits, @bits); local (encodedBits = base64.encode (bits, infinity));
local (params = {adr, type, encodedBits});
try {
local (errorstring);
on tryOne (procedurename) {
try {
local (flinstalled = betty.rpc.client (client, port, procedurename, @params));
pta^.title = mainResponder.getString ("discuss.sendRpcEnclosureWorkedTitle");
add (mainResponder.getString ("discuss.sendRpcEnclosureWorkedBody"));
return (true)}
else {
errorstring = tryError;
return (false)}};
if not tryOne ("userland.receiveObject") {
if not tryOne ("editorial.receiveEnclosure") {
pta^.title = mainResponder.getString ("discuss.sendRpcEnclosureDidntWorkTitle");
bundle { // localized the body of the error page; 4/12/00; 1:50:59 PM by JES
local (s); // we need to massage the text a little for HTML formatting, so put it in a local
local (replacementTable); new (tableType, @replacementTable); // 05/01/00 JES: use replacement table instead of a list
replacementTable.msgnum = msgnum;
replacementTable.errorstring = errorstring;
s = mainResponder.getString ("discuss.sendRpcEnclosureDidntWorkBody", {"msgnum", msgnum, "errorstring", errorstring}); // 4/13/00 JES: localized the error
s = string.replaceAll (s, "\r", "\r" + string.filledString ("\t", indentlevel));
add (s)}}}};
return (htmltext)};
<<bundle //test code
<<rpcMessageEnclosure (tcp.dns.getmydomainname (), 80, 868)
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.