X-Git-Url: https://git.street.me.uk/andy/viking.git/blobdiff_plain/825413bac81e7234ed27a8ff3343a8295cc393e2..75b3f44f34a12eda008b1ee1a07240dde74813a9:/src/download.h diff --git a/src/download.h b/src/download.h index e0cb7996..591c8919 100644 --- a/src/download.h +++ b/src/download.h @@ -2,6 +2,7 @@ * viking -- GPS Data and Topo Analyzer, Explorer, and Manager * * Copyright (C) 2003-2005, Evan Battaglia + * Copyright (C) 2007, Guilhem Bonnefille * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -34,10 +35,13 @@ typedef struct { /** * Check if the server has a more recent file than the one we have before downloading it * This uses http header If-Modified-Since - * Nevertheless, the current file cache must be older than the specified - * value. */ - time_t check_file_server_time; + gboolean check_file_server_time; + + /** + * Set if the server handle ETag + */ + gboolean use_etag; /** * The REFERER string to use. @@ -56,13 +60,29 @@ typedef struct { */ VikFileContentCheckerFunc check_file; -} DownloadOptions; +} DownloadMapOptions; + +typedef struct { + /** + * Time sent to server on header If-Modified-Since + */ + time_t time_condition; + /** + * Etag sent by server on previous download + */ + char *etag; + /** + * Etag sent by server on this download + */ + char *new_etag; + +} DownloadFileOptions; void a_download_init(void); /* TODO: convert to Glib */ -int a_http_download_get_url ( const char *hostname, const char *uri, const char *fn, DownloadOptions *opt, void *handle ); -int a_ftp_download_get_url ( const char *hostname, const char *uri, const char *fn, DownloadOptions *opt, void *handle ); +int a_http_download_get_url ( const char *hostname, const char *uri, const char *fn, DownloadMapOptions *opt, void *handle ); +int a_ftp_download_get_url ( const char *hostname, const char *uri, const char *fn, DownloadMapOptions *opt, void *handle ); void *a_download_handle_init (); void a_download_handle_cleanup ( void *handle );