1.1 --- a/WebStack/CGI.py Sat May 29 17:28:24 2004 +0000
1.2 +++ b/WebStack/CGI.py Sat May 29 19:32:48 2004 +0000
1.3 @@ -44,6 +44,10 @@
1.4
1.5 self.cookies_in = Cookie.SimpleCookie(self.env.get("HTTP_COOKIE"))
1.6
1.7 + # Cached information.
1.8 +
1.9 + self.storage_body = None
1.10 +
1.11 def commit(self):
1.12
1.13 """
1.14 @@ -64,6 +68,7 @@
1.15 )
1.16 self.output.write(str(self.cookies_out))
1.17 self.output.write("\n")
1.18 + self.output.write("\n")
1.19
1.20 self.content.seek(0)
1.21 self.output.write(self.content.read())
1.22 @@ -191,18 +196,19 @@
1.23 single value is associated with any given field name).
1.24 """
1.25
1.26 - storage = FieldStorage(fp=self.get_request_stream(), keep_blank_values=1)
1.27 + if self.storage_body is None:
1.28 + self.storage_body = FieldStorage(fp=self.get_request_stream(), keep_blank_values=1)
1.29
1.30 # Avoid strange design issues with FieldStorage by checking the internal
1.31 # field list directly.
1.32
1.33 fields = {}
1.34 - if storage.list is not None:
1.35 + if self.storage_body.list is not None:
1.36
1.37 # Traverse the storage, finding each field value.
1.38
1.39 - for field_name in storage.keys():
1.40 - fields[field_name] = storage.getlist(field_name)
1.41 + for field_name in self.storage_body.keys():
1.42 + fields[field_name] = self.storage_body.getlist(field_name)
1.43 return fields
1.44
1.45 def get_user(self):
2.1 --- a/WebStack/ModPython.py Sat May 29 17:28:24 2004 +0000
2.2 +++ b/WebStack/ModPython.py Sat May 29 19:32:48 2004 +0000
2.3 @@ -27,6 +27,10 @@
2.4 self.response_code = apache.OK
2.5 self.user = None
2.6
2.7 + # Cached information.
2.8 +
2.9 + self.storage_body = None
2.10 +
2.11 # Request-related methods.
2.12
2.13 def get_request_stream(self):
2.14 @@ -148,12 +152,13 @@
2.15 body with fields found in the path.
2.16 """
2.17
2.18 - storage = FieldStorage(self.trans, keep_blank_values=1)
2.19 + if self.storage_body is None:
2.20 + self.storage_body = FieldStorage(self.trans, keep_blank_values=1)
2.21
2.22 # Traverse the storage, finding each field value.
2.23
2.24 fields = {}
2.25 - for field in storage.list:
2.26 + for field in self.storage_body.list:
2.27 if not fields.has_key(field.name):
2.28 fields[field.name] = []
2.29 fields[field.name].append(field.value)