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

Graham Dumpleton grahamd at dscpl.com.au
Fri Apr 21 05:23:42 EDT 2006


A creative way of getting around the problem. I hadn't thought
of using a filter. Some suggested changes below.

On 21/04/2006, at 6:12 PM, Alec Matusis wrote:

>
> I figured out how to do this without changing mod_python source:
>
> I wrote a mod_python input filter:
>
> flashfilter.py:
>
> from mod_python import apache
>
> def inputfilter(filter):
>     #this is a workaround flash 8 FileReference bug: Flash POST is not
> RFC-compliant as of Flash 8,0,22,0


     if 'flashfileref' in parse_args(filter.req.args):
       filter.pass_on()
       return


>     s = filter.read()
>     while s:
>         if 'flashfileref' in parse_args(filter.req.args):
>             filter.write(s.replace('\r\nSubmit Query','\r\n\r\nSubmit
> Query'))
>         else:
>             filter.write(s)

Just have:

            filter.write(s.replace('\r\nSubmit Query','\r\n\r\nSubmit  
Query'))

as pass on call above will cause your filtering code to be skipped.

Graham

>         s = filter.read()
>
>     if s is None:
>         filter.close()
>
> For this to work, flash FileReference should submit data to a script
> /myscript with an argument /myscript?flashfileref
> since I wanted to be able to mark which data should be filtered not to
> reduce performance too much.
>
> Also I had to do
>                 PythonInputFilter flashfilter FLASHFILTER
>                 SetInputFilter FLASHFILTER
>
> in my apache config file.
>
> parse_args(args) is a simple function that converts the arguments of a
> request that follow "?" into a dictionary.
>
>
> -----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\\x02@\\x00\\x00\\x02@\\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\\x89u@\\xcb^\\xd1\\xcd\\x94\
>>>>> \xcf\
>>>>> \xfd6-\\xf8^=\\x8a\\xcb\\xfa?U\\xc4\\xbd\\xae!
>>>>> \\xd5\\xd8\\xd7\\x0e\\xe7\\x9d\\xb67O\\xe4\\x95\\xec@\\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\
>>>>> \x02@\
>>>>> \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\
>>>>> \x02@\
>>>>> \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
>>>>> 2@\\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