Add modern FTP search providers for 1.2.4

This commit is contained in:
Mario Fetka
2026-07-15 03:55:27 +02:00
parent 04bbab10df
commit daa4649536
17 changed files with 361 additions and 47 deletions
+4
View File
@@ -1,3 +1,7 @@
add_executable(url_parse_test url_parse_test.c)
target_link_libraries(url_parse_test PRIVATE prozilla)
add_test(NAME url_parse COMMAND url_parse_test)
add_executable(ftpsearch_parse_test ftpsearch_parse_test.c)
target_link_libraries(ftpsearch_parse_test PRIVATE prozilla)
add_test(NAME ftpsearch_parse COMMAND ftpsearch_parse_test)
+40
View File
@@ -0,0 +1,40 @@
#include <assert.h>
#include <string.h>
#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[] =
"<a href=\"ftp://mirror.example.net/dist/file.zip\">file.zip</a>";
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;
}