11from cpython cimport Py_INCREF, Py_DECREF
2- from .nginx_core cimport ngx_log_error, NGX_LOG_CRIT, NGX_AGAIN
2+ from .nginx_core cimport ngx_log_error, NGX_LOG_CRIT, NGX_AGAIN, from_nginx_str
33from .ngx_http cimport ngx_http_request_t, ngx_http_core_run_phases
44from .ngx_http cimport ngx_http_get_module_ctx, ngx_http_set_ctx
55
@@ -11,6 +11,13 @@ cdef class Request:
1111 ngx_http_request_t * request
1212 public Log log
1313 object future
14+ public str request_line
15+ public str uri
16+ public str args
17+ public str extension
18+ public str unparsed_uri
19+ public str method_name
20+ public str http_protocol
1421
1522 def __init__ (self , *args ):
1623 raise NotImplementedError
@@ -30,6 +37,18 @@ cdef class Request:
3037 return self .future.result()
3138 return NGX_AGAIN
3239
40+ def __repr__ (self ):
41+ return f' Request({self.method_name} {self.uri})'
42+
43+ def __str__ (self ):
44+ return f''' request_line: {self.request_line}
45+ uri: {self.uri}
46+ args: {self.args}
47+ extension: {self.extension}
48+ unparsed_uri: {self.unparsed_uri}
49+ method_name: {self.method_name}
50+ http_protocol: {self.http_protocol}'''
51+
3352 @staticmethod
3453 cdef Request from_ptr(ngx_http_request_t * request):
3554 cdef:
@@ -40,6 +59,15 @@ cdef class Request:
4059 new_req = Request.__new__ (Request)
4160 new_req.request = request
4261 new_req.log = Log.from_ptr(request.connection.log)
62+
63+ new_req.request_line = from_nginx_str(request.request_line)
64+ new_req.uri = from_nginx_str(request.uri)
65+ new_req.args = from_nginx_str(request.args)
66+ new_req.extension = from_nginx_str(request.exten)
67+ new_req.unparsed_uri = from_nginx_str(request.unparsed_uri)
68+ new_req.method_name = from_nginx_str(request.method_name)
69+ new_req.http_protocol = from_nginx_str(request.http_protocol)
70+
4371 ngx_http_set_ctx(request, < void * > new_req, ngx_python_module)
4472 return new_req
4573 else :
0 commit comments