uri.h
00001
00002
00003
00004
00005 #ifndef _U_URI_H_
00006 #define _U_URI_H_
00007
00008 #include <u/libu_conf.h>
00009
00010 #ifdef __cplusplus
00011 extern "C" {
00012 #endif
00013
00014 struct u_uri_s;
00015
00023 #define U_URI_STRMAX 4096
00024
00027 typedef enum
00028 {
00029 U_URI_OPT_NONE = 0x00,
00032 U_URI_OPT_DONT_PARSE_USERINFO = 0x01,
00034 } u_uri_opts_t;
00035
00037 typedef enum
00038 {
00039 U_URI_FLAGS_NONE = 0x00,
00042 U_URI_FLAGS_HOST_IS_IPADDRESS = 0x01,
00046 U_URI_FLAGS_HOST_IS_IPLITERAL = 0x02,
00050 } u_uri_flags_t;
00051
00053 typedef struct u_uri_s u_uri_t;
00054
00055
00056 int u_uri_new (u_uri_opts_t opts, u_uri_t **pu);
00057 void u_uri_free (u_uri_t *u);
00058
00059
00060 int u_uri_crumble (const char *s, u_uri_opts_t opts, u_uri_t **pu);
00061 int u_uri_knead (u_uri_t *u, char s[U_URI_STRMAX]);
00062
00063
00064 void u_uri_print (u_uri_t *u, int extended);
00065
00066
00067
00069 const char *u_uri_get_scheme (u_uri_t *uri);
00070
00072 int u_uri_set_scheme (u_uri_t *uri, const char *val);
00073
00075 const char *u_uri_get_userinfo (u_uri_t *uri);
00076
00078 int u_uri_set_userinfo (u_uri_t *uri, const char *val);
00079
00081 const char *u_uri_get_user (u_uri_t *uri);
00082
00084 int u_uri_set_user (u_uri_t *uri, const char *val);
00085
00087 const char *u_uri_get_pwd (u_uri_t *uri);
00088
00090 int u_uri_set_pwd (u_uri_t *uri, const char *val);
00091
00093 const char *u_uri_get_host (u_uri_t *uri);
00094
00096 int u_uri_set_host (u_uri_t *uri, const char *val);
00097
00099 const char *u_uri_get_port (u_uri_t *uri);
00100
00102 u_uri_flags_t u_uri_get_flags (u_uri_t *uri);
00103
00105 int u_uri_set_port (u_uri_t *uri, const char *val);
00106
00108 const char *u_uri_get_authority (u_uri_t *uri);
00109
00111 int u_uri_set_authority (u_uri_t *uri, const char *val);
00112
00114 const char *u_uri_get_path (u_uri_t *uri);
00115
00117 int u_uri_set_path (u_uri_t *uri, const char *val);
00118
00120 const char *u_uri_get_query (u_uri_t *uri);
00121
00123 int u_uri_set_query (u_uri_t *uri, const char *val);
00124
00126 const char *u_uri_get_fragment (u_uri_t *uri);
00127
00129 int u_uri_set_fragment (u_uri_t *uri, const char *val);
00130
00135 #ifdef __cplusplus
00136 }
00137 #endif
00138
00139 #endif