@@ -38,76 +38,104 @@ pub trait HttpModuleConfExt {
38
38
}
39
39
}
40
40
41
+ impl HttpModuleConfExt for crate :: ffi:: ngx_http_conf_ctx_t {
42
+ #[ inline]
43
+ unsafe fn http_main_conf_unchecked < T > ( & self , module : & ngx_module_t ) -> Option < NonNull < T > > {
44
+ NonNull :: new ( unsafe { * self . main_conf . add ( module. ctx_index ) } . cast ( ) )
45
+ }
46
+
47
+ #[ inline]
48
+ unsafe fn http_server_conf_unchecked < T > ( & self , module : & ngx_module_t ) -> Option < NonNull < T > > {
49
+ NonNull :: new ( unsafe { * self . srv_conf . add ( module. ctx_index ) } . cast ( ) )
50
+ }
51
+
52
+ #[ inline]
53
+ unsafe fn http_location_conf_unchecked < T > ( & self , module : & ngx_module_t ) -> Option < NonNull < T > > {
54
+ NonNull :: new ( unsafe { * self . loc_conf . add ( module. ctx_index ) } . cast ( ) )
55
+ }
56
+ }
57
+
41
58
impl HttpModuleConfExt for crate :: ffi:: ngx_cycle_t {
42
59
#[ inline]
43
60
unsafe fn http_main_conf_unchecked < T > ( & self , module : & ngx_module_t ) -> Option < NonNull < T > > {
44
- let http_conf = self
45
- . conf_ctx
46
- . add ( nginx_sys:: ngx_http_module. index )
47
- . as_ref ( ) ?;
61
+ let http_conf = unsafe {
62
+ self . conf_ctx
63
+ . add ( nginx_sys:: ngx_http_module. index )
64
+ . as_ref ( ) ?
65
+ } ;
48
66
let conf_ctx = ( * http_conf) . cast :: < ngx_http_conf_ctx_t > ( ) ;
49
- let conf_ctx = conf_ctx. as_ref ( ) ?;
50
- NonNull :: new ( ( * conf_ctx. main_conf . add ( module. ctx_index ) ) . cast ( ) )
67
+ unsafe { conf_ctx. as_ref ( ) ?. http_main_conf_unchecked ( module) }
51
68
}
52
69
}
53
70
54
71
impl HttpModuleConfExt for crate :: ffi:: ngx_conf_t {
55
72
#[ inline]
56
73
unsafe fn http_main_conf_unchecked < T > ( & self , module : & ngx_module_t ) -> Option < NonNull < T > > {
57
74
let conf_ctx = self . ctx . cast :: < ngx_http_conf_ctx_t > ( ) ;
58
- let conf_ctx = conf_ctx. as_ref ( ) ?;
59
- NonNull :: new ( ( * conf_ctx. main_conf . add ( module. ctx_index ) ) . cast ( ) )
75
+ unsafe { conf_ctx. as_ref ( ) ?. http_main_conf_unchecked ( module) }
60
76
}
61
77
62
78
#[ inline]
63
79
unsafe fn http_server_conf_unchecked < T > ( & self , module : & ngx_module_t ) -> Option < NonNull < T > > {
64
80
let conf_ctx = self . ctx . cast :: < ngx_http_conf_ctx_t > ( ) ;
65
- let conf_ctx = conf_ctx. as_ref ( ) ?;
66
- NonNull :: new ( ( * conf_ctx. srv_conf . add ( module. ctx_index ) ) . cast ( ) )
81
+ unsafe { conf_ctx. as_ref ( ) ?. http_server_conf_unchecked ( module) }
67
82
}
68
83
69
84
#[ inline]
70
85
unsafe fn http_location_conf_unchecked < T > ( & self , module : & ngx_module_t ) -> Option < NonNull < T > > {
71
86
let conf_ctx = self . ctx . cast :: < ngx_http_conf_ctx_t > ( ) ;
72
- let conf_ctx = conf_ctx. as_ref ( ) ?;
73
- NonNull :: new ( ( * conf_ctx. loc_conf . add ( module. ctx_index ) ) . cast ( ) )
87
+ unsafe { conf_ctx. as_ref ( ) ?. http_location_conf_unchecked ( module) }
88
+ }
89
+ }
90
+
91
+ impl HttpModuleConfExt for crate :: ffi:: ngx_http_connection_t {
92
+ #[ inline]
93
+ unsafe fn http_main_conf_unchecked < T > ( & self , module : & ngx_module_t ) -> Option < NonNull < T > > {
94
+ unsafe { self . conf_ctx . as_ref ( ) ?. http_main_conf_unchecked ( module) }
95
+ }
96
+
97
+ #[ inline]
98
+ unsafe fn http_server_conf_unchecked < T > ( & self , module : & ngx_module_t ) -> Option < NonNull < T > > {
99
+ unsafe { self . conf_ctx . as_ref ( ) ?. http_server_conf_unchecked ( module) }
100
+ }
101
+
102
+ #[ inline]
103
+ unsafe fn http_location_conf_unchecked < T > ( & self , module : & ngx_module_t ) -> Option < NonNull < T > > {
104
+ unsafe { self . conf_ctx . as_ref ( ) ?. http_location_conf_unchecked ( module) }
74
105
}
75
106
}
76
107
77
108
impl HttpModuleConfExt for ngx_http_core_srv_conf_t {
78
109
#[ inline]
79
110
unsafe fn http_main_conf_unchecked < T > ( & self , module : & ngx_module_t ) -> Option < NonNull < T > > {
80
- let conf_ctx = self . ctx . as_ref ( ) ?;
81
- NonNull :: new ( ( * conf_ctx. main_conf . add ( module. ctx_index ) ) . cast ( ) )
111
+ unsafe { self . ctx . as_ref ( ) ?. http_main_conf_unchecked ( module) }
82
112
}
83
113
84
114
#[ inline]
85
115
unsafe fn http_server_conf_unchecked < T > ( & self , module : & ngx_module_t ) -> Option < NonNull < T > > {
86
- let conf_ctx = self . ctx . as_ref ( ) ?;
87
- NonNull :: new ( ( * conf_ctx. srv_conf . add ( module. ctx_index ) ) . cast ( ) )
116
+ unsafe { self . ctx . as_ref ( ) ?. http_server_conf_unchecked ( module) }
88
117
}
89
118
90
119
#[ inline]
91
120
unsafe fn http_location_conf_unchecked < T > ( & self , module : & ngx_module_t ) -> Option < NonNull < T > > {
92
- let conf_ctx = self . ctx . as_ref ( ) ?;
93
- NonNull :: new ( ( * conf_ctx. loc_conf . add ( module. ctx_index ) ) . cast ( ) )
121
+ unsafe { self . ctx . as_ref ( ) ?. http_location_conf_unchecked ( module) }
94
122
}
95
123
}
96
124
97
125
impl HttpModuleConfExt for ngx_http_request_t {
98
126
#[ inline]
99
127
unsafe fn http_main_conf_unchecked < T > ( & self , module : & ngx_module_t ) -> Option < NonNull < T > > {
100
- NonNull :: new ( ( * self . main_conf . add ( module. ctx_index ) ) . cast ( ) )
128
+ NonNull :: new ( unsafe { * self . main_conf . add ( module. ctx_index ) } . cast ( ) )
101
129
}
102
130
103
131
#[ inline]
104
132
unsafe fn http_server_conf_unchecked < T > ( & self , module : & ngx_module_t ) -> Option < NonNull < T > > {
105
- NonNull :: new ( ( * self . srv_conf . add ( module. ctx_index ) ) . cast ( ) )
133
+ NonNull :: new ( unsafe { * self . srv_conf . add ( module. ctx_index ) } . cast ( ) )
106
134
}
107
135
108
136
#[ inline]
109
137
unsafe fn http_location_conf_unchecked < T > ( & self , module : & ngx_module_t ) -> Option < NonNull < T > > {
110
- NonNull :: new ( ( * self . loc_conf . add ( module. ctx_index ) ) . cast ( ) )
138
+ NonNull :: new ( unsafe { * self . loc_conf . add ( module. ctx_index ) } . cast ( ) )
111
139
}
112
140
}
113
141
@@ -118,7 +146,7 @@ impl HttpModuleConfExt for ngx_http_upstream_srv_conf_t {
118
146
if conf. is_null ( ) {
119
147
return None ;
120
148
}
121
- NonNull :: new ( ( * conf. add ( module. ctx_index ) ) . cast ( ) )
149
+ NonNull :: new ( unsafe { * conf. add ( module. ctx_index ) } . cast ( ) )
122
150
}
123
151
}
124
152
0 commit comments