2 * Copyright (c) 2000, Red Hat, Inc.
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * A copy of the GNU General Public License can be found at
12 * Written by DJ Delorie <dj@cygnus.com>
16 /* The purpose of this file is to download all the files we need to
17 do the installation. */
20 #include <sys/types.h>
35 #define pi (package[i].info[package[i].trust])
38 download_one (char *name, int expected_size)
43 if (stat (local, &s) >= 0)
44 if (s.st_size == expected_size)
49 if (get_url_to_file (concat (MIRROR_SITE, "/", name, 0),
50 concat (local, ".tmp", 0),
53 note (IDS_DOWNLOAD_FAILED, name);
58 stat (concat (local, ".tmp", 0), &s);
59 if (s.st_size == expected_size)
61 log (0, "Downloaded %s", local);
62 rename (concat (local, ".tmp", 0), local);
66 log (0, "Download %s wrong size (%d actual vs %d expected)",
67 local, s.st_size, expected_size);
68 note (IDS_DOWNLOAD_SHORT, local, s.st_size, expected_size);
77 do_download (HINSTANCE h)
82 for (i=0; i<npackages; i++)
83 if (package[i].action == ACTION_NEW || package[i].action == ACTION_UPGRADE)
85 int e = download_one (pi.install, pi.install_size);
86 if (package[i].srcaction == SRCACTION_YES && pi.source)
87 e += download_one (pi.source, pi.source_size);
90 package[i].action = ACTION_ERROR;
93 dismiss_url_status_dialog ();
97 if (yesno (IDS_DOWNLOAD_INCOMPLETE) == IDYES)
99 next_dialog = IDD_SITE;
104 if (source == IDC_SOURCE_DOWNLOAD)
107 exit_msg = IDS_DOWNLOAD_INCOMPLETE;
109 exit_msg = IDS_DOWNLOAD_COMPLETE;
113 next_dialog = IDD_S_INSTALL;