bug-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] Kerberor4 client separation


From: Alexey Mahotkin
Subject: [PATCH] Kerberor4 client separation
Date: Fri, 02 May 2003 15:33:41 +0400
User-agent: Gnus/5.090006 (Oort Gnus v0.06) XEmacs/21.4 (Common Lisp, i386-debian-linux)

I don't have any change to check that this patch works, but the nature of
it is very simple and I guess that it could be fixed.  AFAICT, Kerberos 4
is pretty obsolete these days, so maybe it's not a big deal.

Anyway, it's the last system-specific part of client.c, which is now 5144
lines instead of ~6000 it was. 

Derek, if you're going to apply this, I could regenerate it any time you
wish, if/after you apply some/all of previous patches.  My current "series"
file is like this:

socket-client.patch
socket-client-fix.patch
gssapi-client.patch
rsh-client.patch
log-buffer.patch
rsh-client-fix.patch
from-to-server-p.patch
local-from-to-server.patch
via_buffer.patch
kerberos-client.patch

(the removal of includeopt is not here, but it should give only a single
trivial reject).


2003-05-02  Alexey Mahotkin <address@hidden>

Move Kerberos4 client stuff to kerberos4-client.[ch]

init_sockaddr() is used almost universally in clients, so move its
declaration to socket-client.h;

rename HAVE_KERBEROS to HAVE_KERBEROS4, to emphasize that we're
dealing with old Kerberos (K5 works via GSSAPI);

rename start_tcp_server() to start_kerberos4_server();

Debian Woody has Kerberos 4 in -lkrb4 instead of -lkrb, so check for
that;


 config.h.in            |    2 
 configure.in           |    5 +-
 src/Makefile.am        |    3 -
 src/client.c           |  116 ++++---------------------------------------------
 src/client.h           |    8 +--
 src/kerberos4-client.c |  102 +++++++++++++++++++++++++++++++++++++++++++
 src/kerberos4-client.h |   21 ++++++++
 src/main.c             |    8 +--
 src/root.c             |    2 
 src/server.c           |   20 ++++----
 src/socket-client.h    |    8 ++-
 11 files changed, 167 insertions(+), 128 deletions(-)

--- ccvs/src/client.c~kerberos-client   Fri May  2 14:23:47 2003
+++ ccvs-alexm/src/client.c     Fri May  2 15:06:43 2003
@@ -30,24 +30,10 @@
 #include "socket-client.h"
 
 #include "gssapi-client.h"
+#include "kerberos4-client.h"
 
 #include "rsh-client.h"
 
-# if HAVE_KERBEROS
-
-#   include <krb.h>
-
-extern char *krb_realmofhost ();
-#   ifndef HAVE_KRB_GET_ERR_TEXT
-#     define krb_get_err_text(status) krb_err_txt[status]
-#   endif /* HAVE_KRB_GET_ERR_TEXT */
-
-/* Information we need if we are going to use Kerberos encryption.  */
-static C_Block kblock;
-static Key_schedule sched;
-
-# endif /* HAVE_KERBEROS */
-
 static void add_prune_candidate PROTO((char *));
 
 /* All the commands.  */
@@ -3271,11 +3257,8 @@ supported_request (name)
 
 
 
-#if defined (AUTH_CLIENT_SUPPORT) || defined (HAVE_KERBEROS) || defined 
(HAVE_GSSAPI)
-static struct hostent *init_sockaddr PROTO ((struct sockaddr_in *, char *,
-                                            unsigned int));
-
-static struct hostent *
+#if defined (AUTH_CLIENT_SUPPORT) || defined (HAVE_KERBEROS4) || defined 
(HAVE_GSSAPI)
+struct hostent *
 init_sockaddr (name, hostname, port)
     struct sockaddr_in *name;
     char *hostname;
@@ -3372,10 +3355,10 @@ get_cvs_port_number (root)
 # if defined (AUTH_CLIENT_SUPPORT) || defined (HAVE_GSSAPI)
            return get_port_number ("CVS_CLIENT_PORT", "cvspserver", 
CVS_AUTH_PORT);
 # endif /* defined (AUTH_CLIENT_SUPPORT) || defined (HAVE_GSSAPI) */
-# ifdef HAVE_KERBEROS
+# ifdef HAVE_KERBEROS4
        case kserver_method:
            return get_port_number ("CVS_CLIENT_PORT", "cvs", CVS_PORT);
-# endif /* HAVE_KERBEROS */
+# endif /* HAVE_KERBEROS4 */
        default:
            error(1, EINVAL, "internal error: get_cvs_port_number called for 
invalid connection method (%s)",
                    method_names[root->method]);
@@ -3444,7 +3427,7 @@ make_bufs_from_fds (tofd, fromfd, child_
                                               (BUFMEMERRPROC) NULL);
     }
 }
-#endif /* defined (AUTH_CLIENT_SUPPORT) || defined (HAVE_KERBEROS) || 
defined(HAVE_GSSAPI) */
+#endif /* defined (AUTH_CLIENT_SUPPORT) || defined (HAVE_KERBEROS4) || 
defined(HAVE_GSSAPI) */
 
 
 
@@ -3731,83 +3714,6 @@ connect_to_forked_server (to_server_p, f
 
 
 
-#ifdef HAVE_KERBEROS
-/* This function has not been changed to deal with NO_SOCKET_TO_FD
-   (i.e., systems on which sockets cannot be converted to file
-   descriptors).  The first person to try building a kerberos client
-   on such a system (OS/2, Windows 95, and maybe others) will have to
-   take care of this.  */
-void
-start_tcp_server (root, to_server_p, from_server_p)
-    cvsroot_t *root;
-    struct buffer **to_server_p;
-    struct buffer **from_server_p;
-{
-    int s;
-    const char *portenv;
-    int port;
-    struct hostent *hp;
-    struct sockaddr_in sin;
-    char *hname;
-
-    s = socket (AF_INET, SOCK_STREAM, 0);
-    if (s < 0)
-       error (1, 0, "cannot create socket: %s", SOCK_STRERROR (SOCK_ERRNO));
-
-    port = get_cvs_port_number (root);
-
-    hp = init_sockaddr (&sin, root->hostname, port);
-
-    hname = xmalloc (strlen (hp->h_name) + 1);
-    strcpy (hname, hp->h_name);
-  
-    TRACE ( 1, "Connecting to %s(%s):%d",
-           root->hostname,
-           inet_ntoa (sin.sin_addr),
-           port );
-
-    if (connect (s, (struct sockaddr *) &sin, sizeof sin) < 0)
-       error (1, 0, "connect to %s(%s):%d failed: %s",
-              root->hostname,
-              inet_ntoa (sin.sin_addr),
-              port, SOCK_STRERROR (SOCK_ERRNO));
-
-    {
-       const char *realm;
-       struct sockaddr_in laddr;
-       int laddrlen;
-       KTEXT_ST ticket;
-       MSG_DAT msg_data;
-       CREDENTIALS cred;
-       int status;
-
-       realm = krb_realmofhost (hname);
-
-       laddrlen = sizeof (laddr);
-       if (getsockname (s, (struct sockaddr *) &laddr, &laddrlen) < 0)
-           error (1, 0, "getsockname failed: %s", SOCK_STRERROR (SOCK_ERRNO));
-
-       /* We don't care about the checksum, and pass it as zero.  */
-       status = krb_sendauth (KOPT_DO_MUTUAL, s, &ticket, "rcmd",
-                              hname, realm, (unsigned long) 0, &msg_data,
-                              &cred, sched, &laddr, &sin, "KCVSV1.0");
-       if (status != KSUCCESS)
-           error (1, 0, "kerberos authentication failed: %s",
-                  krb_get_err_text (status));
-       memcpy (kblock, cred.session, sizeof (C_Block));
-    }
-
-    close_on_exec (s);
-
-    free (hname);
-
-    /* Give caller the values it wants. */
-    make_bufs_from_fds (s, s, 0, to_server_p, from_server_p, 1);
-}
-
-#endif /* HAVE_KERBEROS */
-
-
 static int send_variable_proc PROTO ((Node *, void *));
 
 static int
@@ -3853,11 +3759,11 @@ start_server ()
            break;
 #endif /* AUTH_CLIENT_SUPPORT */
 
-#if HAVE_KERBEROS
+#if HAVE_KERBEROS4
        case kserver_method:
-           start_tcp_server (current_parsed_root, &global_to_server, 
&global_from_server);
+           start_kerberos4_server (current_parsed_root, &global_to_server, 
&global_from_server);
            break;
-#endif /* HAVE_KERBEROS */
+#endif /* HAVE_KERBEROS4 */
 
 #ifdef HAVE_GSSAPI
        case gserver_method:
@@ -4104,7 +4010,7 @@ start_server ()
            we want to encrypt the compressed stream.  If we can't turn
            on encryption, bomb out; don't let the user think the data
            is being encrypted when it is not.  */
-#ifdef HAVE_KERBEROS
+#ifdef HAVE_KERBEROS4
        if (current_parsed_root->method == kserver_method)
        {
            if (! supported_request ("Kerberos-encrypt"))
@@ -4118,7 +4024,7 @@ start_server ()
                                                         (BUFMEMERRPROC) NULL);
        }
        else
-#endif /* HAVE_KERBEROS */
+#endif /* HAVE_KERBEROS4 */
 #ifdef HAVE_GSSAPI
        if (current_parsed_root->method == gserver_method)
        {
--- ccvs/src/client.h~kerberos-client   Fri May  2 14:23:56 2003
+++ ccvs-alexm/src/client.h     Fri May  2 15:03:08 2003
@@ -29,13 +29,13 @@ extern int cvsauthenticate;
 
 # ifdef ENCRYPTION
 
-#   ifdef HAVE_KERBEROS
+#   ifdef HAVE_KERBEROS4
 
 /* We can't declare the arguments without including krb.h, and I don't
    want to do that in every file.  */
 extern struct buffer *krb_encrypt_buffer_initialize ();
 
-#   endif /* HAVE_KERBEROS */
+#   endif /* HAVE_KERBEROS4 */
 
 # endif /* ENCRYPTION */
 
@@ -64,11 +64,11 @@ void connect_to_pserver PROTO ((cvsroot_
 #   endif /* CVS_AUTH_PORT */
 # endif /* (AUTH_CLIENT_SUPPORT) || defined (HAVE_GSSAPI) */
 
-# if HAVE_KERBEROS
+# if HAVE_KERBEROS4
 #   ifndef CVS_PORT
 #     define CVS_PORT 1999
 #   endif
-# endif /* HAVE_KERBEROS */
+# endif /* HAVE_KERBEROS4 */
 
 /* Talking to the server. */
 void send_to_server PROTO((char *str, size_t len));
--- /dev/null   Wed Jan  1 02:48:46 2003
+++ ccvs-alexm/src/kerberos4-client.c   Fri May  2 15:06:58 2003
@@ -0,0 +1,102 @@
+/* CVS Kerberos4 client stuff.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.  */
+
+#include <config.h>
+
+#include "cvs.h"
+
+#include "socket-client.h"
+
+#   include <krb.h>
+
+extern char *krb_realmofhost ();
+#   ifndef HAVE_KRB_GET_ERR_TEXT
+#     define krb_get_err_text(status) krb_err_txt[status]
+#   endif /* HAVE_KRB_GET_ERR_TEXT */
+
+/* Information we need if we are going to use Kerberos encryption.  */
+static C_Block kblock;
+static Key_schedule sched;
+
+
+/* This function has not been changed to deal with NO_SOCKET_TO_FD
+   (i.e., systems on which sockets cannot be converted to file
+   descriptors).  The first person to try building a kerberos client
+   on such a system (OS/2, Windows 95, and maybe others) will have to
+   take care of this.  */
+void
+start_kerberos4_server (root, to_server_p, from_server_p)
+    cvsroot_t *root;
+    struct buffer **to_server_p;
+    struct buffer **from_server_p;
+{
+    int s;
+    int port;
+    struct hostent *hp;
+    struct sockaddr_in sin;
+    char *hname;
+
+    s = socket (AF_INET, SOCK_STREAM, 0);
+    if (s < 0)
+       error (1, 0, "cannot create socket: %s", SOCK_STRERROR (SOCK_ERRNO));
+
+    port = get_cvs_port_number (root);
+
+    hp = init_sockaddr (&sin, root->hostname, port);
+
+    hname = xmalloc (strlen (hp->h_name) + 1);
+    strcpy (hname, hp->h_name);
+  
+    TRACE ( 1, "Connecting to %s(%s):%d",
+           root->hostname,
+           inet_ntoa (sin.sin_addr),
+           port );
+
+    if (connect (s, (struct sockaddr *) &sin, sizeof sin) < 0)
+       error (1, 0, "connect to %s(%s):%d failed: %s",
+              root->hostname,
+              inet_ntoa (sin.sin_addr),
+              port, SOCK_STRERROR (SOCK_ERRNO));
+
+    {
+       const char *realm;
+       struct sockaddr_in laddr;
+       int laddrlen;
+       KTEXT_ST ticket;
+       MSG_DAT msg_data;
+       CREDENTIALS cred;
+       int status;
+
+       realm = krb_realmofhost (hname);
+
+       laddrlen = sizeof (laddr);
+       if (getsockname (s, (struct sockaddr *) &laddr, &laddrlen) < 0)
+           error (1, 0, "getsockname failed: %s", SOCK_STRERROR (SOCK_ERRNO));
+
+       /* We don't care about the checksum, and pass it as zero.  */
+       status = krb_sendauth (KOPT_DO_MUTUAL, s, &ticket, "rcmd",
+                              hname, realm, (unsigned long) 0, &msg_data,
+                              &cred, sched, &laddr, &sin, "KCVSV1.0");
+       if (status != KSUCCESS)
+           error (1, 0, "kerberos authentication failed: %s",
+                  krb_get_err_text (status));
+       memcpy (kblock, cred.session, sizeof (C_Block));
+    }
+
+    close_on_exec (s);
+
+    free (hname);
+
+    /* Give caller the values it wants. */
+    make_bufs_from_fds (s, s, 0, to_server_p, from_server_p, 1);
+}
+
--- /dev/null   Wed Jan  1 02:48:46 2003
+++ ccvs-alexm/src/kerberos4-client.h   Fri May  2 15:07:06 2003
@@ -0,0 +1,21 @@
+/* CVS Kerberos4 client stuff.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.  */
+
+
+#ifndef KERBEROS4_CLIENT_H__
+#define KERBEROS4_CLIENT_H__
+
+extern void start_kerberos4_server PROTO((cvsroot_t *root,
+                                         struct buffer **to_server_p, struct 
buffer **from_server_p));
+
+#endif
+
--- ccvs/src/Makefile.am~kerberos-client        Fri May  2 14:24:08 2003
+++ ccvs-alexm/src/Makefile.am  Fri May  2 14:58:11 2003
@@ -100,7 +100,8 @@ cvs_SOURCES = \
        update.h \
        watch.h
 
-EXTRA_cvs_SOURCES = gssapi-client.c gssapi-client.h
+EXTRA_cvs_SOURCES = gssapi-client.c gssapi-client.h \
+                    kerberos4-client.c kerberos4-client.h
 
 cvs_DEPENDENCIES = @client_objects@
 cvs_LDADD = @client_objects@ \
--- ccvs/configure.in~kerberos-client   Fri May  2 14:27:32 2003
+++ ccvs-alexm/configure.in     Fri May  2 15:01:28 2003
@@ -383,11 +383,13 @@ if test -n "$krb_h"; then
        LDFLAGS=$hold_ldflags
   else
        AC_CHECK_LIB(krb,printf,[krb_lib=yes krb_libdir=])
+       AC_CHECK_LIB(krb4, printf, [krb_lib=yes krb_libdir=])
        AC_CHECK_FUNC(krb_recvauth,[krb_lib=yes krb_libdir=])
   fi
   if test -n "$krb_lib"; then
-    AC_DEFINE([HAVE_KERBEROS], 1,
+    AC_DEFINE([HAVE_KERBEROS4], 1,
              [Define if you have MIT Kerberos version 4 available.])
+    client_objects="$client_objects kerberos4-client.o"
     test -n "${krb_libdir}" && LIBS="${LIBS} -L${krb_libdir}"
     # Put -L${krb_libdir} in LDFLAGS temporarily so that it appears before
     # -ldes in the command line.  Don't do it permanently so that we honor
@@ -396,6 +398,7 @@ if test -n "$krb_h"; then
     test -n "${krb_libdir}" && LDFLAGS="$LDFLAGS -L${krb_libdir}"
     AC_CHECK_LIB(des,printf,[LIBS="${LIBS} -ldes"])
     AC_CHECK_LIB(krb,krb_recvauth)
+    AC_CHECK_LIB(krb4,krb_recvauth)
     LDFLAGS=$hold_ldflags
     if test -n "$krb_incdir"; then
       includeopt="${includeopt} -I$krb_incdir"
--- ccvs/src/socket-client.h~kerberos-client    Fri May  2 14:49:47 2003
+++ ccvs-alexm/src/socket-client.h      Fri May  2 15:04:03 2003
@@ -18,7 +18,7 @@
 struct buffer *socket_buffer_initialize
   PROTO ((int, int, void (*) (struct buffer *)));
 
-# if defined(AUTH_CLIENT_SUPPORT) || defined(HAVE_KERBEROS) || 
defined(HAVE_GSSAPI) || defined(SOCK_ERRNO) || defined(SOCK_STRERROR)
+# if defined(AUTH_CLIENT_SUPPORT) || defined(HAVE_KERBEROS4) || 
defined(HAVE_GSSAPI) || defined(SOCK_ERRNO) || defined(SOCK_STRERROR)
 #   ifdef HAVE_WINSOCK_H
 #     include <winsock.h>
 #   else /* No winsock.h */
@@ -28,6 +28,12 @@ struct buffer *socket_buffer_initialize
 #     include <netdb.h>
 #   endif /* No winsock.h */
 # endif
+
+#if defined (AUTH_CLIENT_SUPPORT) || defined (HAVE_KERBEROS4) || defined 
(HAVE_GSSAPI)
+struct hostent *init_sockaddr PROTO ((struct sockaddr_in *, char *,
+                                            unsigned int));
+
+#endif
 
 /* If SOCK_ERRNO is defined, then send()/recv() and other socket calls
    do not set errno, but that this macro should be used to obtain an
--- ccvs/config.h.in~kerberos-client    Fri May  2 15:01:52 2003
+++ ccvs-alexm/config.h.in      Fri May  2 15:04:32 2003
@@ -197,7 +197,7 @@
 #undef HAVE_IO_H
 
 /* Define if you have MIT Kerberos version 4 available. */
-#undef HAVE_KERBEROS
+#undef HAVE_KERBEROS4
 
 /* Define to 1 if you have the <krb5.h> header file. */
 #undef HAVE_KRB5_H
--- ccvs/src/server.c~kerberos-client   Fri May  2 15:02:13 2003
+++ ccvs-alexm/src/server.c     Fri May  2 15:15:46 2003
@@ -50,7 +50,7 @@ static int cvs_gssapi_wrapping;
 #include <winsock.h>
 #endif
 
-#if defined (AUTH_SERVER_SUPPORT) || defined (HAVE_KERBEROS) || defined 
(HAVE_GSSAPI)
+#if defined (AUTH_SERVER_SUPPORT) || defined (HAVE_KERBEROS4) || defined 
(HAVE_GSSAPI)
 #include <sys/socket.h>
 #endif
 
@@ -61,7 +61,7 @@ static int cvs_gssapi_wrapping;
 # endif
 #endif
 
-#ifdef HAVE_KERBEROS
+#ifdef HAVE_KERBEROS4
 # include <netinet/in.h>
 # include <krb.h>
 # ifndef HAVE_KRB_GET_ERR_TEXT
@@ -2205,7 +2205,7 @@ serve_set (arg)
 
 #ifdef ENCRYPTION
 
-#ifdef HAVE_KERBEROS
+#ifdef HAVE_KERBEROS4
 
 static void
 serve_kerberos_encrypt (arg)
@@ -2221,7 +2221,7 @@ serve_kerberos_encrypt (arg)
                                                  buf_from_net->memory_error);
 }
 
-#endif /* HAVE_KERBEROS */
+#endif /* HAVE_KERBEROS4 */
 
 #ifdef HAVE_GSSAPI
 
@@ -4798,7 +4798,7 @@ struct request requests[] =
           0),
   REQ_LINE("Set", serve_set, RQ_ROOTLESS),
 #ifdef ENCRYPTION
-#  ifdef HAVE_KERBEROS
+#  ifdef HAVE_KERBEROS4
   REQ_LINE("Kerberos-encrypt", serve_kerberos_encrypt, 0),
 #  endif
 #  ifdef HAVE_GSSAPI
@@ -5256,7 +5256,7 @@ error ENOMEM Virtual memory exhausted.\n
 }
 
 
-#if defined (HAVE_KERBEROS) || defined (AUTH_SERVER_SUPPORT) || defined 
(HAVE_GSSAPI)
+#if defined (HAVE_KERBEROS4) || defined (AUTH_SERVER_SUPPORT) || defined 
(HAVE_GSSAPI)
 static void switch_to_user PROTO((const char *));
 
 static void
@@ -5883,7 +5883,7 @@ pserver_authenticate_connection ()
 #endif /* AUTH_SERVER_SUPPORT || HAVE_GSSAPI */
 
 
-#ifdef HAVE_KERBEROS
+#ifdef HAVE_KERBEROS4
 void
 kserver_authenticate_connection ()
 {
@@ -5951,7 +5951,7 @@ error 0 kerberos: can't get local name: 
     /* Switch to run as this user. */
     switch_to_user (user);
 }
-#endif /* HAVE_KERBEROS */
+#endif /* HAVE_KERBEROS4 */
 
 #ifdef HAVE_GSSAPI
 
@@ -6083,7 +6083,7 @@ int cvsauthenticate;
 
 #ifdef ENCRYPTION
 
-#ifdef HAVE_KERBEROS
+#ifdef HAVE_KERBEROS4
 
 /* An encryption interface using Kerberos.  This is built on top of a
    packetizing buffer.  */
@@ -6194,7 +6194,7 @@ krb_encrypt_output (fnclosure, input, ou
     return 0;
 }
 
-#endif /* HAVE_KERBEROS */
+#endif /* HAVE_KERBEROS4 */
 #endif /* ENCRYPTION */
 #endif /* defined (CLIENT_SUPPORT) || defined (SERVER_SUPPORT) */
 
--- ccvs/src/root.c~kerberos-client     Fri May  2 15:02:15 2003
+++ ccvs-alexm/src/root.c       Fri May  2 15:02:25 2003
@@ -628,7 +628,7 @@ parse_cvsroot (root_in)
        /* no_password already set */
        break;
     case kserver_method:
-# ifndef HAVE_KERBEROS
+# ifndef HAVE_KERBEROS4
                error (0, 0, "CVSROOT is set for a kerberos access method but 
your");
        error (0, 0, "CVS executable doesn't support it.");
        goto error_exit;
--- ccvs/src/main.c~kerberos-client     Fri May  2 15:02:17 2003
+++ ccvs-alexm/src/main.c       Fri May  2 15:02:39 2003
@@ -117,7 +117,7 @@ static const struct cmd
     { "history",  "hi",       "his",       history,   CVS_CMD_USES_WORK_DIR },
     { "import",   "im",       "imp",       import,    
CVS_CMD_MODIFIES_REPOSITORY | CVS_CMD_USES_WORK_DIR | CVS_CMD_IGNORE_ADMROOT},
     { "init",     NULL,       NULL,        init,      
CVS_CMD_MODIFIES_REPOSITORY },
-#if defined (HAVE_KERBEROS) && defined (SERVER_SUPPORT)
+#if defined (HAVE_KERBEROS4) && defined (SERVER_SUPPORT)
     { "kserver",  NULL,       NULL,        server,    
CVS_CMD_MODIFIES_REPOSITORY | CVS_CMD_USES_WORK_DIR }, /* placeholder */
 #endif
     { "log",      "lo",       NULL,        cvslog,    CVS_CMD_USES_WORK_DIR },
@@ -208,7 +208,7 @@ static const char *const cmd_usage[] =
     "        history      Show repository access history\n",
     "        import       Import sources into CVS, using vendor branches\n",
     "        init         Create a CVS repository if it doesn't exist\n",
-#if defined (HAVE_KERBEROS) && defined (SERVER_SUPPORT)
+#if defined (HAVE_KERBEROS4) && defined (SERVER_SUPPORT)
     "        kserver      Kerberos server mode\n",
 #endif
     "        log          Print out history information for files\n",
@@ -702,7 +702,7 @@ cause intermittent sandbox corruption.")
 
 #ifdef SERVER_SUPPORT
 
-# ifdef HAVE_KERBEROS
+# ifdef HAVE_KERBEROS4
        /* If we are invoked with a single argument "kserver", then we are
           running as Kerberos server as root.  Do the authentication as
           the very first thing, to minimize the amount of time we are
@@ -714,7 +714,7 @@ cause intermittent sandbox corruption.")
            /* Pretend we were invoked as a plain server.  */
            command_name = "server";
        }
-# endif /* HAVE_KERBEROS */
+# endif /* HAVE_KERBEROS4 */
 
 
 # if defined (AUTH_SERVER_SUPPORT) || defined (HAVE_GSSAPI)

_

--alexm




reply via email to

[Prev in Thread] Current Thread [Next in Thread]