/* * Make a URL */ struct url * fetchMakeURL(const char *scheme, const char *host, int port, const char *doc, const char *user, const char *pwd) { struct url *u; if (!scheme || (!host && !doc)) { url_seterr(URL_MALFORMED); return (NULL); } if (port < 0 || port > 65535) { url_seterr(URL_BAD_PORT); return (NULL); } /* allocate struct url */ if ((u = calloc(1, sizeof(*u))) == NULL) { fetch_syserr(); return (NULL); } if ((u->doc = strdup(doc ? doc : "/")) == NULL) { fetch_syserr(); free(u); return (NULL); } #define seturl(x) snprintf(u->x, sizeof(u->x), "%s", x) seturl(scheme); seturl(host); seturl(user); seturl(pwd); #undef seturl u->port = port; return (u); }
int docmd(CURL *h, char **av) { int rc = 0; if (av[0] != NULL) { if (strcmp(av[0], "help") == 0) help(); else if (strcmp(av[0], "quit") == 0) rc = 1; else if (strcmp(av[0], "auth") == 0) auth(h, av + 1); else if (strcmp(av[0], "seturl") == 0) seturl(h, av + 1); else if (strcmp(av[0], "get") == 0) get(h, av + 1); else if (strcmp(av[0], "post") == 0) post(h, av + 1); else printf("type \"help\" for a list of commands\n"); } return rc; }