| Index: net/tools/testserver/testserver.py
|
| ===================================================================
|
| --- net/tools/testserver/testserver.py (revision 35831)
|
| +++ net/tools/testserver/testserver.py (working copy)
|
| @@ -131,6 +131,11 @@
|
| self.EchoTitleHandler,
|
| self.EchoAllHandler,
|
| self.EchoHandler] + self._get_handlers
|
| + self._put_handlers = [
|
| + self.WriteFile,
|
| + self.EchoTitleHandler,
|
| + self.EchoAllHandler,
|
| + self.EchoHandler] + self._get_handlers
|
|
|
| self._mime_types = {
|
| 'gif': 'image/gif',
|
| @@ -462,8 +467,8 @@
|
| return True
|
|
|
| def WriteFile(self):
|
| - """This is handler dumps the content of POST request to a disk file into
|
| - the data_dir/dump. Sub-directories are not supported."""
|
| + """This is handler dumps the content of POST/PUT request to a disk file
|
| + into the data_dir/dump. Sub-directories are not supported."""
|
|
|
| prefix='/writefile/'
|
| if not self.path.startswith(prefix):
|
| @@ -520,7 +525,7 @@
|
| '<a href="http://localhost:8888/echo">back to referring page</a></div>'
|
| '<h1>Request Body:</h1><pre>')
|
|
|
| - if self.command == 'POST':
|
| + if self.command == 'POST' or self.command == 'PUT':
|
| length = int(self.headers.getheader('content-length'))
|
| qs = self.rfile.read(length)
|
| params = cgi.parse_qs(qs, keep_blank_values=1)
|
| @@ -599,7 +604,7 @@
|
| return False
|
|
|
| # Consume a request body if present.
|
| - if self.command == 'POST':
|
| + if self.command == 'POST' or self.command == 'PUT' :
|
| self.rfile.read(int(self.headers.getheader('content-length')))
|
|
|
| file = self.path[len(prefix):]
|
| @@ -1052,6 +1057,11 @@
|
| if handler():
|
| return
|
|
|
| + def do_PUT(self):
|
| + for handler in self._put_handlers:
|
| + if handler():
|
| + return
|
| +
|
| # called by the redirect handling function when there is no parameter
|
| def sendRedirectHelp(self, redirect_name):
|
| self.send_response(200)
|
| @@ -1062,9 +1072,9 @@
|
| self.wfile.write('</body></html>')
|
|
|
| def MakeDumpDir(data_dir):
|
| - """Create directory named 'dump' where uploaded data via HTTP POST request
|
| - will be stored. If the directory already exists all files and subdirectories
|
| - will be deleted."""
|
| + """Create directory named 'dump' where uploaded data via HTTP POST/PUT
|
| + requests will be stored. If the directory already exists all files and
|
| + subdirectories will be deleted."""
|
| dump_dir = os.path.join(data_dir, 'dump');
|
| if os.path.isdir(dump_dir):
|
| shutil.rmtree(dump_dir)
|
|
|