2020#include "Zend/zend_smart_str.h"
2121#include "Zend/zend_exceptions.h"
2222
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 )
2624{
2725 return emalloc (size );
2826}
2927
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 )
3129{
3230 return ecalloc (nmemb , size );
3331}
3432
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 )
3634{
3735 return erealloc (ptr , size );
3836}
3937
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 )
4139{
4240 return safe_erealloc (ptr , nmemb , size , 0 );
4341}
4442
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 )
4644{
4745 efree (ptr );
4846}
4947
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 ,
5654 .userData = NULL ,
5755};
5856
5957/* The library expects a pointer to a non-const UriMemoryManager, but does
6058 * not actually modify it (and neither does our implementation). Use a
6159 * 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 ;
6361
6462static inline size_t get_text_range_length (const UriTextRangeA * range )
6563{
6664 return range -> afterLast - range -> first ;
6765}
6866
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 )
7068{
7169 int result = uriCopyUriMmA (new_uriparser_uri , uriparser_uri , mm );
7270 ZEND_ASSERT (result == URI_SUCCESS );
7371}
7472
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 ) {
7674 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 );
7876 int result = uriNormalizeSyntaxExMmA (& uriparser_uris -> normalized_uri , (unsigned int )-1 , mm );
7977 ZEND_ASSERT (result == URI_SUCCESS );
8078 uriparser_uris -> normalized_uri_initialized = true;
@@ -83,7 +81,7 @@ ZEND_ATTRIBUTE_NONNULL static UriUriA *get_normalized_uri(uriparser_uris_t *urip
8381 return & uriparser_uris -> normalized_uri ;
8482}
8583
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 )
8785{
8886 switch (read_mode ) {
8987 case URI_COMPONENT_READ_RAW :
@@ -96,9 +94,9 @@ ZEND_ATTRIBUTE_NONNULL static UriUriA *uriparser_read_uri(uriparser_uris_t *urip
9694 }
9795}
9896
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 )
10098{
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 );
102100 ZEND_ASSERT (uriparser_uri != NULL );
103101
104102 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
111109 return SUCCESS ;
112110}
113111
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 )
115113{
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 );
117115 ZEND_ASSERT (uriparser_uri != NULL );
118116
119117 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
125123 return SUCCESS ;
126124}
127125
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 )
129127{
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 );
131129 ZEND_ASSERT (uriparser_uri != NULL );
132130
133131 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
148146 return SUCCESS ;
149147}
150148
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 )
152150{
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 );
154152 ZEND_ASSERT (uriparser_uri != NULL );
155153
156154 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
168166 return SUCCESS ;
169167}
170168
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 )
172170{
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 );
174172 ZEND_ASSERT (uriparser_uri != NULL );
175173
176174 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)
204202 return result ;
205203}
206204
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 )
208206{
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 );
210208 ZEND_ASSERT (uriparser_uri != NULL );
211209
212210 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
218216 return SUCCESS ;
219217}
220218
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 )
222220{
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 );
224222 ZEND_ASSERT (uriparser_uri != NULL );
225223
226224 if (uriparser_uri -> pathHead != NULL ) {
@@ -247,9 +245,9 @@ ZEND_ATTRIBUTE_NONNULL static zend_result uriparser_read_path(const uri_internal
247245 return SUCCESS ;
248246}
249247
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 )
251249{
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 );
253251 ZEND_ASSERT (uriparser_uri != NULL );
254252
255253 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
261259 return SUCCESS ;
262260}
263261
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 )
265263{
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 );
267265 ZEND_ASSERT (uriparser_uri != NULL );
268266
269267 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
275273 return SUCCESS ;
276274}
277275
278- static uriparser_uris_t * uriparser_create_uris (void )
276+ static php_uri_parser_rfc3986_uris * uriparser_create_uris (void )
279277{
280- uriparser_uris_t * uriparser_uris = ecalloc (1 , sizeof (* uriparser_uris ));
278+ php_uri_parser_rfc3986_uris * uriparser_uris = ecalloc (1 , sizeof (* uriparser_uris ));
281279 uriparser_uris -> normalized_uri_initialized = false;
282280
283281 return uriparser_uris ;
284282}
285283
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 )
287285{
288286 UriUriA uri = {0 };
289287
@@ -326,7 +324,7 @@ uriparser_uris_t *uriparser_parse_uri_ex(const char *uri_str, size_t uri_str_len
326324 /* Make the resulting URI independent of the 'uri_str'. */
327325 uriMakeOwnerMmA (& uri , mm );
328326
329- uriparser_uris_t * uriparser_uris = uriparser_create_uris ();
327+ php_uri_parser_rfc3986_uris * uriparser_uris = uriparser_create_uris ();
330328 uriparser_uris -> uri = uri ;
331329
332330 return uriparser_uris ;
@@ -338,31 +336,31 @@ uriparser_uris_t *uriparser_parse_uri_ex(const char *uri_str, size_t uri_str_len
338336 return NULL ;
339337}
340338
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 )
342340{
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 );
344342}
345343
346344/* When calling a wither successfully, the normalized URI is surely invalidated, therefore
347345 * it doesn't make sense to copy it. In case of failure, an exception is thrown, and the URI object
348346 * 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 )
350348{
351- const uriparser_uris_t * uriparser_uris = uri ;
349+ const php_uri_parser_rfc3986_uris * uriparser_uris = uri ;
352350
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 );
355353 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 );
357355 new_uriparser_uris -> normalized_uri_initialized = true;
358356 }
359357
360358 return new_uriparser_uris ;
361359}
362360
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 )
364362{
365- uriparser_uris_t * uriparser_uris = uri ;
363+ php_uri_parser_rfc3986_uris * uriparser_uris = uri ;
366364 const UriUriA * uriparser_uri ;
367365
368366 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
391389 return uri_string ;
392390}
393391
394- ZEND_ATTRIBUTE_NONNULL static void uriparser_free_uri (void * uri )
392+ ZEND_ATTRIBUTE_NONNULL static void php_uri_parser_rfc3986_free (void * uri )
395393{
396- uriparser_uris_t * uriparser_uris = uri ;
394+ php_uri_parser_rfc3986_uris * uriparser_uris = uri ;
397395
398396 uriFreeUriMembersMmA (& uriparser_uris -> uri , mm );
399397 uriFreeUriMembersMmA (& uriparser_uris -> normalized_uri , mm );
400398
401399 efree (uriparser_uris );
402400}
403401
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 ,
410408 {
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 },
419417 }
420418};
0 commit comments