[issue18229] attribute headers of http.server.BaseHTTPRequestHandler sometimes does not exists

2014-04-16 Thread Roundup Robot

Roundup Robot added the comment:

New changeset 104fab0143e9 by Senthil Kumaran in branch '3.4':
Address issue 18229 - Explain http.server.BaseHTTPRequestHandler's .headers 
attribute further.
http://hg.python.org/cpython/rev/104fab0143e9

--
nosy: +python-dev

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue18229
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue18229] attribute headers of http.server.BaseHTTPRequestHandler sometimes does not exists

2014-04-16 Thread Senthil Kumaran

Changes by Senthil Kumaran sent...@uthcode.com:


--
resolution:  - fixed
stage:  - committed/rejected
status: open - closed
versions: +Python 3.5 -Python 2.7, Python 3.3

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue18229
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue18229] attribute headers of http.server.BaseHTTPRequestHandler sometimes does not exists

2014-04-15 Thread Caelyn McAulay

Caelyn McAulay added the comment:

Added comment to documentation concerning when the headers attribute gets set. 

I confirmed that the headers attribute is only ever set in the parse_request 
method of BaseHTTPRequestHandler and only if the request is successfully parsed 
as HTTP.

--
keywords: +patch
nosy: +math_foo
Added file: http://bugs.python.org/file34884/documentation18229.patch

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue18229
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue18229] attribute headers of http.server.BaseHTTPRequestHandler sometimes does not exists

2013-10-06 Thread Georg Brandl

Georg Brandl added the comment:

This appears to be a bug in the _lowerHTTP module, which does not ship with 
Python.

--
nosy: +georg.brandl
resolution:  - invalid
status: open - closed

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue18229
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue18229] attribute headers of http.server.BaseHTTPRequestHandler sometimes does not exists

2013-10-06 Thread Jordan Szubert

Jordan Szubert added the comment:

what _lowerHTTP does is try read request header 'X-Forwarded-For', but instance 
of request handler have attribute headers only if thing that connected to port 
where server listens happened to send valid enough http request

my problem is, documentation does not help write code that would not crash when 
client sends random bytes instead of expected http request

--
resolution: invalid - 
status: closed - open

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue18229
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue18229] attribute headers of http.server.BaseHTTPRequestHandler sometimes does not exists

2013-10-06 Thread Jordan Szubert

Jordan Szubert added the comment:

#minimal server:
#!/c/Python33/python.exe
from http.server import HTTPServer as S, BaseHTTPRequestHandler as H
class HNDL(H):
def log_request(req,code):
print('header is',req.headers.get('X-Forwarder-For'),', 
code',code)
H.log_request(req)
s=S(('',54321),HNDL)
s.serve_forever()


#non-http client:
#!/c/Python33/python.exe
import socket,os
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('localhost', 54321))
s.sendall(os.urandom(1024))
buf=s.recv(2048)
s.close()
print(buf)


#running server:
$ ./server.py
127.0.0.1 - - [06/Oct/2013 17:33:41] code 400, message Bad HTTP/0.9 request type
 ('E)\xaeE^2¤\xf2W\x8f\xb3aG')

Exception happened during processing of request from ('127.0.0.1', 18234)
Traceback (most recent call last):
  File c:\Python33\lib\socketserver.py, line 306, in _handle_request_noblock
self.process_request(request, client_address)
  File c:\Python33\lib\socketserver.py, line 332, in process_request
self.finish_request(request, client_address)
  File c:\Python33\lib\socketserver.py, line 345, in finish_request
self.RequestHandlerClass(request, client_address, self)
  File c:\Python33\lib\socketserver.py, line 666, in __init__
self.handle()
  File c:\Python33\lib\http\server.py, line 400, in handle
self.handle_one_request()
  File c:\Python33\lib\http\server.py, line 380, in handle_one_request
if not self.parse_request():
  File c:\Python33\lib\http\server.py, line 311, in parse_request
Bad HTTP/0.9 request type (%r) % command)
  File c:\Python33\lib\http\server.py, line 428, in send_error
self.send_response(code, message)
  File c:\Python33\lib\http\server.py, line 443, in send_response
self.log_request(code)
  File ./server.py, line 5, in log_request
print('header is',req.headers.get('X-Forwarder-For'),', code',code)
AttributeError: 'HNDL' object has no attribute 'headers'



#running client:
$ ./client.py
b''
$

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue18229
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue18229] attribute headers of http.server.BaseHTTPRequestHandler sometimes does not exists

2013-10-06 Thread Georg Brandl

Georg Brandl added the comment:

OK, so I guess it could be documented that the headers attribute is not set 
if the request cannot be parsed as a HTTP request.  That's a valid point.

By the way, you should really call your self argument self.

--
versions: +Python 2.7, Python 3.4

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue18229
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue18229] attribute headers of http.server.BaseHTTPRequestHandler sometimes does not exists

2013-06-16 Thread Jordan Szubert

New submission from Jordan Szubert:

it seems that problem is someone connecting to port 8080 with non-http client, 
could not find warning in documentation


---fragment of `less access.log`
81.172.30.254 - - [16/Jun/2013 11:36:58] ^SBitTorrent protocol^@^@^@^@^@^X^@^Ej
81.172.30.254 - - [16/Jun/2013 11:38:11] ^NU+008E^@f¸ãÄòQ;³xU+0092b^C^HÄA7
81.172.30.254 - - [16/Jun/2013 11:39:22] ^SBitTorrent protocol^@^@^@^@^@^X^@^Ej
81.172.30.254 - - [16/Jun/2013 11:40:35] ÃU+008D¬0æzU+0093zr^DU+009B2]WQ



Exception happened during processing of request from ('81.172.30.254', 63650)
Traceback (most recent call last):
  File c:\Python33\lib\socketserver.py, line 306, in _handle_request_noblock
self.process_request(request, client_address)
  File c:\Python33\lib\socketserver.py, line 332, in process_request
self.finish_request(request, client_address)
  File c:\Python33\lib\socketserver.py, line 345, in finish_request
self.RequestHandlerClass(request, client_address, self)
  File c:\Python33\lib\socketserver.py, line 666, in __init__
self.handle()
  File c:\Python33\lib\http\server.py, line 400, in handle
self.handle_one_request()
  File c:\Python33\lib\http\server.py, line 380, in handle_one_request
if not self.parse_request():
  File c:\Python33\lib\http\server.py, line 283, in parse_request
self.send_error(400, Bad request version (%r) % version)
  File c:\Python33\lib\http\server.py, line 428, in send_error
self.send_response(code, message)
  File c:\Python33\lib\http\server.py, line 443, in send_response
self.log_request(code)
  File c:\Users\joru\Dropbox\programowanie\demoniszcze\server\_lowerHTTP.py, 
line 30, in log_request
xff=req.headers.get('X-Forwarded-For')
AttributeError: '_HNDL_3' object has no attribute 'headers'
# _HNLD_3 derives from http.server.BaseHTTPRequestHandler

--
assignee: docs@python
components: Documentation
messages: 191264
nosy: docs@python, joru
priority: normal
severity: normal
status: open
title: attribute headers of http.server.BaseHTTPRequestHandler sometimes does 
not exists
type: behavior
versions: Python 3.3

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue18229
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com