Description of problem: Anaconda should be keep and reuse FTP connection and doesn't connect always again for each package to ftp server. The same problem is with HTTP where is possible use keep-alive header and reuse one connection for more packages loading. For details see urlinstall.py in anaconda sources. It's important, because make new connection is pretty slow and if server is paraniod (does some checks - DNS, auth, ...) the FC instalation can takes 3 hours. I think the current urllib2 usage is too primitive. For HTTP keeps-alive implementation with urllib2 see in the yum's sources file urlgrabber/keepalive.py. For FTP you can use directly ftplib python module instead urllib2. Expected results: Don't spend all day with FC installation by FTP/HTTP although between your computer and server is 2GB network...
The plan is to move to using urlgrabber eventually. There's unfortunately not a good "quick fix" that doesn't involve fairly invasive changes.
Ok. Is urlgrabber usable for good work (=reure connections) with FTP? I think it solve HTTP usage only. But I'm unsure :-)
urlgrabber appears to only have support for HTTP connection reuse. The good news is that moving to urlgrabber not only gets us HTTP keepalive support fairly easily, but if someone adds FTP connection reuse, we can make use of that. Will look into it / talk to upstream.
We do HTTP now. Not going to explicitly add FTP keepalive -- file an RFE against urlgrabber (preferably upstream) if you feel the support is that important.