20
20
#include "Zend/zend_smart_str.h"
21
21
#include "Zend/zend_exceptions.h"
22
22
23
- static void uriparser_free_uri (void * uri );
24
-
25
- static void * uriparser_malloc (UriMemoryManager * memory_manager , size_t size )
23
+ static void * php_uri_parser_rfc3986_memory_manager_malloc (UriMemoryManager * memory_manager , size_t size )
26
24
{
27
25
return emalloc (size );
28
26
}
29
27
30
- static void * uriparser_calloc (UriMemoryManager * memory_manager , size_t nmemb , size_t size )
28
+ static void * php_uri_parser_rfc3986_memory_manager_calloc (UriMemoryManager * memory_manager , size_t nmemb , size_t size )
31
29
{
32
30
return ecalloc (nmemb , size );
33
31
}
34
32
35
- static void * uriparser_realloc (UriMemoryManager * memory_manager , void * ptr , size_t size )
33
+ static void * php_uri_parser_rfc3986_memory_manager_realloc (UriMemoryManager * memory_manager , void * ptr , size_t size )
36
34
{
37
35
return erealloc (ptr , size );
38
36
}
39
37
40
- static void * uriparser_reallocarray (UriMemoryManager * memory_manager , void * ptr , size_t nmemb , size_t size )
38
+ static void * php_uri_parser_rfc3986_memory_manager_reallocarray (UriMemoryManager * memory_manager , void * ptr , size_t nmemb , size_t size )
41
39
{
42
40
return safe_erealloc (ptr , nmemb , size , 0 );
43
41
}
44
42
45
- static void uriparser_free (UriMemoryManager * memory_manager , void * ptr )
43
+ static void php_uri_parser_rfc3986_memory_manager_free (UriMemoryManager * memory_manager , void * ptr )
46
44
{
47
45
efree (ptr );
48
46
}
49
47
50
- static const UriMemoryManager uriparser_mm = {
51
- .malloc = uriparser_malloc ,
52
- .calloc = uriparser_calloc ,
53
- .realloc = uriparser_realloc ,
54
- .reallocarray = uriparser_reallocarray ,
55
- .free = uriparser_free ,
48
+ static const UriMemoryManager php_uri_parser_rfc3986_memory_manager = {
49
+ .malloc = php_uri_parser_rfc3986_memory_manager_malloc ,
50
+ .calloc = php_uri_parser_rfc3986_memory_manager_calloc ,
51
+ .realloc = php_uri_parser_rfc3986_memory_manager_realloc ,
52
+ .reallocarray = php_uri_parser_rfc3986_memory_manager_reallocarray ,
53
+ .free = php_uri_parser_rfc3986_memory_manager_free ,
56
54
.userData = NULL ,
57
55
};
58
56
59
57
/* The library expects a pointer to a non-const UriMemoryManager, but does
60
58
* not actually modify it (and neither does our implementation). Use a
61
59
* const struct with a non-const pointer for convenience. */
62
- static UriMemoryManager * const mm = (UriMemoryManager * )& uriparser_mm ;
60
+ static UriMemoryManager * const mm = (UriMemoryManager * )& php_uri_parser_rfc3986_memory_manager ;
63
61
64
62
static inline size_t get_text_range_length (const UriTextRangeA * range )
65
63
{
66
64
return range -> afterLast - range -> first ;
67
65
}
68
66
69
- ZEND_ATTRIBUTE_NONNULL static void uriparser_copy_uri (UriUriA * new_uriparser_uri , const UriUriA * uriparser_uri )
67
+ ZEND_ATTRIBUTE_NONNULL static void copy_uri (UriUriA * new_uriparser_uri , const UriUriA * uriparser_uri )
70
68
{
71
69
int result = uriCopyUriMmA (new_uriparser_uri , uriparser_uri , mm );
72
70
ZEND_ASSERT (result == URI_SUCCESS );
73
71
}
74
72
75
- ZEND_ATTRIBUTE_NONNULL static UriUriA * get_normalized_uri (uriparser_uris_t * uriparser_uris ) {
73
+ ZEND_ATTRIBUTE_NONNULL static UriUriA * get_normalized_uri (php_uri_parser_rfc3986_uris * uriparser_uris ) {
76
74
if (!uriparser_uris -> normalized_uri_initialized ) {
77
- uriparser_copy_uri (& uriparser_uris -> normalized_uri , & uriparser_uris -> uri );
75
+ copy_uri (& uriparser_uris -> normalized_uri , & uriparser_uris -> uri );
78
76
int result = uriNormalizeSyntaxExMmA (& uriparser_uris -> normalized_uri , (unsigned int )-1 , mm );
79
77
ZEND_ASSERT (result == URI_SUCCESS );
80
78
uriparser_uris -> normalized_uri_initialized = true;
@@ -83,7 +81,7 @@ ZEND_ATTRIBUTE_NONNULL static UriUriA *get_normalized_uri(uriparser_uris_t *urip
83
81
return & uriparser_uris -> normalized_uri ;
84
82
}
85
83
86
- ZEND_ATTRIBUTE_NONNULL static UriUriA * uriparser_read_uri ( uriparser_uris_t * uriparser_uris , uri_component_read_mode_t read_mode )
84
+ ZEND_ATTRIBUTE_NONNULL static UriUriA * get_uri_for_reading ( php_uri_parser_rfc3986_uris * uriparser_uris , uri_component_read_mode_t read_mode )
87
85
{
88
86
switch (read_mode ) {
89
87
case URI_COMPONENT_READ_RAW :
@@ -96,9 +94,9 @@ ZEND_ATTRIBUTE_NONNULL static UriUriA *uriparser_read_uri(uriparser_uris_t *urip
96
94
}
97
95
}
98
96
99
- ZEND_ATTRIBUTE_NONNULL static zend_result uriparser_read_scheme (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
97
+ ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_scheme_read (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
100
98
{
101
- const UriUriA * uriparser_uri = uriparser_read_uri (internal_uri -> uri , read_mode );
99
+ const UriUriA * uriparser_uri = get_uri_for_reading (internal_uri -> uri , read_mode );
102
100
ZEND_ASSERT (uriparser_uri != NULL );
103
101
104
102
if (uriparser_uri -> scheme .first != NULL && uriparser_uri -> scheme .afterLast != NULL ) {
@@ -111,9 +109,9 @@ ZEND_ATTRIBUTE_NONNULL static zend_result uriparser_read_scheme(const uri_intern
111
109
return SUCCESS ;
112
110
}
113
111
114
- ZEND_ATTRIBUTE_NONNULL zend_result uriparser_read_userinfo (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
112
+ ZEND_ATTRIBUTE_NONNULL zend_result php_uri_parser_rfc3986_userinfo_read (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
115
113
{
116
- const UriUriA * uriparser_uri = uriparser_read_uri (internal_uri -> uri , read_mode );
114
+ const UriUriA * uriparser_uri = get_uri_for_reading (internal_uri -> uri , read_mode );
117
115
ZEND_ASSERT (uriparser_uri != NULL );
118
116
119
117
if (uriparser_uri -> userInfo .first != NULL && uriparser_uri -> userInfo .afterLast != NULL ) {
@@ -125,9 +123,9 @@ ZEND_ATTRIBUTE_NONNULL zend_result uriparser_read_userinfo(const uri_internal_t
125
123
return SUCCESS ;
126
124
}
127
125
128
- ZEND_ATTRIBUTE_NONNULL static zend_result uriparser_read_username (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
126
+ ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_username_read (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
129
127
{
130
- const UriUriA * uriparser_uri = uriparser_read_uri (internal_uri -> uri , read_mode );
128
+ const UriUriA * uriparser_uri = get_uri_for_reading (internal_uri -> uri , read_mode );
131
129
ZEND_ASSERT (uriparser_uri != NULL );
132
130
133
131
if (uriparser_uri -> userInfo .first != NULL && uriparser_uri -> userInfo .afterLast != NULL ) {
@@ -148,9 +146,9 @@ ZEND_ATTRIBUTE_NONNULL static zend_result uriparser_read_username(const uri_inte
148
146
return SUCCESS ;
149
147
}
150
148
151
- ZEND_ATTRIBUTE_NONNULL static zend_result uriparser_read_password (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
149
+ ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_password_read (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
152
150
{
153
- const UriUriA * uriparser_uri = uriparser_read_uri (internal_uri -> uri , read_mode );
151
+ const UriUriA * uriparser_uri = get_uri_for_reading (internal_uri -> uri , read_mode );
154
152
ZEND_ASSERT (uriparser_uri != NULL );
155
153
156
154
if (uriparser_uri -> userInfo .first != NULL && uriparser_uri -> userInfo .afterLast != NULL ) {
@@ -168,9 +166,9 @@ ZEND_ATTRIBUTE_NONNULL static zend_result uriparser_read_password(const uri_inte
168
166
return SUCCESS ;
169
167
}
170
168
171
- ZEND_ATTRIBUTE_NONNULL static zend_result uriparser_read_host (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
169
+ ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_host_read (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
172
170
{
173
- const UriUriA * uriparser_uri = uriparser_read_uri (internal_uri -> uri , read_mode );
171
+ const UriUriA * uriparser_uri = get_uri_for_reading (internal_uri -> uri , read_mode );
174
172
ZEND_ASSERT (uriparser_uri != NULL );
175
173
176
174
if (uriparser_uri -> hostText .first != NULL && uriparser_uri -> hostText .afterLast != NULL ) {
@@ -204,9 +202,9 @@ ZEND_ATTRIBUTE_NONNULL static size_t str_to_int(const char *str, size_t len)
204
202
return result ;
205
203
}
206
204
207
- ZEND_ATTRIBUTE_NONNULL static zend_result uriparser_read_port (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
205
+ ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_port_read (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
208
206
{
209
- const UriUriA * uriparser_uri = uriparser_read_uri (internal_uri -> uri , read_mode );
207
+ const UriUriA * uriparser_uri = get_uri_for_reading (internal_uri -> uri , read_mode );
210
208
ZEND_ASSERT (uriparser_uri != NULL );
211
209
212
210
if (uriparser_uri -> portText .first != NULL && uriparser_uri -> portText .afterLast != NULL ) {
@@ -218,9 +216,9 @@ ZEND_ATTRIBUTE_NONNULL static zend_result uriparser_read_port(const uri_internal
218
216
return SUCCESS ;
219
217
}
220
218
221
- ZEND_ATTRIBUTE_NONNULL static zend_result uriparser_read_path (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
219
+ ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_path_read (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
222
220
{
223
- const UriUriA * uriparser_uri = uriparser_read_uri (internal_uri -> uri , read_mode );
221
+ const UriUriA * uriparser_uri = get_uri_for_reading (internal_uri -> uri , read_mode );
224
222
ZEND_ASSERT (uriparser_uri != NULL );
225
223
226
224
if (uriparser_uri -> pathHead != NULL ) {
@@ -247,9 +245,9 @@ ZEND_ATTRIBUTE_NONNULL static zend_result uriparser_read_path(const uri_internal
247
245
return SUCCESS ;
248
246
}
249
247
250
- ZEND_ATTRIBUTE_NONNULL static zend_result uriparser_read_query (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
248
+ ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_query_read (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
251
249
{
252
- const UriUriA * uriparser_uri = uriparser_read_uri (internal_uri -> uri , read_mode );
250
+ const UriUriA * uriparser_uri = get_uri_for_reading (internal_uri -> uri , read_mode );
253
251
ZEND_ASSERT (uriparser_uri != NULL );
254
252
255
253
if (uriparser_uri -> query .first != NULL && uriparser_uri -> query .afterLast != NULL ) {
@@ -261,9 +259,9 @@ ZEND_ATTRIBUTE_NONNULL static zend_result uriparser_read_query(const uri_interna
261
259
return SUCCESS ;
262
260
}
263
261
264
- ZEND_ATTRIBUTE_NONNULL static zend_result uriparser_read_fragment (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
262
+ ZEND_ATTRIBUTE_NONNULL static zend_result php_uri_parser_rfc3986_fragment_read (const uri_internal_t * internal_uri , uri_component_read_mode_t read_mode , zval * retval )
265
263
{
266
- const UriUriA * uriparser_uri = uriparser_read_uri (internal_uri -> uri , read_mode );
264
+ const UriUriA * uriparser_uri = get_uri_for_reading (internal_uri -> uri , read_mode );
267
265
ZEND_ASSERT (uriparser_uri != NULL );
268
266
269
267
if (uriparser_uri -> fragment .first != NULL && uriparser_uri -> fragment .afterLast != NULL ) {
@@ -275,15 +273,15 @@ ZEND_ATTRIBUTE_NONNULL static zend_result uriparser_read_fragment(const uri_inte
275
273
return SUCCESS ;
276
274
}
277
275
278
- static uriparser_uris_t * uriparser_create_uris (void )
276
+ static php_uri_parser_rfc3986_uris * uriparser_create_uris (void )
279
277
{
280
- uriparser_uris_t * uriparser_uris = ecalloc (1 , sizeof (* uriparser_uris ));
278
+ php_uri_parser_rfc3986_uris * uriparser_uris = ecalloc (1 , sizeof (* uriparser_uris ));
281
279
uriparser_uris -> normalized_uri_initialized = false;
282
280
283
281
return uriparser_uris ;
284
282
}
285
283
286
- uriparser_uris_t * uriparser_parse_uri_ex (const char * uri_str , size_t uri_str_len , const uriparser_uris_t * uriparser_base_urls , bool silent )
284
+ php_uri_parser_rfc3986_uris * php_uri_parser_rfc3986_parse_ex (const char * uri_str , size_t uri_str_len , const php_uri_parser_rfc3986_uris * uriparser_base_urls , bool silent )
287
285
{
288
286
UriUriA uri = {0 };
289
287
@@ -326,7 +324,7 @@ uriparser_uris_t *uriparser_parse_uri_ex(const char *uri_str, size_t uri_str_len
326
324
/* Make the resulting URI independent of the 'uri_str'. */
327
325
uriMakeOwnerMmA (& uri , mm );
328
326
329
- uriparser_uris_t * uriparser_uris = uriparser_create_uris ();
327
+ php_uri_parser_rfc3986_uris * uriparser_uris = uriparser_create_uris ();
330
328
uriparser_uris -> uri = uri ;
331
329
332
330
return uriparser_uris ;
@@ -338,31 +336,31 @@ uriparser_uris_t *uriparser_parse_uri_ex(const char *uri_str, size_t uri_str_len
338
336
return NULL ;
339
337
}
340
338
341
- void * uriparser_parse_uri (const char * uri_str , size_t uri_str_len , const void * base_url , zval * errors , bool silent )
339
+ void * php_uri_parser_rfc3986_parse (const char * uri_str , size_t uri_str_len , const void * base_url , zval * errors , bool silent )
342
340
{
343
- return uriparser_parse_uri_ex (uri_str , uri_str_len , base_url , silent );
341
+ return php_uri_parser_rfc3986_parse_ex (uri_str , uri_str_len , base_url , silent );
344
342
}
345
343
346
344
/* When calling a wither successfully, the normalized URI is surely invalidated, therefore
347
345
* it doesn't make sense to copy it. In case of failure, an exception is thrown, and the URI object
348
346
* is discarded altogether. */
349
- ZEND_ATTRIBUTE_NONNULL static void * uriparser_clone_uri (void * uri )
347
+ ZEND_ATTRIBUTE_NONNULL static void * php_uri_parser_rfc3986_clone (void * uri )
350
348
{
351
- const uriparser_uris_t * uriparser_uris = uri ;
349
+ const php_uri_parser_rfc3986_uris * uriparser_uris = uri ;
352
350
353
- uriparser_uris_t * new_uriparser_uris = uriparser_create_uris ();
354
- uriparser_copy_uri (& new_uriparser_uris -> uri , & uriparser_uris -> uri );
351
+ php_uri_parser_rfc3986_uris * new_uriparser_uris = uriparser_create_uris ();
352
+ copy_uri (& new_uriparser_uris -> uri , & uriparser_uris -> uri );
355
353
if (uriparser_uris -> normalized_uri_initialized ) {
356
- uriparser_copy_uri (& new_uriparser_uris -> normalized_uri , & uriparser_uris -> normalized_uri );
354
+ copy_uri (& new_uriparser_uris -> normalized_uri , & uriparser_uris -> normalized_uri );
357
355
new_uriparser_uris -> normalized_uri_initialized = true;
358
356
}
359
357
360
358
return new_uriparser_uris ;
361
359
}
362
360
363
- ZEND_ATTRIBUTE_NONNULL static zend_string * uriparser_uri_to_string (void * uri , uri_recomposition_mode_t recomposition_mode , bool exclude_fragment )
361
+ ZEND_ATTRIBUTE_NONNULL static zend_string * php_uri_parser_rfc3986_to_string (void * uri , uri_recomposition_mode_t recomposition_mode , bool exclude_fragment )
364
362
{
365
- uriparser_uris_t * uriparser_uris = uri ;
363
+ php_uri_parser_rfc3986_uris * uriparser_uris = uri ;
366
364
const UriUriA * uriparser_uri ;
367
365
368
366
if (recomposition_mode == URI_RECOMPOSITION_RAW_ASCII || recomposition_mode == URI_RECOMPOSITION_RAW_UNICODE ) {
@@ -391,30 +389,30 @@ ZEND_ATTRIBUTE_NONNULL static zend_string *uriparser_uri_to_string(void *uri, ur
391
389
return uri_string ;
392
390
}
393
391
394
- ZEND_ATTRIBUTE_NONNULL static void uriparser_free_uri (void * uri )
392
+ ZEND_ATTRIBUTE_NONNULL static void php_uri_parser_rfc3986_free (void * uri )
395
393
{
396
- uriparser_uris_t * uriparser_uris = uri ;
394
+ php_uri_parser_rfc3986_uris * uriparser_uris = uri ;
397
395
398
396
uriFreeUriMembersMmA (& uriparser_uris -> uri , mm );
399
397
uriFreeUriMembersMmA (& uriparser_uris -> normalized_uri , mm );
400
398
401
399
efree (uriparser_uris );
402
400
}
403
401
404
- const uri_parser_t uriparser_uri_parser = {
405
- .name = URI_PARSER_RFC3986 ,
406
- .parse_uri = uriparser_parse_uri ,
407
- .clone_uri = uriparser_clone_uri ,
408
- .uri_to_string = uriparser_uri_to_string ,
409
- .free_uri = uriparser_free_uri ,
402
+ const uri_parser_t php_uri_parser_rfc3986 = {
403
+ .name = PHP_URI_PARSER_RFC3986 ,
404
+ .parse_uri = php_uri_parser_rfc3986_parse ,
405
+ .clone_uri = php_uri_parser_rfc3986_clone ,
406
+ .uri_to_string = php_uri_parser_rfc3986_to_string ,
407
+ .free_uri = php_uri_parser_rfc3986_free ,
410
408
{
411
- .scheme = {.read_func = uriparser_read_scheme , .write_func = NULL },
412
- .username = {.read_func = uriparser_read_username , .write_func = NULL },
413
- .password = {.read_func = uriparser_read_password , .write_func = NULL },
414
- .host = {.read_func = uriparser_read_host , .write_func = NULL },
415
- .port = {.read_func = uriparser_read_port , .write_func = NULL },
416
- .path = {.read_func = uriparser_read_path , .write_func = NULL },
417
- .query = {.read_func = uriparser_read_query , .write_func = NULL },
418
- .fragment = {.read_func = uriparser_read_fragment , .write_func = NULL },
409
+ .scheme = {.read_func = php_uri_parser_rfc3986_scheme_read , .write_func = NULL },
410
+ .username = {.read_func = php_uri_parser_rfc3986_username_read , .write_func = NULL },
411
+ .password = {.read_func = php_uri_parser_rfc3986_password_read , .write_func = NULL },
412
+ .host = {.read_func = php_uri_parser_rfc3986_host_read , .write_func = NULL },
413
+ .port = {.read_func = php_uri_parser_rfc3986_port_read , .write_func = NULL },
414
+ .path = {.read_func = php_uri_parser_rfc3986_path_read , .write_func = NULL },
415
+ .query = {.read_func = php_uri_parser_rfc3986_query_read , .write_func = NULL },
416
+ .fragment = {.read_func = php_uri_parser_rfc3986_fragment_read , .write_func = NULL },
419
417
}
420
418
};
0 commit comments