GRU - Generic Reusable Utilities
Loading...
Searching...
No Matches
network/gru_uri_test.c

URI parsing/formatting example.

URI parsing/formatting example

// amqp://localhost:61613/queue amq localhost 61613 /queue
int main(int argc, char **argv) {
gru_uri_t uri = {0};
if (argc < 3) {
fprintf(stderr, "Missing arguments\n");
return EXIT_FAILURE;
}
uri = gru_uri_parse(argv[1], &status);
if (gru_status_error(&status)) {
fprintf(stderr, "%s", status.message);
goto err_exit;
}
if (strcmp(uri.scheme, argv[2]) != 0) {
fprintf(stderr,
"Expected scheme '%s' does not match returned one '%s'\n",
argv[2],
uri.scheme);
goto err_exit;
}
if (strcmp(uri.host, argv[3]) != 0) {
fprintf(
stderr, "Expected host '%s' does not match returned one '%s'\n", argv[3], uri.host);
goto err_exit;
}
if (uri.port != atoi(argv[4])) {
fprintf(
stderr, "Expected port '%s' does not match returned one '%d'\n", argv[2], uri.port);
goto err_exit;
}
if (strcmp(uri.path, argv[5]) != 0) {
fprintf(
stderr, "Expected path '%s' does not match returned one '%s'\n", argv[5], uri.path);
goto err_exit;
}
return EXIT_SUCCESS;
err_exit:
return EXIT_FAILURE;
}
int main(int argc, char **argv)
Definition: gru_list_test.c:198
gru_export gru_status_t gru_status_new()
Copyright 2016 Otavio Rodolfo Piske.
Definition: gru_status.c:18
bool gru_status_error(const gru_status_t *status)
Checks for error status.
Definition: gru_status.c:83
gru_uri_t gru_uri_parse(const char *url, gru_status_t *status)
Definition: gru_uri.c:131
void gru_uri_cleanup(gru_uri_t *uri)
Cleans up a URI object.
Definition: gru_uri.c:380
Status type.
Definition: gru_status.h:47
char * message
Definition: gru_status.h:48
Definition: gru_uri.h:60
char * host
Definition: gru_uri.h:62
uint16_t port
Definition: gru_uri.h:64
char * path
Definition: gru_uri.h:63
char * scheme
Definition: gru_uri.h:61