diff options
author | 2007-09-02 12:16:24 +0000 | |
---|---|---|
committer | 2007-09-02 12:16:24 +0000 | |
commit | 545fb2e2c908291a2b6dd7868c357a654bd3c5a0 (patch) | |
tree | be51809547d219bb6fba6916fddad4c6142b2baa | |
parent | Stick at GNU cvs behaviour with Root directive handling: it does not need (diff) | |
download | wireguard-openbsd-545fb2e2c908291a2b6dd7868c357a654bd3c5a0.tar.xz wireguard-openbsd-545fb2e2c908291a2b6dd7868c357a654bd3c5a0.zip |
OpenCVS server init-support with OpenCVS and GNU cvs clients.
OK joris@
-rw-r--r-- | usr.bin/cvs/client.c | 4 | ||||
-rw-r--r-- | usr.bin/cvs/server.c | 12 |
2 files changed, 11 insertions, 5 deletions
diff --git a/usr.bin/cvs/client.c b/usr.bin/cvs/client.c index 8e44dd10ee6..d5bd731fd62 100644 --- a/usr.bin/cvs/client.c +++ b/usr.bin/cvs/client.c @@ -1,4 +1,4 @@ -/* $OpenBSD: client.c,v 1.74 2007/09/02 11:11:12 tobias Exp $ */ +/* $OpenBSD: client.c,v 1.75 2007/09/02 12:16:24 tobias Exp $ */ /* * Copyright (c) 2006 Joris Vink <joris@openbsd.org> * @@ -106,7 +106,7 @@ struct cvs_req cvs_requests[] = { { "watch-remove", 0, NULL, 0 }, { "watchers", 0, NULL, 0 }, { "editors", 0, NULL, 0 }, - { "init", 0, cvs_server_init, REQ_NEEDDIR }, + { "init", 0, cvs_server_init, 0 }, { "annotate", 0, cvs_server_annotate, REQ_NEEDDIR }, { "rannotate", 0, NULL, 0 }, diff --git a/usr.bin/cvs/server.c b/usr.bin/cvs/server.c index 3eac04eee97..712db2e1689 100644 --- a/usr.bin/cvs/server.c +++ b/usr.bin/cvs/server.c @@ -1,4 +1,4 @@ -/* $OpenBSD: server.c,v 1.68 2007/09/02 12:13:00 tobias Exp $ */ +/* $OpenBSD: server.c,v 1.69 2007/09/02 12:16:24 tobias Exp $ */ /* * Copyright (c) 2006 Joris Vink <joris@openbsd.org> * @@ -572,8 +572,14 @@ cvs_server_diff(char *data) void cvs_server_init(char *data) { - if (chdir(server_currentdir) == -1) - fatal("cvs_server_init: %s", strerror(errno)); + if (data == NULL) + fatal("Missing argument for init"); + + if (current_cvsroot != NULL) + fatal("Root in combination with init is not supported"); + + if ((current_cvsroot = cvsroot_get(data)) == NULL) + fatal("Invalid argument for init"); cvs_cmdop = CVS_OP_INIT; cvs_init(server_argc, server_argv); |