#if 0
gcc -pedantic -Wall -Wextra -O0 -g bz679709.c -lcurl || exit $?
./a.out 13
exit $?
#endif

#include <curl/curl.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

void isleep(unsigned delay)
{
    unsigned i;
    setbuf(stdout, NULL);
    printf("\nsleep(%d)", delay);

    for (i = 0; i < delay; ++i) {
        putchar('.');
        sleep(1);
    }

    putchar('\n');
    putchar('\n');
}

static size_t
sink(char *buffer, size_t size, size_t nitems, void *outstream)
{
    (void) buffer;
    (void) outstream;
    return size * nitems;
}

int main(int argc, char *argv[])
{
    int delay;
    CURLcode ret;
    CURL *hnd;

    if (2 != argc)
        return EXIT_FAILURE;

    delay = atoi(argv[1]);
    if (delay <= 0)
        return EXIT_FAILURE;

    curl_global_init(CURL_GLOBAL_DEFAULT);
    hnd = curl_easy_init();
    if (!hnd)
        return EXIT_FAILURE;

    curl_easy_setopt(hnd, CURLOPT_LOW_SPEED_LIMIT, 10L /* MiB */ << 20);
    curl_easy_setopt(hnd, CURLOPT_LOW_SPEED_TIME, 10L);
    curl_easy_setopt(hnd, CURLOPT_WRITEFUNCTION, sink);
    curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L);
    curl_easy_setopt(hnd, CURLOPT_URL, "http://mirror.karneval.cz\
/pub/linux/fedora/linux/releases/15/Fedora/i386/os/repodata/repomd.xml");

    if ((ret = curl_easy_perform(hnd)))
        return ret;

    isleep(delay);

    curl_easy_setopt(hnd, CURLOPT_URL, "ftp://ftp.linux.cz\
/pub/linux/fedora/linux/releases/15/Fedora/i386/os/repodata/repomd.xml");
    if ((ret = curl_easy_perform(hnd)))
        return ret;

    curl_easy_cleanup(hnd);
    curl_global_cleanup();
    return EXIT_SUCCESS;
}

