Romain Slootmaekers wrote:
Hi,
below the original post:

it is a bug in Products/Localizer/Accept.py

here's the code to fix it:

#--- code fix starting from line 102 ---


# Get the quality
try:
if len(x) == 2:
quality = x[1] # Get the quality
quality =quality.strip()
quality = quality[2:] # Get the number (remove "q=")
quality = float(quality) # Change it to float
else:
quality = 1.0
except:
quality=1.0
#--- end of code fix ---

I added a strip() and a try/except for other things that can go wrong.

This way Nokia Wap surfers can access your site while Localizer is installed.

have fun,

Sloot.

BTW, exceptions that originate here are not caught in the error_log.
this is probably unintended as well.


----------------- original post -----------------------------
Hi,

We have problems with the Accept-Charset headers that are sent to the zope server by some mobile phones:
fi:
'Accept-Charset':'ISO-8859-1, US-ASCII, UTF-8; Q=0.8'

These cause a 500 internal server error. (Error Value: invalid literal for float(): =0.8 )

I checked with the HTTP1.1 RFC26160 section 14.2 and the header seems valid, but in fact isn't:
there is a space between the semi-colon and the Q char (which shouldn't be there acoording to the spec).

So, in principle, this is not a zope server bug, but an inflexibility.

I think the server should be a bit more lenient.
a simple .strip() in the right place should do.

Could you guys fix this?

TIA,

Sloot.




BTW, for completeness, I included a quick test program is included below (causes a 500 on my zope 2.6.0) :



#--------------------- program illustrating the behavior -----------
import httplib, urllib

def sendHTTP():
"""

"""
headers = {'Accept':
'application/vnd.wap.wmlc, application/vnd.wap.wmlscriptc, application/vnd.wap.wbxml, image/vnd.wap.wbmp, image/gif, application/*, text/html, application/xhtml+xml, application/vnd.wap.wml+xml, text/css',
'Accept-Charset':'ISO-8859-1, US-ASCII, UTF-8; Q=0.8'}#, ISO-10646-UCS-2; Q=0.6'
conn = httplib.HTTPConnection("127.0.0.1:8080")
conn.request("GET", "/mobile/wap/games/",headers=headers)
response = conn.getresponse()
print response.status, response.reason
data = response.read()
print data

conn.close()

sendHTTP()




_______________________________________________
Zope-Dev maillist - [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
** No cross posts or HTML encoding! **
(Related lists - http://lists.zope.org/mailman/listinfo/zope-announce
http://lists.zope.org/mailman/listinfo/zope )




_______________________________________________
Zope-Dev maillist - [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
** No cross posts or HTML encoding! **
(Related lists - http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )

Reply via email to