On Wed, Mar 03, 2010 at 03:52:59PM +0100, Stefan Sperling wrote:
> Dear svn patch lovers,
>
> The patch submitted by Катаргин Алексей on dev@ today fails to
> apply to trunk with 'svn patch', but applies with unix patch.
>
> I've attached a concatenated version of the patch to this mail
> (the original submission contained several diff files).
>
> $ svn patch -p2 /tmp/sasl.diff.txt
> C subversion/svnserve/cyrus_auth.c
> > rejected hunk @@ -46,6 +46,7 @@
> > rejected hunk @@ -48,6 +48,7 @@
> > rejected hunk @@ -115,14 +115,15 @@
> > rejected hunk @@ -262,7 +262,7 @@
> > rejected hunk @@ -2877,6 +2878,9 @@
> > rejected hunk @@ -2943,6 +2947,7 @@
> Summary of conflicts:
> Text conflicts: 1
It helps to attach the attachment...
--- D:/subversion-1.6.9/subversion/svnserve/cyrus_auth.c Âò àâã 18
01:34:52 2009
+++ D:/subversion-1.6.9/subversion/svnserve/cyrus_auth.c Ñð ìàð 3
09:51:28 2010
@@ -262,7 +262,7 @@
/* Create a SASL context. SASL_SUCCESS_DATA tells SASL that the protocol
supports sending data along with the final "success" message. */
- result = sasl_server_new(SVN_RA_SVN_SASL_NAME,
+ result = sasl_server_new(b->sasl_service_name,
hostname, b->realm,
localaddrport, remoteaddrport,
NULL, SASL_SUCCESS_DATA,
--- D:/subversion-1.6.9/subversion/svnserve/serve.c Ïí ìàé 4 19:02:01 2009
+++ D:/subversion-1.6.9/subversion/svnserve/serve.c Ñð ìàð 3 10:08:46 2010
@@ -46,6 +46,7 @@
#include "private/svn_log.h"
#include "private/svn_mergeinfo_private.h"
+#include "private/ra_svn_sasl.h"
#ifdef HAVE_UNISTD_H
#include <unistd.h> /* For getpid() */
@@ -2877,6 +2878,9 @@
/* Should we use Cyrus SASL? */
svn_config_get_bool(b->cfg, &b->use_sasl, SVN_CONFIG_SECTION_SASL,
SVN_CONFIG_OPTION_USE_SASL, FALSE);
+
+ svn_config_get(b->cfg, &b->sasl_service_name, SVN_CONFIG_SECTION_SASL,
+ SVN_CONFIG_OPTION_SASL_SERVICE_NAME, SVN_RA_SVN_SASL_NAME);
#endif
/* Use the repository UUID as the default realm. */
@@ -2943,6 +2947,7 @@
b.log_file = params->log_file;
b.pool = pool;
b.use_sasl = FALSE;
+ b.sasl_service_name = NULL;
/* Send greeting. We don't support version 1 any more, so we can
* send an empty mechlist. */
--- D:/subversion-1.6.9/subversion/svnserve/server.h Âò àïð 29 14:57:35 2008
+++ D:/subversion-1.6.9/subversion/svnserve/server.h Ñð ìàð 3 10:05:42 2010
@@ -48,6 +48,7 @@
svn_boolean_t read_only; /* Disallow write access (global flag) */
svn_boolean_t use_sasl; /* Use Cyrus SASL for authentication;
always false if SVN_HAVE_SASL not defined */
+ const char *sasl_service_name; /* Service name for SASL auth, default "svn"
*/
apr_file_t *log_file; /* Log filehandle. */
apr_pool_t *pool;
} server_baton_t;
--- D:/subversion-1.6.9/subversion/include/svn_config.h Ïò ÿíâ 23 23:30:04 2009
+++ D:/subversion-1.6.9/subversion/include/svn_config.h Ñð ìàð 3 10:12:03 2010
@@ -115,14 +115,15 @@
* @{
*/
/* For repository svnserve.conf files */
-#define SVN_CONFIG_SECTION_GENERAL "general"
+#define SVN_CONFIG_SECTION_GENERAL "general"
#define SVN_CONFIG_OPTION_ANON_ACCESS "anon-access"
#define SVN_CONFIG_OPTION_AUTH_ACCESS "auth-access"
#define SVN_CONFIG_OPTION_PASSWORD_DB "password-db"
#define SVN_CONFIG_OPTION_REALM "realm"
#define SVN_CONFIG_OPTION_AUTHZ_DB "authz-db"
-#define SVN_CONFIG_SECTION_SASL "sasl"
+#define SVN_CONFIG_SECTION_SASL "sasl"
#define SVN_CONFIG_OPTION_USE_SASL "use-sasl"
+#define SVN_CONFIG_OPTION_SASL_SERVICE_NAME "sasl-service-name"
#define SVN_CONFIG_OPTION_MIN_SSF "min-encryption"
#define SVN_CONFIG_OPTION_MAX_SSF "max-encryption"