Archive of UserLand's first discussion group, started October 5, 1998.

Piking behind firewalls

Author:Dave Winer
Posted:5/9/2000; 9:59:34 PM
Topic:Piking behind firewalls
Msg #:17142
Prev/Next:17141 / 17143

Background

While Brent has been working on the security issue I've been looking at how to work with the firewall issue in Pike, per Sam Yates' suggestion. If all goes well I'll have a test server running the software tomorrow or Thursday, and people can try it out. It doesn't appear to be too hard or effect too much code.

BTW, I'm using a style we use on our internal website, this is a narrative document. It goes through a process, and is only finished when the [In Progress] part of the title goes away. In this case I hope to take it off when the feature is operational.

The Pike button

When Manila generates the Pike button, the url comes from an object named editInPike in the #urls table for the site. That URL must change to point to the local server.

The virtual file that's referenced is called "editInPike". So if Pike is running on port 81, then the URL is:

 http://127.0.0.1:81/editInPike

Further, the URL must have information encoded that contains: the server, port, sitename, msgnum, username, password.

 http://127.0.0.1:81/editInPike$bull.editthispage.com,80,2087,bull@mancuso.com,yomama

Yes Virgina, your username and password are in the web page. Don't email that page to anyone. ";->"

When the user clicks the button

When the user clicks on the button the request goes to Pike, not Manila.

A new responder is installed in Pike, called editInPike.

It calls back to the server sending back the servername, msgnum, and the gobbledy-gook.

It responds with a that's exactly what it would have sent to Pike if it had sent an XML-RPC message in the other direction.

Voila. Manila no longer has to send an XML-RPC message to Pike.

After opening the document in Pike

Pike redirects.. where??

How about back to the its referer?

Implementation notes

Wednesday, May 10, 2000 at 7:50:37 AM by DW

 Added a new (temporary) variable, user.prefs.flNewPikeButton, if present and true, mainResponder.discuss.readMessage generates the new style of Pike button. This is intended to make it easy to integrate these features into the update flow, when the time comes for that.

Wednesday, May 10, 2000 at 8:16:53 AM by DW

 OK, the server side is done. Next step is to write the responder that runs in Pike. This is fun!

 Note: The only code that changed on the server was mainResponder.discuss.readMessage. Instead of grabbing the url from the #urls table, I create it on the fly. To put it in the #urls table implies that it could change on a site by site level. It can't. It must be the same in all Pikes.

Wednesday, May 10, 2000 at 10:07:22 AM by DW

 Back at work, doing the responder.




There are responses to this message:


This page was archived on 6/13/2001; 4:55:08 PM.

© Copyright 1998-2001 UserLand Software, Inc.