diff --git a/airpnp/AirPlayService.py b/airpnp/AirPlayService.py index 570e09c..0ce45f9 100644 --- a/airpnp/AirPlayService.py +++ b/airpnp/AirPlayService.py @@ -30,7 +30,7 @@ from twisted.python import log from twisted.application.service import MultiService from twisted.application.internet import TCPServer -from twisted.web import error, server +from twisted.web import server from twisted.internet import defer from httplib import HTTPMessage from cStringIO import StringIO @@ -259,7 +259,7 @@ def __init__(self, apserver, name=None, host="0.0.0.0", port=22555, index=-1): self.port = port def create_site(self): - root = error.NoResource() + root = LogNoResource() root.putChild("playback-info", PlaybackInfoResource(self.apserver)) root.putChild("play", PlayResource(self.apserver)) root.putChild("stop", StopResource(self.apserver)) diff --git a/airpnp/airplayserver.py b/airpnp/airplayserver.py index 8695760..e45322e 100644 --- a/airpnp/airplayserver.py +++ b/airpnp/airplayserver.py @@ -38,6 +38,7 @@ 'IAirPlayServer', 'SessionRejectedError', 'SetPropertyResource', + 'LogNoResource', 'CT_BINARY_PLIST', 'CT_TEXT_PLIST', ] @@ -110,7 +111,7 @@ def __init__(self, apserver): def render(self, request): log.msg("Got AirPlay request, URI = %s, %r" - % (request.uri, request.requestHeaders), ll=3) + % (request.uri, request.getAllHeaders()), ll=3) sid = request.getHeader("X-Apple-Session-Id") ret = "" try: @@ -181,3 +182,11 @@ def render_PUT(self, request): else: raise Exception("Unexpected content type for setProperty: %s" % ctype) return "" + + +class LogNoResource(resource.NoResource): + def render(self, request): + body = request.content.read() + log.msg("Unknown AirPlay request: %s %s, headers = %r, body = %r" + % (request.method, request.uri, request.getAllHeaders(), body), ll=3) + return resource.NoResource.render(self, request)