[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] Configure option to disable import
From: |
Mark D. Baushke |
Subject: |
Re: [PATCH] Configure option to disable import |
Date: |
Sat, 15 Mar 2003 14:40:29 -0800 |
Mark <cm_mark@yahoo.com> writes:
> Here is a patch to provide a configure option to disable import on the
> server binary. When CVS is setup with triggers in a CM environment,
> import command can provide ways for users to add new files and
> maintain them outside the normal commit process. But the main reason I
> am submitting this patch is becuase of the number of people trying out
> the import command on the client to see what it does or thinking thats
> a fast way to get there changes in. I know all about educating the
> user, but it doesn't always work and CM can't pick those that
> Development hires, thus this patch. It leaves import on by default,
> but provides a way to disable it. (fyi, the admin account will have a
> cvs binary and local access to the repository to run any needed
> imports)
>
> Just removing import from the requests struct didn't work. Even though
> the client doesn't recieve import in the valid request list, the
> client still allows an import call. If import is taken out of the
> requests struct, then the import transfer has to complete before the
> server repsonds with invalid request. Calling the error() routine
> right before the do_cvs_command routine for import seems to provide
> timely and immediate feedback that import is disable.
>
> Thanks,
>
> Mark
I would think this would be a 'policy' feature that would be a candidate
for the per-repository CVSROOT/config file rather than being a
compile-time option that impact all possible cvs repositories...
Later,
-- Mark
> Index: server.c
> ===================================================================
> RCS file: /cvsroot/ccvs/src/server.c,v
> retrieving revision 1.289
> diff -u -r1.289 server.c
> --- server.c 14 Mar 2003 09:57:49 -0000 1.289
> +++ server.c 15 Mar 2003 19:09:19 -0000
> @@ -3676,7 +3676,11 @@
> serve_import (arg)
> char *arg;
> {
> +#ifdef DISABLE_IMPORT
> + error (1, 0, "cannot fill request, import has been disabled");
> +#else
> do_cvs_command ("import", import);
> +#endif
> }
>
> static void
>
> Index: configure.in
> ===================================================================
> RCS file: /cvsroot/ccvs/configure.in,v
> retrieving revision 1.181
> diff -c -r1.181 configure.in
> *** configure.in 4 Mar 2003 22:47:08 -0000 1.181
> --- configure.in 15 Mar 2003 19:22:23 -0000
> ***************
> *** 631,636 ****
> --- 631,652 ----
> [Define if you want CVS to be able to be a remote repository client.])
> fi
>
> + # Check for option requesting the import command be disabled
> + AC_ARG_ENABLE(
> + [import],
> + AC_HELP_STRING(
> + [--disable-import],
> + [Disable the server import command]))
> +
> + if test no = "$enable_import"; then
> + AC_DEFINE(
> + [DISABLE_IMPORT], [1],
> + [Define to 1 to disable the server import command. This can be used
> + with a server binary to prevent file adds that avoid commit trigger
> + checks. Also can be used to prevent accidental imports of user's
> local
>
> + harddrives.])
> + fi
> +
> AC_ARG_ENABLE(
> [password-authenticated-client],
> AC_HELP_STRING(