Lines Matching defs:uri
26 /* $Id: uri.c 146 2006-03-24 00:26:54Z njacobs $ */
36 #include "uri.h"
44 uri_from_string(char *string, uri_t **uri)
49 if ((string == NULL) || (uri == NULL)) {
60 if ((*uri = u = calloc(1, sizeof (*u))) == NULL)
154 *uri = NULL;
162 uri_to_string(uri_t *uri, char *buffer, size_t buflen)
166 if ((uri == NULL) || (buffer == NULL) || (buflen == 0) ||
167 (uri->scheme == NULL) ||
168 ((uri->password != NULL) && (uri->user == NULL)) ||
169 ((uri->user != NULL) && (uri->host == NULL)) ||
170 ((uri->port != NULL) && (uri->host == NULL)) ||
171 ((uri->fragment != NULL) && (uri->path == NULL)) ||
172 ((uri->query != NULL) && (uri->path == NULL))) {
176 if (uri->path == NULL || uri->path[0] == '/')
183 if (uri->scheme_part == NULL) {
186 uri->scheme,
187 (uri->user ? uri->user : ""),
188 (uri->password ? ":" : ""),
189 (uri->password ? uri->password : ""),
190 (uri->user ? "@": ""),
191 (uri->host ? uri->host : ""),
192 (uri->port ? ":" : ""),
193 (uri->port ? uri->port : ""),
195 (uri->path ? uri->path : ""),
196 (uri->fragment ? "#" : ""),
197 (uri->fragment ? uri->fragment : ""),
198 (uri->query ? "?" : ""),
199 (uri->query ? uri->query : ""));
201 (void) snprintf(buffer, buflen, "%s:%s", uri->scheme,
202 uri->scheme_part);
209 uri_free(uri_t *uri)
211 if (uri != NULL) {
212 if (uri->scheme != NULL)
213 free(uri->scheme);
214 if (uri->scheme_part != NULL)
215 free(uri->scheme_part);
216 if (uri->user != NULL)
217 free(uri->user);
218 if (uri->password != NULL)
219 free(uri->password);
220 if (uri->host != NULL)
221 free(uri->host);
222 if (uri->port != NULL)
223 free(uri->port);
224 if (uri->path != NULL)
225 free(uri->path);
226 if (uri->fragment != NULL)
227 free(uri->fragment);
228 if (uri->query != NULL)
229 free(uri->query);
231 if (uri->user_part != NULL)
232 free(uri->user_part);
233 if (uri->host_part != NULL)
234 free(uri->host_part);
235 if (uri->path_part != NULL)
236 free(uri->path_part);
237 free(uri);
243 uri_dump(FILE *fp, uri_t *uri)
245 if (uri != NULL) {
247 if (uri->scheme != NULL)
248 fprintf(fp, "scheme: %s\n", uri->scheme);
249 if (uri->scheme_part != NULL)
250 fprintf(fp, "scheme_part: %s\n", uri->scheme_part);
251 if (uri->user != NULL)
252 fprintf(fp, "user: %s\n", uri->user);
253 if (uri->password != NULL)
254 fprintf(fp, "password: %s\n", uri->password);
255 if (uri->host != NULL)
256 fprintf(fp, "host: %s\n", uri->host);
257 if (uri->port != NULL)
258 fprintf(fp, "port: %s\n", uri->port);
259 if (uri->path != NULL)
260 fprintf(fp, "path: %s\n", uri->path);
261 if (uri->fragment != NULL)
262 fprintf(fp, "fragment: %s\n", uri->fragment);
263 if (uri->query != NULL)
264 fprintf(fp, "query: %s\n", uri->query);
266 if (uri->user_part != NULL)
267 fprintf(fp, "user_part: %s\n", uri->user_part);
268 if (uri->host_part != NULL)
269 fprintf(fp, "host_part: %s\n", uri->host_part);
270 if (uri->path_part != NULL)
271 fprintf(fp, "path_part: %s\n", uri->path_part);
282 fprintf(stderr, "Usage: %s uri\n", argv[0]);