This is the mail archive of the
cygwin-apps
mailing list for the Cygwin project.
Re: [Patch] Setup: Warn about dropped mirrors.
- From: Christopher Faylor <cgf-no-personal-reply-please at cygwin dot com>
- To: cygwin-apps at cygwin dot com
- Date: Fri, 10 Mar 2006 12:20:09 -0500
- Subject: Re: [Patch] Setup: Warn about dropped mirrors.
- References: <43504A0C.BC4E87BA@dessent.net> <43504C5A.9BEACB9C@dessent.net> <Pine.GSO.4.63.0510161728350.1211@slinky.cs.nyu.edu> <n2m-g.dj1bor.3vv8pml.1@buzzy-box.bavag> <Pine.GSO.4.63.0510180131020.21802@slinky.cs.nyu.edu> <n2m-g.dj3tkk.3vv96rh.1@buzzy-box.bavag> <Pine.GSO.4.63.0510191712430.409@slinky.cs.nyu.edu> <n2m-g.dkbctp.3vv3gvj.1@buzzy-box.bavag> <n2m-g.dlgdit.3vsvtmt.1@buzzy-box.bavag> <n2m-g.dugeel.3tags6n.1@buzzy-box.bavag>
- Reply-to: cygwin-apps at cygwin dot com
On Mon, Mar 06, 2006 at 05:00:45AM +0100, Bas van Gompel wrote:
>Op Wed, 16 Nov 2005 23:29:50 +0100 (MET) schreef Bas van Gompel
>in <n2m-g.dlgdit.3vsvtmt.1<at>buzzy-box.bavag>:
>[Warn about dropped mirrors]
>
>One more iteration. This is what I've been testing/using for months
>now. Before I start changing/optimizing this, I'd like to get it in.
>
>[Oh and a big PING on those other setup-patches from me (and Igor[*]).]
>
>Now using std::string, not String. Also, break write_cache_list out
>of save_cache_file.
>
>
>Improved ChangeLog-entry: (please fix the <at>.)
>
>2006-03-06 Bas van Gompel <patch-cygsup.buzz<at>bavag.tmfweb.nl>
>
> * res.rc (IDD_DROPPED): New dialog.
> * resource.h (IDD_DROPPED): New dialog-id.
> (IDC_DROP_MIRRORS, IDC_DROP_NOWARN): New control-ids.
> * site.cc: Add enum for response on dropped mirrors.
> (cache_is_usable, cache_needs_writing): New bools.
> (cache_warn_urls): New string.
> (cached_site-list, dropped_site_list): New SiteLists.
> (site_list_type::init, site_list_type::site_list_type):
> Change to four parameter form.
> (site_list_type::site_list_type, site_list_type::operator=) Copy
> servername, area and location.
> (load_site_list): New function, broken out of get_site_list.
> Support four-parameter site_list_type.
> (get_site_list): Break out load_site_list. Move reading cache
> earlier. Don't write new cache. Set flags to record cache state.
> Load both all_site_list and cached_site_list.
> (SiteSetting::registerSavedSite): Use four-parameter site_list_type.
> (drop_proc, check_dropped_mirrors, write_cache_list,
> save_cache_file): New functions.
> (SitePage::OnNext): Check for dropped mirrors and save cache as
> appropriate.
> (SitePage::OnMessageCmd): Use four-parameter site_list_type.
> * site.h (site_list_type::init, site_list_type::site_list_type):
> Change to four parameter form.
> (site_list_type): Add servername, area and location members.
I've checked this in but I noticed some odd behavior with it at one
point. It got a SEGV:
warning: LOG: 1 Cached mirror list unavailable
warning: LOG: 1 get_url_to_membuf http://cygwin.com/mirrors.lst
warning: LOG: 1 getUrlToStream http://cygwin.com/mirrors.lst
Program received signal SIGSEGV, Segmentation fault.
[Switching to thread 3500.0x158]
0x77c470d0 in msvcrt!memcpy ()
(gdb) bt
#0 0x77c470d0 in msvcrt!memcpy ()
#1 0x0045683a in new_cstr_char_array (s=@0x1f8fb7c) at /cygnus/src/cygwin-apps/setup/String++.cc:294
#2 0x0045293c in do_download_site_info_thread (p=0x4dbd40) at /cygnus/src/cygwin-apps/setup/site.cc:330
#3 0x7c80b50b in KERNEL32!GetModuleFileNameA ()
#4 0x004dbd40 in std::__ioinit ()
#5 0x00000401 in ?? ()
#6 0x00000002 in ?? ()
#7 0x004dbd40 in std::__ioinit ()
#8 0x7ffdc000 in ?? ()
#9 0x86fbe600 in ?? ()
#10 0x01f8ffc0 in ?? ()
#11 0x86eb9578 in ?? ()
#12 0xffffffff in ?? ()
#13 0x7c8399f3 in KERNEL32!FindAtomW ()
#14 0x7c80b518 in KERNEL32!GetModuleFileNameA ()
#15 0x00000000 in ?? ()
(gdb) f 2
#2 0x0045293c in do_download_site_info_thread (p=0x4dbd40) at /cygnus/src/cygwin-apps/setup/site.cc:330
330 theCachedString = new_cstr_char_array (cached_mirrors);
This happened a couple of times and then I could no longer duplicate it.
Can anyone else?
Thanks for the patch.
cgf