diff options
author | Jean-Francois Brousseau <jfb@cvs.openbsd.org> | 2004-07-30 01:49:27 +0000 |
---|---|---|
committer | Jean-Francois Brousseau <jfb@cvs.openbsd.org> | 2004-07-30 01:49:27 +0000 |
commit | b59c4319a2b0bee7cbb7f9ef3342f372940000e1 (patch) | |
tree | a92383f8032facbf9c49611d38ee8dd3cfeaa963 /usr.bin/cvs/proto.h | |
parent | f1a256bf9c1770f12d8fbfedbab0ecc0c472d43d (diff) |
Move to the new API for the client-server protocol. All functions now
take a cvs root structure as parameter. This will allow for much easier
management of CVS trees that make use of multiple roots.
Diffstat (limited to 'usr.bin/cvs/proto.h')
-rw-r--r-- | usr.bin/cvs/proto.h | 173 |
1 files changed, 173 insertions, 0 deletions
diff --git a/usr.bin/cvs/proto.h b/usr.bin/cvs/proto.h new file mode 100644 index 00000000000..f354db4cb1c --- /dev/null +++ b/usr.bin/cvs/proto.h @@ -0,0 +1,173 @@ +/* $OpenBSD: proto.h,v 1.1 2004/07/30 01:49:24 jfb Exp $ */ +/* + * Copyright (c) 2004 Jean-Francois Brousseau <jfb@openbsd.org> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef PROTO_H +#define PROTO_H + +#include <sys/param.h> +#include <stdio.h> +#include <dirent.h> + +#define CVS_REQ_TIMEOUT 300 + + +/* client/server protocol requests */ +#define CVS_REQ_NONE 0 +#define CVS_REQ_ROOT 1 +#define CVS_REQ_VALIDREQ 2 +#define CVS_REQ_VALIDRESP 3 +#define CVS_REQ_DIRECTORY 4 +#define CVS_REQ_MAXDOTDOT 5 +#define CVS_REQ_STATICDIR 6 +#define CVS_REQ_STICKY 7 +#define CVS_REQ_ENTRY 8 +#define CVS_REQ_ENTRYEXTRA 9 +#define CVS_REQ_CHECKINTIME 10 +#define CVS_REQ_MODIFIED 11 +#define CVS_REQ_ISMODIFIED 12 +#define CVS_REQ_UNCHANGED 13 +#define CVS_REQ_USEUNCHANGED 14 +#define CVS_REQ_NOTIFY 15 +#define CVS_REQ_NOTIFYUSER 16 +#define CVS_REQ_QUESTIONABLE 17 +#define CVS_REQ_CASE 18 +#define CVS_REQ_UTF8 19 +#define CVS_REQ_ARGUMENT 20 +#define CVS_REQ_ARGUMENTX 21 +#define CVS_REQ_GLOBALOPT 22 +#define CVS_REQ_GZIPSTREAM 23 +#define CVS_REQ_KERBENCRYPT 24 +#define CVS_REQ_GSSENCRYPT 25 +#define CVS_REQ_PROTOENCRYPT 26 +#define CVS_REQ_GSSAUTH 27 +#define CVS_REQ_PROTOAUTH 28 +#define CVS_REQ_READCVSRC2 29 +#define CVS_REQ_READWRAP 30 +#define CVS_REQ_ERRIFREADER 31 +#define CVS_REQ_VALIDRCSOPT 32 +#define CVS_REQ_READIGNORE 33 +#define CVS_REQ_SET 34 +#define CVS_REQ_XPANDMOD 35 +#define CVS_REQ_CI 36 +#define CVS_REQ_CHOWN 37 +#define CVS_REQ_SETOWN 38 +#define CVS_REQ_SETPERM 39 +#define CVS_REQ_CHACL 40 +#define CVS_REQ_LISTPERM 41 +#define CVS_REQ_LISTACL 42 +#define CVS_REQ_SETPASS 43 +#define CVS_REQ_PASSWD 44 +#define CVS_REQ_DIFF 45 +#define CVS_REQ_STATUS 46 +#define CVS_REQ_LS 47 +#define CVS_REQ_TAG 48 +#define CVS_REQ_IMPORT 49 +#define CVS_REQ_ADMIN 50 +#define CVS_REQ_HISTORY 51 +#define CVS_REQ_WATCHERS 52 +#define CVS_REQ_EDITORS 53 +#define CVS_REQ_ANNOTATE 54 +#define CVS_REQ_LOG 55 +#define CVS_REQ_CO 56 +#define CVS_REQ_EXPORT 57 +#define CVS_REQ_RANNOTATE 58 +#define CVS_REQ_INIT 59 +#define CVS_REQ_UPDATE 60 +#define CVS_REQ_ADD 62 +#define CVS_REQ_REMOVE 63 +#define CVS_REQ_NOOP 64 +#define CVS_REQ_RTAG 65 +#define CVS_REQ_RELEASE 66 +#define CVS_REQ_RLOG 67 +#define CVS_REQ_RDIFF 68 +#define CVS_REQ_VERSION 69 + +#define CVS_REQ_MAX 69 + + +/* responses */ +#define CVS_RESP_OK 1 +#define CVS_RESP_ERROR 2 +#define CVS_RESP_VALIDREQ 3 +#define CVS_RESP_CHECKEDIN 4 +#define CVS_RESP_NEWENTRY 5 +#define CVS_RESP_CKSUM 6 +#define CVS_RESP_COPYFILE 7 +#define CVS_RESP_UPDATED 8 +#define CVS_RESP_CREATED 9 +#define CVS_RESP_UPDEXIST 10 +#define CVS_RESP_MERGED 11 +#define CVS_RESP_PATCHED 12 +#define CVS_RESP_RCSDIFF 13 +#define CVS_RESP_MODE 14 +#define CVS_RESP_MODTIME 15 +#define CVS_RESP_REMOVED 16 +#define CVS_RESP_RMENTRY 17 +#define CVS_RESP_SETSTATDIR 18 +#define CVS_RESP_CLRSTATDIR 19 +#define CVS_RESP_SETSTICKY 20 +#define CVS_RESP_CLRSTICKY 21 +#define CVS_RESP_TEMPLATE 22 +#define CVS_RESP_SETCIPROG 23 +#define CVS_RESP_SETUPDPROG 24 +#define CVS_RESP_NOTIFIED 25 +#define CVS_RESP_MODXPAND 26 +#define CVS_RESP_WRAPRCSOPT 27 +#define CVS_RESP_M 28 +#define CVS_RESP_MBINARY 29 +#define CVS_RESP_E 30 +#define CVS_RESP_F 31 +#define CVS_RESP_MT 32 + + + +int cvs_sendfile (struct cvsroot *, const char *); +int cvs_recvfile (struct cvsroot *, const char *); +int cvs_connect (struct cvsroot *); +void cvs_disconnect (struct cvsroot *); + +int cvs_req_handle (char *); +struct cvs_req* cvs_req_getbyid (int); +struct cvs_req* cvs_req_getbyname (const char *); +char* cvs_req_getvalid (void); + +int cvs_resp_handle (struct cvsroot *, char *); +struct cvs_resp* cvs_resp_getbyid (int); +struct cvs_resp* cvs_resp_getbyname (const char *); +char* cvs_resp_getvalid (void); + +int cvs_sendreq (struct cvsroot *, u_int, const char *); +int cvs_getresp (struct cvsroot *); +int cvs_getln (struct cvsroot *, char *, size_t); +int cvs_senddir (struct cvsroot *, CVSFILE *); +int cvs_sendarg (struct cvsroot *, const char *, int); +int cvs_sendln (struct cvsroot *, const char *); +int cvs_sendentry (struct cvsroot *, const struct cvs_ent *); +int cvs_sendraw (struct cvsroot *, const void *, size_t); +ssize_t cvs_recvraw (struct cvsroot *, void *, size_t); + + +#endif /* PROTO_H */ |