[mod_python] ValueError with Flash 8 FileReference.upload(url)

Alec Matusis matusis at matusis.com
Thu Apr 20 18:06:50 EDT 2006


 
This actually worked.

My quiestion is: how can I implement a similar change in the application,
rather than in mod_python source?

The rationale is that next time we upgrade mod_python, we will forget about
this patch, and it will break on us.

Thanks!


-----Original Message-----
From: Graham Dumpleton [mailto:grahamd at dscpl.com.au] 
Sent: Thursday, April 20, 2006 4:28 AM
To: Alec Matusis
Cc: mod_python at modpython.org
Subject: Re: [mod_python] ValueError with Flash 8 FileReference.upload(url) 


On 20/04/2006, at 8:53 PM, Alec Matusis wrote:

> One more thing:
>
> I inserted the following code in util.py on line 153 where it could  
> not
> split the string:
>
>                         try:
>                             h, v = line.split(":", 1)
>                         except Exception, e:
>                             req.log_error('faulty line is: '+repr 
> (line))
>
> And the output was:
>
> [Thu Apr 20 03:47:53 2006] [error] [client 10.0.1.35] faulty line is:
> 'Submit Query\\r\\n'
> [Thu Apr 20 03:47:53 2006] [error] [client 10.0.1.35] faulty line is:
> '------------ae0cH2ae0KM7KM7KM7gL6KM7ei4ei4'
>
> I am not 100% sure what this means, but for some reason these two  
> lines were
> not captured by req.read() in my publisher.
> And, I suppose, this SubmitQuery line is wrong?

The request you think is the problem, possibly isn't the problem  
then. :-)

Anyway, in util.FieldStorage, instead of using code:

            while line not in ('\r','\r\n'):
                # we read the headers until we reach an empty line
                # NOTE : a single \n would mean the entity is  
malformed, but
                # we're tolerating it anyway
                h, v = line.split(":", 1)

try using the following code instead:

            while line not in ('\r','\r\n') and line.find(':') != -1:
                # we read the headers until we reach an empty line
                # NOTE : a single \n would mean the entity is  
malformed, but
                # we're tolerating it anyway
                h, v = line.split(":", 1)

I have no idea if this will actually work. It attempts to break out  
of header parsing
if it finds a line with no colon in it.

This will not work for multiline headers, but then mod_python doesn't  
work for
them anyway:

   http://issues.apache.org/jira/browse/MODPYTHON-159

Graham

> -----Original Message-----
> From: Graham Dumpleton [mailto:grahamd at dscpl.com.au]
> Sent: Wednesday, April 19, 2006 5:36 PM
> To: Alec Matusis
> Cc: mod_python at modpython.org
> Subject: RE: [mod_python] ValueError with Flash 8  
> FileReference.upload(url)
>
> Please keep posts on mailing list. :-)
>
> That discussion covers two issues.
>
> 1. That in some cases it doesn't output required extra blank line.
> This is what the Ruby patch was about.
>
> 2. That with Win32 client, it will do a POST with zero content.
>
> As to 2, I note that your example request shows content length
> header of "0", but then has content. I'm not sure if this is meant
> to be the test post or the real thing.
>
> Do you see any test POST with no actual content like they talk
> about? Have you perhaps captured the test POST rather than
> the real POST?
>
> Graham
>
> Alec Matusis wrote ..
>> I found this discussion on Macromedia website:
>>
>>
>>
> http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/ 
> html/wwhel
>> p.htm?context=LiveDocs_Parts&file=00002225.html
>>
>> The relevant posts are
>> No screen name said on Sep 23, 2005 at 10:15 AM
>>
>> and Macromedia's official response, acknowledging the bug:
>> shimi2 said on Jan 19, 2006 at 11:22 AM :
>>
>> I am not 100% sure if I encountered the same problem, but it looks  
>> like
>> it.
>> It also could be that it tries to parse the empty POST request  
>> that flash
>> issues to test the connection if the filesize is > 10KB (their  
>> comment
>> shimi2 said on Sep 21, 2005 at 4:45 PM and also this is evidently the
> first
>> empty line in my req.read() output ? )
>>
>> They recommend a workaround for Ruby there. Since it seems to be a  
>> fairly
>> common issue, would you be able to recommend a workaround for  
>> mod_python
>> as
>> well?
>>
>> I wouldn't like to change mod_python sources, but rather, I would  
>> like
>> to
>> alter the bad HTTP request in my handler:
>>
>> try:
>>     myform=util.FieldStorage(req)
>> except ValueError:
>>     altered_req = MakeGoodHTTPRequest(req)
>>     myform=util.FieldStorage(altered_req)
>>
>> to handle
>> ValueError: need more than 1 value to unpack
>> that appears on line 153 in util.py ( h, v = line.split(":", 1)  
>> causes
>> it -
>> looks like the line does not have a colon ":" )
>>
>> Could you advise on how this MakeGoodHTTPRequest should look like?
>>
>>
>> -----Original Message-----
>> From: Graham Dumpleton [mailto:grahamd at dscpl.com.au]
>> Sent: Wednesday, April 19, 2006 2:43 PM
>> To: Alec Matusis
>> Cc: mod_python list
>> Subject: Re: [mod_python] ValueError with Flash 8
> FileReference.upload(url)
>>
>> Arrrghhh, I'm going bonkers, the blank line is there now when I look
>> at it. :-(
>>
>> Too many backslashes in there, strains the eyes.
>>
>> Anyway, still sounds very much like the missing blank line seen  
>> before.
>> I'll have a look again later at it.
>>
>> Graham
>>
>> On 20/04/2006, at 6:34 AM, Graham Dumpleton wrote:
>>
>>> Flash for some reason doesn't do the POST for multipart/form per
>>> standard RFCs
>>> when no content type is associated with a filename block.
>>>
>>> See:
>>>
>>>   http://www.modpython.org/pipermail/mod_python/2006-April/ 
>>> 020794.html
>>>
>>> for previous discussion.
>>>
>>> See more below.
>>>
>>> On 19/04/2006, at 7:08 PM, Alec Matusis wrote:
>>>
>>>> I have been having a problem with FileReference.upload(url)  in  
>>>> flash
>>>> 8, and to my amazement, found these posts.
>>>>
>>>> Here's the error:
>>>>
>>>> [Wed Apr 19 01:34:52 2006] [error] [client 10.0.1.39]   File
>>>> "/usr/local/lib/python2.4/site-packages/mod_python/util.py", line
>>>> 153, in __init__
>>>> [Wed Apr 19 01:34:52 2006] [error] [client 10.0.1.39]     h, v =
>>>> line.split(":", 1)
>>>>
>>>>
>>>> Here's what Flash sends to the server (obtained with
>>>> self.req.log_error(repr(self.req.read())):
>>>>
>>>> [Wed Apr 19 02:05:44 2006] [error] [client 10.0.1.39] ''
>>>> [Wed Apr 19 02:05:44 2006] [error] [client 10.0.1.39] {'Cookie':
>>>> 'cookies_enabled.matusis.com=yes', 'Cache-Control': 'no-cache',
>>>> 'Connection': 'Keep-Alive', 'Content-Length': '0', 'Host':
>>>> 'zz.alecm.dev.chattanga.com', 'User-Agent': 'Shockwave Flash',
>>>> 'Content-Type': 'multipart/form-data;
>>>> boundary=----------gL6Ef1ei4ae0ei4ae0Ef1GI3GI3GI3', 'Accept':
>>>> 'text/*'}
>>>> [Wed Apr 19 02:05:44 2006] [error] [client 10.0.1.39]
>>>> '------------gL6Ef1ei4ae0ei4ae0Ef1GI3GI3GI3\\r\\nContent- 
>>>> Disposition:
>>>> form-data;
>>>> name="Filename"\\r\\n\\r\\naleccs.jpg\\r\\n------------
>>>> gL6Ef1ei4ae0ei4ae0Ef1GI3GI3GI3\\r\\nContent-Disposition:
>>>
>>> See in above line how now content type but also no required extra
>>> blank line.
>>> Add a content type for that filename block and see if it works.
>>>
>>> Graham
>>>
>>>> form-data; name="Filedata"; filename="aleccs.jpg"\\r\\nContent- 
>>>> Type:
>>>> application/octet-
>>>> stream\\r\\n\\r\\n\\xff\\xd8\\xff\\xe0\\x00\\x10JFIF\\x00\\x01\ 
>>>> \x02\\x
>>>> 01\\x00H\\x00H\\x00\\x00\\xff\\xed\\x08TPhotoshop
>>>> 3.0\\x008BIM\\x03\\xed\\x00\\x00\\x00\\x00\\x00\\x10\\x00H\\x00\ 
>>>> \x00\\
>>>> x00\\x01\\x00\\x01\\x00H\\x00\\x00\\x00\\x01\\x00\\x018BIM\\x04\ 
>>>> \r\\x0
>>>> 0\\x00\\x00\\x00\\x00\\x04\\x00\\x00\\x00x8BIM\\x03\\xf3\\x00\ 
>>>> \x00\\x0
>>>> 0\\x00\\x00\\x08\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x018BIM\\x04 
>>>> \\n\\
>>>> x00\\x00\\x00\\x00\\x00\\x01\\x00\\x008BIM\\'\\x10\\x00\\x00\\x00 
>>>> \\x00
>>>> \\x00\\n\\x00\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x028BIM\ 
>>>> \x03\\x
>>>> f5\\x00\\x00\\x00\\x00\\x00H\\x00/
>>>> ff\\x00\\x01\\x00lff\\x00\\x06\\x00\\x00\\x00\\x00\\x00\\x01\\x00/
>>>> ff\\x00\\x01\\x!
>>>>
>>>> 00\\xa1\\x99\\x9a\\x00\\x06\\x00\\x00\\x00\\x00\\x00\\x01\\x002\ 
>>>> \x00\\
>>>> x00\\x00\\x01\\x00Z\\x00\\x00\\x00\\x06\\x00\\x00\\x00\\x00\\x00\ 
>>>> \x01\
>>>> \x005\\x00\\x00\\x00\\x01\\x00-
>>>> \\x00\\x00\\x00\\x06\\x00\\x00\\x00\\x00\\x00\\x018BIM\\x03\\xf8\ 
>>>> \x00\
>>>> \x00\\x00\\x00\\x00p\\x00\\x00\\xff\\xff\\xff\\xff\\xff\\xff\\xff 
>>>> \\xff
>>>> \\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff 
>>>> \\xff
>>>> \\x03\\xe8\\x00\\x00\\x00\\x00\\xff\\xff\\xff\\xff\\xff\\xff\\xff 
>>>> \\xff
>>>> \\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff 
>>>> \\xff
>>>> \\x03\\xe8\\x00\\x00\\x00\\x00\\xff\\xff\\xff\\xff\\xff\\xff\\xff 
>>>> \\xff
>>>> \\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff 
>>>> \\xff
>>>> \\x03\\xe8\\x00\\x00\\x00\\x00\\xff\\xff\\xff\\xff\\xff\\xff\\xff 
>>>> \\xff
>>>> \\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff 
>>>> \\xff
>>>> \\x03\\xe8\\x00\\x008BIM\\x04\\x08\\x00\\x00\\x00\\x00\\x00\\x10\ 
>>>> \x00\
>>>> \x00\\x00\\x01\\x00\\x00\\[email protected]\\x00\\x00\\[email protected]\\x00\\x00\\x00\ 
>>>> \x008BIM
>>>> \\x04\\x14\\x00\\x00\\x00\\x00\\x00\\x04\\x00\\!
>>>>
>>>> x00\\x00\\x038BIM\\x04\\x0c\\x00\\x00\\x00\\x00\\x06\\xc3\\x00\ 
>>>> \x00\\x
>>>> 00\\x01\\x00\\x00\\x00d\\x00\\x00\\x00K\\x00\\x00\\x01,\\x00\ 
>>>> \x00W\\xe
>>>> 4\\x00\\x00\\x06\\xa7\\x00\\x18\\x00\\x01\\xff\\xd8\\xff\\xe0\ 
>>>> \x00\\x1
>>>> 0JFIF\\x00\\x01\\x02\\x01\\x00H\\x00H\\x00\\x00\\xff\\xfe\\x00&File
>>>> written by Adobe Photoshop\\xa8
>>>> 5.0\\xff\\xee\\x00\\x0eAdobe\\x00d\\x80\\x00\\x00\\x00\\x01\\xff\ 
>>>> \xdb\
>>>> \x00\\x84\\x00\\x0c\\x08\\x08\\x08\\t\\x08\\x0c\\t\\t\\x0c\\x11\ 
>>>> \x0b\\
>>>> n\\x0b\\x11\\x15\\x0f\\x0c\\x0c\\x0f\\x15\\x18\\x13\\x13\\x15\ 
>>>> \x13\\x1
>>>> 3\\x18\\x11\\x0c\\x0c\\x0c\\x0c\\x0c\\x0c\\x11\\x0c\\x0c\\x0c\ 
>>>> \x0c\\x0
>>>> c\\x0c\\x0c\\x0c\\x0c\\x0c\\x0c\\x0c\\x0c\\x0c\\x0c\\x0c\\x0c\ 
>>>> \x0c\\x0
>>>> c\\x0c\\x0c\\x0c\\x0c\\x0c\\x0c\\x0c\\x0c\\x0c\\x01\\r\\x0b\\x0b\ 
>>>> \r\\x
>>>> 0e\\r\\x10\\x0e\\x0e\\x10\\x14\\x0e\\x0e\\x0e\\x14\\x14\\x0e\\x0e 
>>>> \\x0e
>>>> \\x0e\\x14\\x11\\x0c\\x0c\\x0c\\x0c\\x0c\\x11\\x11\\x0c\\x0c\\x0c 
>>>> \\x0c
>>>> \\x0c\\x0c\\x11\\x0c\\x0c\\x0c\\x0c\\x0c\\x0c\\x0c\\x0c\\x0c\\x0c 
>>>> \\x0c
>>>> \\x0c\\x0c\\x0c\\x0c\\x0c\\x0c\\x0c\\x0c\\x0c\\x0c\\x0c\\x0c\\x0c 
>>>> \\x0c
>>>> \\x0c\\x0c\\x0c\\xff\\xc0\\x00\\x11\\x08\\x00K\\x!
>>>>
>>>> 00d\\x03\\x01"\\x00\\x02\\x11\\x01\\x03\\x11\\x01\\xff\\xdd\\x00\ 
>>>> \x04\
>>>> \x00\\x07\\xff\\xc4\\x01?
>>>> \\x00\\x00\\x01\\x05\\x01\\x01\\x01\\x01\\x01\\x01\\x00\\x00\\x00 
>>>> \\x00
>>>> \\x00\\x00\\x00\\x03\\x00\\x01\\x02\\x04\\x05\\x06\\x07\\x08\\t\ 
>>>> \n\\x0
>>>> b\\x01\\x00\\x01\\x05\\x01\\x01\\x01\\x01\\x01\\x01\\x00\\x00\ 
>>>> \x00\\x0
>>>> 0\\x00\\x00\\x00\\x01\\x00\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\t\ 
>>>> \n\\x
>>>> 0b\\x10\\x00\\x01\\x04\\x01\\x03\\x02\\x04\\x02\\x05\\x07\\x06\ 
>>>> \x08\\x
>>>> 05\\x03\\x0c3\\x01\\x00\\x02\\x11\\x03\\x04!
>>>> \\x121\\x05AQa\\x13"q\\x812\\x06\\x14\\x91\\xa1\\xb1B#$\\x15R\ 
>>>> \xc1b34r
>>>> \\x82\\xd1C\\x07%\\x92S\\xf0\\xe1\\xf1cs5\\x16\\xa2\\xb2\\x83&D\ 
>>>> \x93Td
>>>> E\\xc2\\xa3t6\\x17\\xd2U\\xe2e\\xf2\\xb3\\x84\\xc3\\xd3u\\xe3\ 
>>>> \xf3F\\'
>>>> \\x94\\xa4\\x85\\xb4\\x95\\xc4\\xd4\\xe4\\xf4\\xa5\\xb5\\xc5\\xd5 
>>>> \\xe5
>>>> \\xf5Vfv\\x86\\x96\\xa6\\xb6\\xc6\\xd6\\xe6\\xf67GWgw\\x87\\x97\ 
>>>> \xa7\\
>>>> xb7\\xc7\\xd7\\xe7\\xf7\\x11\\x00\\x02\\x02\\x01\\x02\\x04\\x04\ 
>>>> \x03\\
>>>> x04\\x05\\x06\\x07\\x07\\x06\\x055\\x01\\x00\\x02\\x11\\x03!
>>>> 1\\x12\\x04AQaq"\\x!
>>>>
>>>> 13\\x052\\x81\\x91\\x14\\xa1\\xb1B#\\xc1R\\xd1\\xf03$b\\xe1r\\x82 
>>>> \\x92
>>>> CS\\x15cs4\\xf1%\\x06\\x16\\xa2\\xb2\\x83\\x07&5\\xc2\\xd2D\\x93T 
>>>> \\xa3
>>>> \\x17dEU6te\\xe2\\xf2\\xb3\\x84\\xc3\\xd3u\\xe3\\xf3F\\x94\\xa4\ 
>>>> \x85\\
>>>> xb4\\x95\\xc4\\xd4\\xe4\\xf4\\xa5\\xb5\\xc5\\xd5\\xe5\\xf5Vfv\ 
>>>> \x86\\x9
>>>> 6\\xa6\\xb6\\xc6\\xd6\\xe6\\xf6\\'7GWgw\\x87\\x97\\xa7\\xb7\\xc7\ 
>>>> \xff\
>>>> \xda\\x00\\x0c\\x03\\x01\\x00\\x02\\x11\\x03\\x11\\x00?
>>>> \\x00\\xd6,\\x0e\\x10D\\x82\\x90\\xa1\\x80\\x10\\x04\\x02
>>>> \\xc7\\x9a(\\t\\xc0M\\\\\\x82\\xac:
>>>> *~\\xf6\\x02\\x1d\\x11$\\x93\\xff\\x00TP\\xba\\xa7P\\xa7\\xa6`\ 
>>>> \xd9\\x
>>>> 99p\\x96\\xb2\\x00`0\\\\\\xe3\\xf4Z\\xd9W\\x80\\\\G\\xd7\\xdb\ 
>>>> \xac\\xb
>>>> 7\\xa8b\\xe0\\x02Emf\\xf2\\x07\\x8b\\xdc[\\xbb\\xfc\\xd6%\\xa0V\ 
>>>> \xa5\\
>>>> xcd\\xea_\\\\\\xfa\\xc6[\\xa3\\x1e\\xc1\\x85^\\xb0\\xda\\xbe\\x94 
>>>> \\x7f
>>>> *\\xd3\\xee\\xff\\x003b\\xaf\\x8b\\xf5\\xab\\xeb\\x165\\x82\\xc6\ 
>>>> \xe6\
>>>> \xd9f\\xa0\\x96\\xdaw\\xb4\\xc7\\xe6\\xbbz\\xd1\\xc6\\xfa\\xb1\ 
>>>> \x8fc\\
>>>> x98L\\x9a\\xb4\\xdc\\\\`\\x9f\\x84+\\x99_Uzg\\xa0\\xefM\\xaem\ 
>>>> \x91\\xe
>>>> dv\\xe2u\\xf3Q\\xfb\\xf0\\xf1f\\xfb\\xb4\\xfc\\x1e\\x8f\\xea\\xc7 
>>>> \\xd6
>>>> \!
>>>>
>>>> \xcc~\\xba\\xd3M\\xac\\x18\\xf9\\xf5\\[email protected]\\xcb^\\xd1\\xcd\\x94\ 
>>>> \xcf\
>>>> \xfd6-\\xf8^=\\x8a\\xcb\\xfa?U\\xc4\\xbd\\xae!
>>>> \\xd5\\xd8\\xd7\\x0e\\xe7\\x9d\\xb67O\\xe4\\x95\\[email protected]\\xea\\xa4\ 
>>>> \x89\\
>>>> x04Xc
>>>> \\xc4\\xd1\\xdd\\x81n\\xa9\\x88\\xd5L\\xf2\\xa3\\xc9E\\x16\\x85\ 
>>>> \xc1\\
>>>> x08\\xb5\\x1c\\x85\\x02\\x12\\xa4Z\\x18\\xd5$HI%?
>>>> \\xff\\xd0\\xde\\x01"41\\xe0\\x9d<i\\x1e)%\\xb1{p\\xc3"\\x9d\\xc2 
>>>> \\xc6
>>>> \\xb9\\x80\\xee2\\x08-
>>>> \\xdc\\xe5\\xc4\\xfdk\\xc6e\\x9ds\\x16\\xc6{\\xdc*-{\\x00\\x98-;
>>>> \\x99\\xff\\x00E\\xeb\\xa6\\xab\\x08Wc,\\xf5\\x1c\\xed\\x93\\xed3 
>>>> \\xac
>>>> \\x8d\\xba\\xfb\\x96/
>>>> Yc\\x99\\xd5Ya\\x1a\\x13\\x00\\xf9\\x16\\xff\\x00\\xe4\\x9a\\xa3\ 
>>>> \xcaH
>>>> \\x8e\\xdb\\xe8\\xcd\\x86
>>>> \\xcf}\\xb5jcfe\\xd4\\x0e\\xe6\\xb4\\x86\\tuE\\x84H\\xe3\\xdbb\ 
>>>> \xb3\\x
>>>> 7fPk\\xda at c*\\xda\\x1a\\\\\\xe3.\\x00\\x1f\\xf3\\x15\\x8b\\x88\ 
>>>> \x18\\x
>>>> 8ep\\x1a\\x98\\x10\\x06\\xba\\xaa\\xb8\\xc2\\x9b2\\xacce\\xcd\ 
>>>> \x15\\x8
>>>> 9\\xdc\\xd2\\x04\\x8f\\x8a\\x82\\xc6\\x9e\\x9d\\x1bF\\x12\\xa28\ 
>>>> \xc8\\
>>>> 'g b\\xb7;\\xad\\xf4\\xf1>\\xc7d\\xb4\\x13\\x11!\\xbf\!
>>>>
>>>> \xa4<#cj\\xa6\\xa6h\\x98\\xcbS\\xc5l\\x89Q\\x9dTw&\\xdc\\xa4bdT\ 
>>>> \x08O2
>>>> \\x92Ja\\x1a\\xa4\\xa5\\t$\\xa7\\xff\\xd1\\xe8\\x12L\\x9aRK%S\ 
>>>> \xabW\\x
>>>> eat\\xfbH\\x1e\\xea\\xc6\\xf1\\xe3\\xed\\xf7\\x1f\\xfa*\\xd4\\xa8 
>>>> \\\\\
>>>> \xfaEN\\xf5\\x9c\\xd6VA\\x0es\\x88\\x02\\x0e\\x9c\\x94\\x08\\xb1I 
>>>> \\x06
>>>> \\x88=\\x9ez\\xa7:
>>>> \\xf67c\\xf6\\xed\\xf2\\x07\\xee\\xdc\\x86\\xe2\\xfa\\xec\\xf5\ 
>>>> \x1e\\x
>>>> fd\\x002\\x08\\x13\\xff\\x00EUc.e\\x81\\xd8v\\xb4\\xb4\\x925\ 
>>>> \xf70\\x9
>>>> 1\\xf9\\xc2?
>>>> y+p\\xba\\x96]\\x91{\\xda+\\x1fK\\xd3\\x9d~j\\xa5h\\xdf\\xe2\\xd2 
>>>> \\xab
>>>> wO\\xea\\xe5\\xf8Ved_y`{\\x0b\\x05/
>>>> y\\x03Wn\\x07f\\xef\\xce]10\\xbc\\xfe\\xdcz\\xdbxcZ\\x00\\xaf\ 
>>>> \xe8\\x9
>>>> f\\x0f\\x18V\\xeb\\xea9\\xac\\x1bY}\\x908\\x97\\x15g\\r\\x98\ 
>>>> \x03T\\xd
>>>> 3\\xcfBd]\\xfe\\xc7\\xb2.L\\x1c\\xb9\\x03\\xd6z\\x84i{\\xbc\\x95\ 
>>>> \x8c\
>>>> \x1e\\xbd\\x94\\xc7\\xc6A\\xf5k<\\x93\\xc8\\xf8\\x15%1Xz\\x90S\ 
>>>> \xa0Uk,
>>>> `{\\x0c\\xb5\\xc2AE\\x05$\\xb2I4\\xa4\\x92\\x9f\\xff\\xd2\\xdd% 
>>>> 1*2\\xb
>>>> 3\\xba\\xd6s\\xb1qKk1m\\xb2\\xd6\\x9f\\x01\\xf9\\xceEM\\xac\\x8e\ 
>>>> \xa5\
>>>> \x89\\x8f\\xa3\\xec\\x05\\xdf\\xb8\\xddN\\x9f\\xf5+\\x9a\\xea\ 
>>>> \xb9\\xc
>>>> 3\\xaafT\\xcb\!
>>>>
>>>> \t\\xaf\\x16\\xb0\\xef\\xd1\\xcf\\xd2t\\xfer\\xa6\\xcb7H\\xf2\ 
>>>> \nMo\\x1
>>>> 3\\xa0\\xef\\xc1\\xd7\\xe6\\x84\\xa2LH\\x06\\x89\\xea\\xba\\x13\ 
>>>> \[email protected]\
>>>> \xc8X\\x1d\\x1b\\x9d6\\xb2\\xc7\\x96\\x0f\\xe6\\xcb\\x8e\\xdf(V\ 
>>>> \xf2z\
>>>> \x9dL\\x9a\\xf1\\xe2\\xcb8.\\x1fD\\x7f\\xe4\\x96C\\x88>\\xcd\ 
>>>> \xce#\\xf
>>>> 7D\\x81\\xf8(\\xbd\\xdf\\x98\\xc1\\xb5\\xa3\\xe9x\\x9f%\\x1c0\ 
>>>> \x01\\xf
>>>> 3\\x1e&I\\xf3$\\xfc\\x83\\x87\\xc5#\\x9c^\\xe3\\xac\\xb9\\xda\ 
>>>> \xb9\\xc
>>>> 9\\x89\\xdb\\x00\\'h\\x03O\\xbc\\xa6\\x1a\\xba{\\x05;
>>>> ^\\xd6k\\x0e\\xe8=\\x87\\xe5S\\xdcd\\x0e\\x10\\xde\\xe2\\x1eOy\ 
>>>> \x01I\\
>>>> xae\\x93\\'\\xb2(w>\\xaff\\xcb\\xac\\xc5q\\xfe[?\\xef\\xc0-
>>>> \\xe0\\xe5\\xc5\\xe2^q\\xf2\\xaa\\xb8~i\\xd7\\xe0y]{^\\x1c\\x01\ 
>>>> \x06A\
>>>> \xd4\\x14\\xc2\\xba%>\\xe4\\x90\\xb7$\\x92\\xe7\\xff\\xd3\\xd7%s\ 
>>>> \x7fX
>>>> /\\xf52v4\\xe9H\\x83\\xf3\\xe5tK\\x95\\xea_\\xd3/
>>>> \\xfe\\xbb\\xbf\\xd4\\xa2\\x11&\\x93\\x07q\\xc29<\\x85^\\xaf\ 
>>>> \xa0yFo!
>>>> 9\\x0c,{\\x9a$hJU\\xb6\\\\\\xd0~%+?
>>>> \\x9cS\\??\\xff\\x00QzL\\xea\\xb8}\\x8d\\xfd\\xad\\x88\\xc666X\ 
>>>> \xd7\\x
>>>> 08\\xed\\x04.\\xd4\!
>>>>
>>>> \x95>#cj\\xa6\\xa6h\\x98\\xcbS\\xc5l\\x89Q\\x9dTw&\\xdc\\xa4bdT\ 
>>>> \x08O2
>>>> \\x92Ja\\x1a\\xa4\\xa5\\t$\\xa7\\xff\\xd1\\xe8\\x12L\\x9aRK%S\ 
>>>> \xabW\\x
>>>> eat\\xfbH\\x1e\\xea\\xc6\\xf1\\xe3\\xed\\xf7\\x1f\\xfa*\\xd4\\xa8 
>>>> \\\\\
>>>> \xfaEN\\xf5\\x9c\\xd6VA\\x0es\\x88\\x02\\x0e\\x9c\\x94\\x08\\xb1I 
>>>> \\x06
>>>> \\x88=\\x9ez\\xa7:
>>>> \\xf67c\\xf6\\xed\\xf2\\x07\\xee\\xdc\\x86\\xe2\\xfa\\xec\\xf5\ 
>>>> \x1e\\x
>>>> fd\\x002\\x08\\x13\\xff\\x00EUc.e\\x81\\xd8v\\xb4\\xb4\\x925\ 
>>>> \xf70\\x9
>>>> 1\\xf9\\xc2?
>>>> y+p\\xba\\x96]\\x91{\\xda+\\x1fK\\xd3\\x9d~j\\xa5h\\xdf\\xe2\\xd2 
>>>> \\xab
>>>> wO\\xea\\xe5\\xf8Ved_y`{\\x0b\\x05/
>>>> y\\x03Wn\\x07f\\xef\\xce]10\\xbc\\xfe\\xdcz\\xdbxcZ\\x00\\xaf\ 
>>>> \xe8\\x9
>>>> f\\x0f\\x18V\\xeb\\xea9\\xac\\x1bY}\\x908\\x97\\x15g\\r\\x98\ 
>>>> \x03T\\xd
>>>> 3\\xcfBd]\\xfe\\xc7\\xb2.L\\x1c\\xb9\\x03\\xd6z\\x84i{\\xbc\\x95\ 
>>>> \x8c\
>>>> \x1e\\xbd\\x94\\xc7\\xc6A\\xf5k<\\x93\\xc8\\xf8\\x15%1Xz\\x90S\ 
>>>> \xa0Uk,
>>>> `{\\x0c\\xb5\\xc2AE\\x05$\\xb2I4\\xa4\\x92\\x9f\\xff\\xd2\\xdd% 
>>>> 1*2\\xb
>>>> 3\\xba\\xd6s\\xb1qKk1m\\xb2\\xd6\\x9f\\x01\\xf9\\xceEM\\xac\\x8e\ 
>>>> \xa5\
>>>> \x89\\x8f\\xa3\\xec\\x05\\xdf\\xb8\\xddN\\x9f\\xf5+\\x9a\\xea\ 
>>>> \xb9\\xc
>>>> 3\\xaafT\\xcb\!
>>>>
>>>> \t\\xaf\\x16\\xb0\\xef\\xd1\\xcf\\xd2t\\xfer\\xa6\\xcb7H\\xf2\ 
>>>> \nMo\\x1
>>>> 3\\xa0\\xef\\xc1\\xd7\\xe6\\x84\\xa2LH\\x06\\x89\\xea\\xba\\x13\ 
>>>> \[email protected]\
>>>> \xc8X\\x1d\\x1b\\x9d6\\xb2\\xc7\\x96\\x0f\\xe6\\xcb\\x8e\\xdf(V\ 
>>>> \xf2z\
>>>> \x9dL\\x9a\\xf1\\xe2\\xcb8.\\x1fD\\x7f\\xe4\\x96C\\x88>\\xcd\ 
>>>> \xce#\\xf
>>>> 7D\\x81\\xf8(\\xbd\\xdf\\x98\\xc1\\xb5\\xa3\\xe9x\\x9f%\\x1c0\ 
>>>> \x01\\xf
>>>> 3\\x1e&I\\xf3$\\xfc\\x83\\x87\\xc5#\\x9c^\\xe3\\xac\\xb9\\xda\ 
>>>> \xb9\\xc
>>>> 9\\x89\\xdb\\x00\\'h\\x03O\\xbc\\xa6\\x1a\\xba{\\x05;
>>>> ^\\xd6k\\x0e\\xe8=\\x87\\xe5S\\xdcd\\x0e\\x10\\xde\\xe2\\x1eOy\ 
>>>> \x01I\\
>>>> xae\\x93\\'\\xb2(w>\\xaff\\xcb\\xac\\xc5q\\xfe[?\\xef\\xc0-
>>>> \\xe0\\xe5\\xc5\\xe2^q\\xf2\\xaa\\xb8~i\\xd7\\xe0y]{^\\x1c\\x01\ 
>>>> \x06A\
>>>> \xd4\\x14\\xc2\\xba%>\\xe4\\x90\\xb7$\\x92\\xe7\\xff\\xd3\\xd7%s\ 
>>>> \x7fX
>>>> /\\xf52v4\\xe9H\\x83\\xf3\\xe5tK\\x95\\xea_\\xd3/
>>>> \\xfe\\xbb\\xbf\\xd4\\xa2\\x11&\\x93\\x07q\\xc29<\\x85^\\xaf\ 
>>>> \xa0yFo!
>>>> 9\\x0c,{\\x9a$hJU\\xb6\\\\\\xd0~%+?
>>>> \\x9cS\\xab\\xf">\\xff\\x00QzL\\xea\\xb8}\\x8d\\xfd\\xad\\x88\ 
>>>> \xc666X\
>>>> \xd7\\x08\\xed\\x04.\\x!
>>>>
>>>> d4\\x95>#cj\\xa6\\xa6h\\x98\\xcbS\\xc5l\\x89Q\\x9dTw&\\xdc\ 
>>>> \xa4bdT\\x0
>>>> 8O2\\x92Ja\\x1a\\xa4\\xa5\\t$\\xa7\\xff\\xd1\\xe8\\x12L\\x9aRK%S\ 
>>>> \xabW
>>>> \\xeat\\xfbH\\x1e\\xea\\xc6\\xf1\\xe3\\xed\\xf7\\x1f\\xfa*\\xd4\ 
>>>> \xa8\\
>>>> \\\\xfaEN\\xf5\\x9c\\xd6VA\\x0es\\x88\\x02\\x0e\\x9c\\x94\\x08\ 
>>>> \xb1I\\
>>>> x06\\x88=\\x9ez\\xa7:
>>>> \\xf67c\\xf6\\xed\\xf2\\x07\\xee\\xdc\\x86\\xe2\\xfa\\xec\\xf5\ 
>>>> \x1e\\x
>>>> fd\\x002\\x08\\x13\\xff\\x00EUc.e\\x81\\xd8v\\xb4\\xb4\\x925\ 
>>>> \xf70\\x9
>>>> 1\\xf9\\xc2?
>>>> y+p\\xba\\x96]\\x91{\\xda+\\x1fK\\xd3\\x9d~j\\xa5h\\xdf\\xe2\\xd2 
>>>> \\xab
>>>> wO\\xea\\xe5\\xf8Ved_y`{\\x0b\\x05/
>>>> y\\x03Wn\\x07f\\xef\\xce]10\\xbc\\xfe\\xdcz\\xdbxcZ\\x00\\xaf\ 
>>>> \xe8\\x9
>>>> f\\x0f\\x18V\\xeb\\xea9\\xac\\x1bY}\\x908\\x97\\x15g\\r\\x98\ 
>>>> \x03T\\xd
>>>> 3\\xcfBd]\\xfe\\xc7\\xb2.L\\x1c\\xb9\\x03\\xd6z\\x84i{\\xbc\\x95\ 
>>>> \x8c\
>>>> \x1e\\xbd\\x94\\xc7\\xc6A\\xf5k<\\x93\\xc8\\xf8\\x15%1Xz\\x90S\ 
>>>> \xa0Uk,
>>>> `{\\x0c\\xb5\\xc2AE\\x05$\\xb2I4\\xa4\\x92\\x9f\\xff\\xd2\\xdd% 
>>>> 1*2\\xb
>>>> 3\\xba\\xd6s\\xb1qKk1m\\xb2\\xd6\\x9f\\x01\\xf9\\xceEM\\xac\\x8e\ 
>>>> \xa5\
>>>> \x89\\x8f\\xa3\\xec\\x05\\xdf\\xb8\\xddN\\x9f\\xf5+\\x9a\\xea\ 
>>>> \xb9\\xc
>>>> 3\\xaafT\\x!
>>>>
>>>> cb\\t\\xaf\\x16\\xb0\\xef\\xd1\\xcf\\xd2t\\xfer\\xa6\\xcb7H\\xf2\ 
>>>> \nMo\
>>>> \x13\\xa0\\xef\\xc1\\xd7\\xe6\\x84\\xa2LH\\x06\\x89\\xea\\xba\ 
>>>> \x13\\x0
>>>> [email protected]\\xc8X\\x1d\\x1b\\x9d6\\xb2\\xc7\\x96\\x0f\\xe6\\xcb\\x8e\\xdf 
>>>> (V\\xf
>>>> 2z\\x9dL\\x9a\\xf1\\xe2\\xcb8.\\x1fD\\x7f\\xe4\\x96C\\x88>\\xcd\ 
>>>> \xce#\
>>>> \xf7D\\x81\\xf8(\\xbd\\xdf\\x98\\xc1\\xb5\\xa3\\xe9x\\x9f%\\x1c0\ 
>>>> \x01\
>>>> \xf3\\x1e&I\\xf3$\\xfc\\x83\\x87\\xc5#\\x9c^\\xe3\\xac\\xb9\\xda\ 
>>>> \xb9\
>>>> \xc9\\x89\\xdb\\x00\\'h\\x03O\\xbc\\xa6\\x1a\\xba{\\x05;
>>>> ^\\xd6k\\x0e\\xe8=\\x87\\xe5S\\xdcd\\x0e\\x10\\xde\\xe2\\x1eOy\ 
>>>> \x01I\\
>>>> xae\\x93\\'\\xb2(w>\\xaff\\xcb\\xac\\xc5q\\xfe[?\\xef\\xc0-
>>>> \\xe0\\xe5\\xc5\\xe2^q\\xf2\\xaa\\xb8~i\\xd7\\xe0y]{^\\x1c\\x01\ 
>>>> \x06A\
>>>> \xd4\\x14\\xc2\\xba%>\\xe4\\x90\\xb7$\\x92\\xe7\\xff\\xd3\\xd7%s\ 
>>>> \x7fX
>>>> /\\xf52v4\\xe9H\\x83\\xf3\\xe5tK\\x95\\xea_\\xd3/
>>>> \\xfe\\xbb\\xbf\\xd4\\xa2\\x11&\\x93\\x07q\\xc29<\\x85^\\xaf\ 
>>>> \xa0yFo!
>>>> 9\\x0c,{\\x9a$hJU\\xb6\\\\\\xd0~%+?
>>>> \\x9cS\\xab\\xf9\\xd7p\\x92\\x99\\x13\\xa7>d$\\xe3\\xb5\\x84\\x83 
>>>> \\xcf
>>>> \\x1f\\x143 <file://!
>>>>
>>>> \\xff\\x00QzL\\xea\\xb8}\\x8d\\xfd\\xad\\x88\\xc666X\\xd7\\x08\ 
>>>> \xed\\x
>>>> 04.\\xd4\\x95>
>>>>
>>>>
>>>> Any thoughts on this?
>>>>
>>>>
>>>> --Alec
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Mod_python mailing list
>>>> Mod_python at modpython.org
>>>> http://mailman.modpython.org/mailman/listinfo/mod_python
>>>
>>>
>>> _______________________________________________
>>> Mod_python mailing list
>>> Mod_python at modpython.org
>>> http://mailman.modpython.org/mailman/listinfo/mod_python
>
> _______________________________________________
> Mod_python mailing list
> Mod_python at modpython.org
> http://mailman.modpython.org/mailman/listinfo/mod_python



More information about the Mod_python mailing list