chiark / gitweb /
copyright notices
[hippotat.git] / hippotatd
index 7e40c82cd63ae8385501cc0648b06cf4e85760eb..06f98ecd7e52bc6e1788ea6db9e14b32489bbd57 100755 (executable)
--- a/hippotatd
+++ b/hippotatd
@@ -1,4 +1,27 @@
 #!/usr/bin/python3
+#
+# Hippotat - Asinine IP Over HTTP program
+# ./hippotatd - server main program
+#
+# Copyright 2017 Ian Jackson
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version, with the "CAF Login
+# Exception" as published by Ian Jackson (version 2, or at your option
+# any later version) as an Additional Permission.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public
+# License and the CAF Login Exception along with this program, in the
+# file AGPLv3+CAFv2.  If not, email Ian Jackson
+# <ijackson@chiark.greenend.org.uk>.
+
 
 from hippotatlib import *
 
@@ -10,6 +33,8 @@ import shutil
 import twisted.internet
 from twisted.web.server import NOT_DONE_YET
 
+import twisted.web.static
+
 import hippotatlib.ownsource
 from hippotatlib.ownsource import SourceShipmentPreparer
 
@@ -208,9 +233,15 @@ class IphttpResource(NotStupidResource):
 
   def render_GET(self, request):
     log_debug(DBG.HTTP, 'GET request')
-    return b'<html><body>hippotat</body></html>'
-
-class SourceResource(NotStupidResource):
+    return b'''
+<html><body>
+hippotat
+<p>
+<a href="source">source</a> available
+</body></html>
+'''
+
+class SourceResource(twisted.web.static.File):
   def __init__(self):
     td = tempfile.mkdtemp()
 
@@ -224,12 +255,11 @@ class SourceResource(NotStupidResource):
     self._ssp.logger = self.log
     self._ssp.generate()
 
+    super().__init__(self._ssp.output_path)
+
   def log(self, m):
     log_debug(DBG.OWNSOURCE, m)
 
-  def render_GET(self, request):
-    return b'<html><body>SUBDIR</body></html>'
-
 def start_http():
   resource = IphttpResource()
   resource.putChild(b'source',SourceResource())