#include #include #include "prozilla.h" uerr_t parse_archie_json_mirror_list(ftps_request_t *request, char *data); uerr_t parse_mamont_html_mirror_list(ftps_request_t *request, char *data); static void init_request(ftps_request_t *request, urlinfo *requested_url) { memset(request, 0, sizeof(*request)); memset(requested_url, 0, sizeof(*requested_url)); requested_url->proto = URLHTTP; request->requested_url = requested_url; } int main(void) { ftps_request_t request; urlinfo requested_url; char archie_json[] = "{\"hits\":2,\"results\":[" "{\"URL\":\"ftp://ftp.example.org/pub/file.zip\"}," "{\"URL\":\"ftps://secure.example.org/releases/file.zip\"}]}"; char mamont_html[] = "file.zip"; init_request(&request, &requested_url); assert(parse_archie_json_mirror_list(&request, archie_json) == MIRINFOK); assert(request.num_mirrors == 2); assert(strcmp(request.mirrors[0].server_name, "ftp.example.org") == 0); assert(strcmp(request.mirrors[1].server_name, "secure.example.org") == 0); init_request(&request, &requested_url); assert(parse_mamont_html_mirror_list(&request, mamont_html) == MIRINFOK); assert(request.num_mirrors == 1); assert(strcmp(request.mirrors[0].server_name, "mirror.example.net") == 0); assert(strcmp(request.mirrors[0].file_name, "file.zip") == 0); return 0; }