/* Declarations for retr.c.
- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+ Copyright (C) 1996-2005 Free Software Foundation, Inc.
This file is part of GNU Wget.
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
-along with Wget; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+along with Wget; if not, write to the Free Software Foundation, Inc.,
+51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+In addition, as a special exception, the Free Software Foundation
+gives permission to link the code of its release of Wget with the
+OpenSSL project's "OpenSSL" library (or with modified versions of it
+that use the same license as the "OpenSSL" library), and distribute
+the linked executables. You must obey the GNU General Public License
+in all respects for all of the code used other than "OpenSSL". If you
+modify this file, you may extend this exception to your version of the
+file, but you are not obligated to do so. If you do not wish to do
+so, delete this exception statement from your version. */
#ifndef RETR_H
#define RETR_H
-#include "rbuf.h"
+/* These global vars should be made static to retr.c and exported via
+ functions! */
+extern SUM_SIZE_INT total_downloaded_bytes;
+extern double total_download_time;
+extern FILE *output_stream;
+extern bool output_stream_regular;
-int get_contents PARAMS ((int, FILE *, long *, long, long, struct rbuf *,
- int, long *));
+/* Flags for fd_read_body. */
+enum {
+ rb_read_exactly = 1,
+ rb_skip_startpos = 2
+};
-uerr_t retrieve_url PARAMS ((const char *, char **, char **,
- const char *, int *));
-uerr_t retrieve_from_file PARAMS ((const char *, int, int *));
+int fd_read_body (int, FILE *, wgint, wgint, wgint *, wgint *, double *, int);
-char *retr_rate PARAMS ((long, long, int));
-double calc_rate PARAMS ((long, long, int *));
-void printwhat PARAMS ((int, int));
+typedef const char *(*hunk_terminator_t) (const char *, const char *, int);
-void downloaded_increase PARAMS ((unsigned long));
-int downloaded_exceeds_quota PARAMS ((void));
+char *fd_read_hunk (int, hunk_terminator_t, long, long);
+char *fd_read_line (int);
-void sleep_between_retrievals PARAMS ((int));
+uerr_t retrieve_url (const char *, char **, char **, const char *, int *);
+uerr_t retrieve_from_file (const char *, bool, int *);
-/* Because there's no http.h. */
+const char *retr_rate (wgint, double);
+double calc_rate (wgint, double, int *);
+void printwhat (int, int);
-struct url;
-
-uerr_t http_loop PARAMS ((struct url *, char **, char **, const char *,
- int *, struct url *));
+void sleep_between_retrievals (int);
+void rotate_backups (const char *);
#endif /* RETR_H */