[medusa] freezing Medusa

Eugene Leitl eugene.leitl@l...
Tue, 27 Mar 2001 16:46:51 +0200 (MET DST)


It does run now. One-banana fix: I commented out the offending section
below.

Another question: if I'm doing object publishing, what is 
the best way to parse arguments and GET/POST requests, preferably a la
Zope/Bobo, *without* requiring Zope/Bobo?

I've tried Guido's example for SimpleHTTPServer.py

import StringIO
import SimpleHTTPServer

BaseClass = SimpleHTTPServer.SimpleHTTPRequestHandler

CounterTemplate = """ <H1>Server
Statistics</H1>

This <A HREF=./>server</A> has been accessed
<b>%d</b> times. """

count = 0

class MyRequestHandler(BaseClass):

def do_GET(self):
global count
count = count + 1
BaseClass.do_GET(self)

def send_head(self):
if self.path == "/counter.html":
return self.send_counter()
else:
return BaseClass.send_head(self)

def send_counter(self):
self.send_response(200)
self.send_header("Content-type", "text/html")
self.end_headers()
text = CounterTemplate % count
return StringIO.StringIO(text)

def test():
SimpleHTTPServer.test(MyRequestHandler)

test() 

It does what I need, so in principle I don't need Medusa, but I don't have
any clue how to pass arguments to the methods and parse GET/PUT requests
the way CGI module does (packing them into dictionary). 

Confused in Krautland,
Eugene

On Tue, 27 Mar 2001 Eugene.Leitl@l... wrote:
> 
> Anything running wrong when freezing Medusa?
[...]
> Huh? The culprit seems to be becoming nobody:
> 
> # become 'nobody'
> if os.name == 'posix':
> import os
> if hasattr (os, 'seteuid'):
> # look in ~medusa/patches for {set,get}euid.
> import pwd
> [uid, gid] = pwd.getpwnam ('nobody')[2:4]
> os.seteuid (uid)
> os.setegid (gid) 
> 
> Can anybody clue me in?