diff --git a/servefile b/servefile index b409f65..bb8bb35 100755 --- a/servefile +++ b/servefile @@ -14,7 +14,6 @@ import base64 import cgi import datetime import mimetypes -import urllib import os import re import select @@ -27,10 +26,12 @@ import time try: import BaseHTTPServer import SocketServer + from urllib import quote, unquote except ImportError: # both have different names in python3 import http.server as BaseHTTPServer import socketserver as SocketServer + from urllib.parse import quote, unquote # only activate SSL if available HAVE_SSL = False @@ -56,7 +57,7 @@ class FileBaseHandler(BaseHTTPServer.BaseHTTPRequestHandler): Returns True if a redirect was issued. """ if not fileName: fileName = self.fileName - if urllib.unquote(self.path) != "/" + fileName: + if unquote(self.path) != "/" + fileName: self.send_response(302) self.send_header('Location', '/' + fileName) self.end_headers() @@ -346,12 +347,12 @@ class DirListingHandler(FileBaseHandler):

The requestet URL %s was not found on this server

Back to / - """ % self.escapeHTML(urllib.unquote(self.path)) + """ % self.escapeHTML(unquote(self.path)) self.send_header("Content-Length", str(len(errorMsg))) self.send_header('Connection', 'close') self.end_headers() if not head: - self.wfile.write(errorMsg) + self.wfile.write(errorMsg.encode()) def escapeHTML(self, htmlstr): entities = [("<", "<"), (">", ">")] @@ -378,7 +379,7 @@ class DirListingHandler(FileBaseHandler): %s %s - """ % (urllib.quote(item), item, lastModified, fileSize, fileType)) + """ % (quote(item), item, lastModified, fileSize, fileType)) def sendDirectoryListing(self, path, head): """ Generate a directorylisting for path and send it """ @@ -414,7 +415,7 @@ class DirListingHandler(FileBaseHandler): - """ % {'path': os.path.normpath(urllib.unquote(self.path))} + """ % {'path': os.path.normpath(unquote(self.path))} footer = """