Commit 94bdc066 authored by Sidnei da Silva's avatar Sidnei da Silva

      - OFS.Image.manage_FTPget() would str() it's .data attribute,
        potentially loading the whole file in memory as a
        string. Changed to use RESPONSE.write() iterating through the
        Pdata chain, just like index_html().
parent 06438806
...@@ -22,7 +22,7 @@ Zope Changes ...@@ -22,7 +22,7 @@ Zope Changes
- Collector #1233: port ZOPE_CONFIG patch from Zope 2.7 to Zope 2.8 - Collector #1233: port ZOPE_CONFIG patch from Zope 2.7 to Zope 2.8
after Zope 2.8.1 after Zope 2.8.1
Features added Features added
...@@ -33,6 +33,11 @@ Zope Changes ...@@ -33,6 +33,11 @@ Zope Changes
Bugs Fixed Bugs Fixed
- OFS.Image.manage_FTPget() would str() it's .data attribute,
potentially loading the whole file in memory as a
string. Changed to use RESPONSE.write() iterating through the
Pdata chain, just like index_html().
- When PageTemplates have a syntax error, show the traceback output - When PageTemplates have a syntax error, show the traceback output
in the rendered error message. in the rendered error message.
...@@ -44,7 +49,7 @@ Zope Changes ...@@ -44,7 +49,7 @@ Zope Changes
character set used to encode unicode data that reaches character set used to encode unicode data that reaches
ZPublisher without any specified encoding. ZPublisher without any specified encoding.
- disabled ".. include" directive for all the ZReST product and the - disabled ".. include" directive for all the ZReST product and the
reStructuredText package reStructuredText package
- Collector #1888: Adjust call to 'engine.translate' to accomodate - Collector #1888: Adjust call to 'engine.translate' to accomodate
...@@ -57,7 +62,7 @@ Zope Changes ...@@ -57,7 +62,7 @@ Zope Changes
supporting 'debug' argument passed to supporting 'debug' argument passed to
'ZPublisher.Test.publish_module'. 'ZPublisher.Test.publish_module'.
- Collector #1879: applied patch by Dieter Maurer to fix a bug in - Collector #1879: applied patch by Dieter Maurer to fix a bug in
ac_aquire() ignoring the default argument ac_aquire() ignoring the default argument
- Collector #1864, #1906: fixed header normalization in appendHeader() - Collector #1864, #1906: fixed header normalization in appendHeader()
...@@ -83,7 +88,7 @@ Zope Changes ...@@ -83,7 +88,7 @@ Zope Changes
- Collector #1877: skel/Products/README.txt inappropriately copied - Collector #1877: skel/Products/README.txt inappropriately copied
from CMF. from CMF.
- Collector #1871: Applied patch to support lists with records using - Collector #1871: Applied patch to support lists with records using
ZTUtils.make_query() ZTUtils.make_query()
- AccessControl: creating a new user through "zpasswd inituser" did not - AccessControl: creating a new user through "zpasswd inituser" did not
...@@ -99,11 +104,11 @@ Zope Changes ...@@ -99,11 +104,11 @@ Zope Changes
- DateIndex now properly removes documents from both indexes if - DateIndex now properly removes documents from both indexes if
the value is None the value is None
- Collector #1888: Some parts of the TALInterpreter would not pass a - Collector #1888: Some parts of the TALInterpreter would not pass a
default when translating, yet expect a string back. This would cause default when translating, yet expect a string back. This would cause
an error (usually "NoneType has no attribute 'replace'") in the case an error (usually "NoneType has no attribute 'replace'") in the case
the message was not translated. the message was not translated.
Zope 2.8.1 (2005/08/11) Zope 2.8.1 (2005/08/11)
Features added Features added
...@@ -158,11 +163,11 @@ Zope Changes ...@@ -158,11 +163,11 @@ Zope Changes
in Products/BTreeFolder2 (CMFCore will include it after 1.5, with in Products/BTreeFolder2 (CMFCore will include it after 1.5, with
an appropriate module alias for backward compatibility). an appropriate module alias for backward compatibility).
- Replaced all transaction.commit(1) calls by transaction.savepoint() - Replaced all transaction.commit(1) calls by transaction.savepoint()
- Collector #1832: UnIndex swallowed ConflictErrors. - Collector #1832: UnIndex swallowed ConflictErrors.
- Collector #1815: ZCTextIndex accepts (again) sequences of strings to - Collector #1815: ZCTextIndex accepts (again) sequences of strings to
be indexed. be indexed.
- Collector #1812: Fixed key error in ZSQL ZMI/Test - Collector #1812: Fixed key error in ZSQL ZMI/Test
...@@ -179,7 +184,7 @@ Zope Changes ...@@ -179,7 +184,7 @@ Zope Changes
- Collector #1808: manage_convertIndexes no longer tries to change the - Collector #1808: manage_convertIndexes no longer tries to change the
index types causing some trouble with CMF. index types causing some trouble with CMF.
- manage_convertIndexes did not treat DateRangeIndexes and PathIndexes - manage_convertIndexes did not treat DateRangeIndexes and PathIndexes
properly. properly.
- Updated Zope X3 to bugfix release 3.0.1 - Updated Zope X3 to bugfix release 3.0.1
...@@ -200,7 +205,7 @@ Zope Changes ...@@ -200,7 +205,7 @@ Zope Changes
- Collector #1803: Fixed InitializeClass for some corner case. - Collector #1803: Fixed InitializeClass for some corner case.
- Collector #1798, issue 1: ZopeTestCase no longer tries to - Collector #1798, issue 1: ZopeTestCase no longer tries to
install products that were installed by Zope during startup. install products that were installed by Zope during startup.
- Collector #1799: Avoid lying about parent's refcount when - Collector #1799: Avoid lying about parent's refcount when
......
...@@ -594,6 +594,8 @@ class File(Persistent, Implicit, PropertyManager, ...@@ -594,6 +594,8 @@ class File(Persistent, Implicit, PropertyManager,
def manage_FTPget(self): def manage_FTPget(self):
"""Return body for ftp.""" """Return body for ftp."""
RESPONSE = self.REQUEST.RESPONSE
if self.ZCacheable_isCachingEnabled(): if self.ZCacheable_isCachingEnabled():
result = self.ZCacheable_get(default=None) result = self.ZCacheable_get(default=None)
if result is not None: if result is not None:
...@@ -602,10 +604,19 @@ class File(Persistent, Implicit, PropertyManager, ...@@ -602,10 +604,19 @@ class File(Persistent, Implicit, PropertyManager,
# from FileCacheManager. # from FileCacheManager.
# the content-length is required here by HTTPResponse, even # the content-length is required here by HTTPResponse, even
# though FTP doesn't use it. # though FTP doesn't use it.
self.REQUEST.RESPONSE.setHeader('Content-Length', self.size) RESPONSE.setHeader('Content-Length', self.size)
return result return result
return str(self.data)
data = self.data
if type(data) is type(''):
RESPONSE.setBase(None)
return data
while data is not None:
RESPONSE.write(data.data)
data = data.next
return ''
manage_addImageForm=DTMLFile('dtml/imageAdd',globals(), manage_addImageForm=DTMLFile('dtml/imageAdd',globals(),
Kind='Image',kind='image') Kind='Image',kind='image')
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment