[PATCH] Turn on deflate in the client
From: Sander Striker <striker_at_apache.org>
Date: 2002-02-15 11:46:40 CET
Hi,
The problem we saw previously appeared to be on the server side.
This patch will enable subversion to handle compressed responses
Sander
---
Log:
Thanks to Kevin Pilch-Bisson for pointing to the locations that needed
patching.
* subversion/libsvn_ra_dav/fetch.c:
Add a new include: ne_compress.h.
(custom_get_request): Enable compression when NEON_ZLIB is defined.
* subversion/libsvn_ra_dav/util.c:
Add a new include: ne_compress.h.
(svn_ra_dav__parsed_request): Enable compression when NEON_ZLIB is defined.
Index: ./subversion/libsvn_ra_dav/fetch.c
===================================================================
--- ./subversion/libsvn_ra_dav/fetch.c
+++ ./subversion/libsvn_ra_dav/fetch.c Thu Feb 14 20:09:19 2002
@@ -33,6 +33,7 @@
#include <ne_props.h>
#include <ne_xml.h>
#include <ne_request.h>
+#include <ne_compress.h>
#include "svn_error.h"
#include "svn_pools.h"
@@ -440,6 +441,9 @@
ne_request *req;
int rv;
int code;
+#if defined(NEON_ZLIB)
+ ne_decompress *decompress;
+#endif /* defined(NEON_ZLIB) */
/* See if we can get a version URL for this resource. This will refer to
what we already have in the working copy, thus we can get a diff against
@@ -473,13 +477,22 @@
}
/* add in a reader to capture the body of the response. */
+#if !defined(NEON_ZLIB)
ne_add_response_body_reader(req, ne_accept_2xx, reader, &cgc);
+#else /* defined(NEON_ZLIB) */
+ decompress = ne_decompress_reader(req, ne_accept_2xx, reader, &cgc);
+#endif /* defined(NEON_ZLIB) */
/* complete initialization of the body reading context */
cgc.subctx = subctx;
/* do the response now */
rv = ne_request_dispatch(req);
+
+#if defined(NEON_ZLIB)
+ ne_decompress_destroy(decompress);
+#endif /* defined(NEON_ZLIB) */
+
code = ne_get_status(req)->code;
ne_request_destroy(req);
Index: ./subversion/libsvn_ra_dav/util.c
===================================================================
--- ./subversion/libsvn_ra_dav/util.c
+++ ./subversion/libsvn_ra_dav/util.c Thu Feb 14 20:24:41 2002
@@ -20,6 +20,7 @@
#include <apr_want.h>
#include <ne_uri.h>
+#include <ne_compress.h>
#include "svn_string.h"
@@ -96,6 +97,9 @@
int code;
const char *msg;
svn_error_t *err;
+#if defined(NEON_ZLIB)
+ ne_decompress *decompress;
+#endif /* defined(NEON_ZLIB) */
/* create/prep the request */
req = ne_request_create(ras->sess, method, url);
@@ -112,10 +116,20 @@
parser = ne_xml_create();
ne_xml_push_handler(parser, elements,
validate_cb, startelm_cb, endelm_cb, baton);
+
+#if !defined(NEON_ZLIB)
ne_add_response_body_reader(req, ne_accept_2xx, ne_xml_parse_v, parser);
+#else /* defined(NEON_ZLIB) */
+ decompress = ne_decompress_reader(req, ne_accept_2xx, ne_xml_parse_v, parser);
+#endif /* defined(NEON_ZLIB) */
/* run the request and get the resulting status code. */
rv = ne_request_dispatch(req);
+
+#if defined(NEON_ZLIB)
+ ne_decompress_destroy(decompress);
+#endif /* defined(NEON_ZLIB) */
+
code = ne_get_status(req)->code;
ne_request_destroy(req);
---------------------------------------------------------------------
|
This is an archived mail posted to the Subversion Dev mailing list.
This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.