def main(host='0.0.0.0', port=8080): #We just initialise and give the server address and port libevent.event_init() print "listening on %s:%i" % (host,port) http = libevent.evhttp_start(host, port) libevent.evhttp_set_gencb(http, inc_ref(FUNC(root_handler)), None); # handle CTRL+C event = libevent.event() event_ref = ctypes.byref(event) libevent.signal_set(event_ref, signal.SIGINT, inc_ref(FUNC2(signal_handler)), None) libevent.signal_add(event_ref, None) libevent.event_dispatch() # end loop - id est Ctrl+c :P libevent.evhttp_free(http) raise KeyboardInterrupt
def xxxx(response, callback_url, fd): #global ud_map #print ''.join(traceback.format_stack()) event = libevent.event() user_data = {} user_data['response'] = response user_data['callback_url'] = callback_url user_data['event'] = event user_data['id'] = ctypes.c_long(id(user_data)) user_data['byref(event)'] = ctypes.byref(event) user_data['byref(id)'] = ctypes.byref(user_data['id']) user_data['fd'] = fd ud_map[user_data['id'].value] = user_data #print "ADD %i (%r) %i" % (user_data['id'].value, ud_map.keys(), id(ud_map) ) response.continuation = True # set in root_handler. response.environ = {} response.http_request = None return (user_data, event)