-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Heh, ironically "fossil serve" behaves exactly like the app I wanted to design in that it can serve up an entire directory of repositories. I thought that behavior was only limited to the CGI.
So, no need for my app cleverly named DigSite (where fossils are found.) That was the only thing clever about it. :P Ah, well, learned more than I ever wanted to about CGI. On 09/05/2010 08:51 PM, Richard Hipp wrote: > On Sun, Sep 5, 2010 at 9:34 PM, Nolan Darilek <no...@thewordnerd.info>wrote: > > Please pardon the newbie questions, and I realize that it isn't strictly > Fossil-related, but I hope that can be forgiven as I'm trying to > contribute to the ecosystem. > > I'm trying to create a server front-end that proxies requests to any > number of repositories, running the CGI based on URL parameters. > Unfortunately, the web servers I want to use don't directly support > CGIs, so I'm trying this as a suitable alternative to avoid running a > whole bunch of "fossil server"s. > > The challenge, though, is that I didn't really know much about CGIs > until today. I'm trying to write a somewhat generalized CGI interface > for Node.js that accepts a request and proxies that to a CGI script, > with Fossil being my testbed. > > >> Have you considered using the "fossil http" command instead of using CGI. >> The "fossil http" command takes a single ordinary HTTP request on standard >> input and issues a suitable reply on standard output. No CGI to mess with. > >> If for some reason that won't work for you, you might at least want to look >> at the implementation of the "fossil http" command (especially the >> cgi_handle_http_request() function) since the way "fossil http" works is to >> convert the HTTP request into CGI then call the CGI handler. You don't need >> a fully general CGI handler to run Fossil - just a very limited subset. Let >> the implementation of cgi_handle_http_request() be your guide. > > > > Currently I have GETs mostly working (though I don't correctly handle > queries yet) and POSTs partially working. I'm having a particularly > tough time with this because there are lots of lists of environment > variables, I'm not sure what needs to be set to have a meaningful CGI > interaction, and the NCSA page most tutorials from circa 2003 like to > link to is no longer present. :) I only just now realized that I should > be passing CONTENT_TYPE, which I didn't find documented anywhere. And > now I actually seem to get bytes back from the CGI, albeit not in a > format that is meaningful to Fossil on the receiving end. > > So my first question, is there any documentation on the lower-level > aspects of the CGI interface? What commands are exchanged, what > format/encoding they take, etc.? > > Also, what format/encoding is the data exchanged between Fossil and the > CGI expected to use? Binary, base64 or something else? > > Finally, I'm noticing that while my framework is somewhat respecting my > content-type setting on the data I pass to the CGI, it is appending > "charset=utf-8". Will this negatively impact Fossil? > > Not sure if this will help, but here are some sample logs of Fossil > attempting to pass through my proxy. > > POST from Fossil headers: { host: 'localhost:3000' > , 'user-agent': 'Fossil/[8474ca6747]' > , 'content-type': 'application/x-fossil' > , 'content-length': '59' > } > Sending from CGI through proxy: Body: > '\u0000\u0000\u0000\u0000x\ufffd\u0003\u0000\u0000\u0000\u0000\u0001' > with headers { Status: '200 OK' > , 'Cache-control': 'no-cache, no-store' > , 'Content-Type': 'application/x-fossil; charset=utf-8' > , 'Content-Length': '12' > } > > And from Fossil I get: > > 1fossil: unknown command: > > Thanks. >> _______________________________________________ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users >> > _______________________________________________ > fossil-users mailing list > fossil-users@lists.fossil-scm.org > http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkyEav0ACgkQIaMjFWMehWLMsgCfZFOcPf/XSFiH2msZyIegh8J4 EYEAnihzF1PmShf9aUQGIJerHJmnOS7x =kw0M -----END PGP SIGNATURE----- _______________________________________________ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users