import sys, traceback,string,time import init_webgo,psql from mod_python import * DEBUG = 1 def handler(req): # "Content-type: text/html\n\n" req.content_type = "text/html"#was:text/html try: # use explicit exception handling #reinitialize database #init_webgo.main() #load form, then delegate request form = util.FieldStorage(req) try: sessionid=form["sessionid"] username=form["username"] except: sessionid="" username="" #if sessionid=sesssionid and time < timeout: # set_timeout helper = apache.import_module("helper") if (psql.get_user_info(username,'timeout') > int(time.time())) and (sessionid == psql.get_user_info(username,'sessionid')): psql.set_user_timeout(username) if "create" in form.keys(): gamecreation = apache.import_module("gamecreation") gamecreation.main(req,form) elif "delete" in form.keys(): deletegame = apache.import_module("deletegame") deletegame.main(req,form) elif ("play" in form.keys()): playgame = apache.import_module("playgame") playgame.main(req,form) else: #call login.py login = apache.import_module("login") login.main(req,form) else: #call login.py login = apache.import_module("login") login.main(req,form) return apache.OK except: errtime = '----- '+ time.ctime(time.time()) +' -----\n' errlog = open('/tmp/cgi_errors.log', 'a') errlog.write(errtime) errlog.write(ErrorMsg()) data = """CGI Error Encountered!

Sorry, a problem was encountered running WebGo.

Please check the error log on the server for details.


"""
		data += ErrorMsg()
		data+="
\n" req.write(data) return apache.OK def ErrorMsg(escape=0): """ returns: string simualtes the traceback output and if argemument set to 1 (true) the string will be converted to fit into html documents without problems. from Dirk Holtwick """ import traceback, sys, string type=None value=None tb=None limit=None type, value, tb = sys.exc_info() body = "Traceback (innermost last):\n" list = traceback.format_tb(tb, limit) + traceback.format_exception_only(type, value) body = body + "%-20s %s" % ( string.join(list[:-1], ""), list[-1], ) if escape: import cgi body = cgi.escape(body) return body