chewurl.c
1.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <url.h>
#include <url_pop.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int
main ()
{
int status, i;
long port;
url_t u;
char buffer[1024];
char str[1024];
struct url_type *utype;
size_t len = sizeof (buffer);
url_list_mtype (&utype, &status);
for (i = 0; i < status; i++)
{
puts (utype[i].scheme);
puts (utype[i].description);
}
free (utype);
while (fgets(str, sizeof (str), stdin) != NULL)
{
str[strlen(str) - 1] = '\0'; /* chop newline */
status = url_init (&u, str);
if (status != 0) {
printf("%s --> FAILED\n", str);
continue;
}
printf("%s --> SUCCESS\n", str);
url_get_scheme (u, buffer, len, NULL);
printf("\tscheme <%s>\n", buffer);
url_get_user (u, buffer, len, NULL);
printf("\tuser <%s>\n", buffer);
url_get_passwd (u, buffer, len, NULL);
printf("\tpasswd <%s>\n", buffer);
//url_pop_get_auth (u, buffer, len, NULL);
//printf("\tauth <%s>\n", buffer);
url_get_host (u, buffer, len, NULL);
printf("\thost <%s>\n", buffer);
url_get_port (u, &port);
printf("\tport %ld\n", port);
url_get_path (u, buffer, len, NULL);
printf("\tpath <%s>\n", buffer);
url_get_query (u, buffer, len, NULL);
printf("\tquery <%s>\n", buffer);
url_destroy (&u);
}
return 0;
}