[pacman-dev] [PATCH] Enable libfetch connection caching

Dan McGee dan at archlinux.org
Mon Aug 23 18:44:22 EDT 2010


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 at archlinux.org>
---
 lib/libalpm/alpm.c |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/lib/libalpm/alpm.c b/lib/libalpm/alpm.c
index 51b9e25..7bcfc8f 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);
 }
 
-- 
1.7.2.1



More information about the pacman-dev mailing list