self.verbose = v
self.polling = self.service.polling or 15
+
+ def render_OPTIONS(self, request):
+ request.setHeader('Access-Control-Allow-Origin', '*')
+ request.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS')
+ request.setHeader('Access-Control-Allow-Headers', 'Content-Type')
+ request.setHeader('Access-Control-Max-Age', '86400')
+ return ""
def render_GET(self, request):
"""
GET is not used, print docs.
"""
+ request.setHeader('Access-Control-Allow-Origin', '*')
+ request.setHeader('Access-Control-Allow-Headers', 'Content-Type')
return """<html>
<body>
<a href='http://www.xmpp.org/extensions/xep-0124.html'>XEP-0124</a> - BOSH
"""
Parse received xml
"""
+ request.setHeader('Access-Control-Allow-Origin', '*')
+ request.setHeader('Access-Control-Allow-Headers', 'Content-Type')
request.content.seek(0, 0)
if self.service.v:
log.msg('HEADERS %s:' % (str(time.time()),))
def return_body(self, request, b, charset="utf-8"):
request.setResponseCode(200)
bxml = b.toXml(prefixes=ns.XMPP_PREFIXES.copy()).encode(charset,'replace')
+
request.setHeader('content-type', 'text/xml')
request.setHeader('content-length', len(bxml))
if self.service.v:
implements(IHttpbService)
- def __init__(self, verbose = 0, polling = 15, use_raw = False, bindAddress=("0.0.0.0", 0)):
+ white_list = []
+
+ def __init__(self,
+ verbose = 0, polling = 15,
+ use_raw = False, bindAddress=("0.0.0.0", 0),
+ session_creator = None):
+ if session_creator is not None:
+ self.make_session = session_creator
+ else:
+ self.make_session = make_session
self.v = verbose
self.sessions = {}
self.counter = 0
if not body.hasAttribute('to') or body['to']=='':
return None, defer.fail(error.BadRequest)
+ if self.white_list and body['to'] not in self.white_list:
+ return None, defer.fail(error.BadRequest)
+
# look for wait
if not body.hasAttribute('wait') or body['wait']=='':
body['wait'] = 3
if not body.hasAttribute('inactivity'):
body['inactivity'] = 60
- return make_session(self, body.attributes)
+ return self.make_session(self, body.attributes)
def parseBody(self, body, xmpp_elements):