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 ([EMAIL PROTECTED]) 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
