summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2010-08-24 00:42:22 +0200
committerDan McGee <dan@archlinux.org>2010-08-24 00:42:22 +0200
commitce3f4e7800f215e8a2b6e22bbd5f5ec9e0de90c2 (patch)
treef2fa40f36f97e1f55ab2ceb84e258de5bb47b4b2
parent815557118318779f784e82a39497f46dde32845d (diff)
downloadpacman-ce3f4e7800f215e8a2b6e22bbd5f5ec9e0de90c2.tar.gz
pacman-ce3f4e7800f215e8a2b6e22bbd5f5ec9e0de90c2.tar.xz
Enable libfetch connection caching
This will allow downloads to reuse connections if possible, which could make big differences on perceived FTP speed as the connection won't have to be reestablished each time. For the most part, HTTP requests wouldn't be using keep alive anyway so this won't have an effect there. I'm not enthused about having to do this with the library initialization, but there isn't a much better place due to the fact that the loop over databases occurs on the frontend and not the backend. Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r--lib/libalpm/alpm.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/libalpm/alpm.c b/lib/libalpm/alpm.c
index 51b9e25b..7bcfc8f1 100644
--- a/lib/libalpm/alpm.c
+++ b/lib/libalpm/alpm.c
@@ -23,6 +23,11 @@
#include "config.h"
+/* connection caching setup */
+#if defined(INTERNAL_DOWNLOAD)
+#include <fetch.h>
+#endif
+
/* libalpm */
#include "alpm.h"
#include "alpm_list.h"
@@ -54,6 +59,10 @@ int SYMEXPORT alpm_initialize(void)
bindtextdomain("libalpm", LOCALEDIR);
#endif
+#ifdef INTERNAL_DOWNLOAD
+ fetchConnectionCacheInit(5, 1);
+#endif
+
return(0);
}
@@ -73,6 +82,10 @@ int SYMEXPORT alpm_release(void)
_alpm_handle_free(handle);
handle = NULL;
+#ifdef INTERNAL_DOWNLOAD
+ fetchConnectionCacheClose();
+#endif
+
return(0);
}