Annotation of src/usr.bin/cvs/proto.h, Revision 1.6
1.6 ! jfb 1: /* $OpenBSD: proto.h,v 1.5 2004/12/07 17:10:56 tedu Exp $ */
1.1 jfb 2: /*
3: * Copyright (c) 2004 Jean-Francois Brousseau <jfb@openbsd.org>
1.5 tedu 4: * All rights reserved.
1.1 jfb 5: *
1.5 tedu 6: * Redistribution and use in source and binary forms, with or without
7: * modification, are permitted provided that the following conditions
8: * are met:
1.1 jfb 9: *
1.5 tedu 10: * 1. Redistributions of source code must retain the above copyright
11: * notice, this list of conditions and the following disclaimer.
1.1 jfb 12: * 2. The name of the author may not be used to endorse or promote products
1.5 tedu 13: * derived from this software without specific prior written permission.
1.1 jfb 14: *
15: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
16: * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
17: * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
18: * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
19: * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20: * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
21: * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
22: * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
23: * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
1.5 tedu 24: * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1.1 jfb 25: */
26:
27: #ifndef PROTO_H
28: #define PROTO_H
29:
30: #include <sys/param.h>
1.2 jfb 31:
32: #include "buf.h"
33: #include "file.h"
1.1 jfb 34:
1.4 jfb 35:
36: #define CVS_PROTO_MAXARG 256
37:
1.1 jfb 38: #define CVS_REQ_TIMEOUT 300
39:
40:
41: /* client/server protocol requests */
42: #define CVS_REQ_NONE 0
43: #define CVS_REQ_ROOT 1
44: #define CVS_REQ_VALIDREQ 2
45: #define CVS_REQ_VALIDRESP 3
46: #define CVS_REQ_DIRECTORY 4
47: #define CVS_REQ_MAXDOTDOT 5
48: #define CVS_REQ_STATICDIR 6
49: #define CVS_REQ_STICKY 7
50: #define CVS_REQ_ENTRY 8
51: #define CVS_REQ_ENTRYEXTRA 9
52: #define CVS_REQ_CHECKINTIME 10
53: #define CVS_REQ_MODIFIED 11
54: #define CVS_REQ_ISMODIFIED 12
55: #define CVS_REQ_UNCHANGED 13
56: #define CVS_REQ_USEUNCHANGED 14
57: #define CVS_REQ_NOTIFY 15
58: #define CVS_REQ_NOTIFYUSER 16
59: #define CVS_REQ_QUESTIONABLE 17
60: #define CVS_REQ_CASE 18
61: #define CVS_REQ_UTF8 19
62: #define CVS_REQ_ARGUMENT 20
63: #define CVS_REQ_ARGUMENTX 21
64: #define CVS_REQ_GLOBALOPT 22
65: #define CVS_REQ_GZIPSTREAM 23
66: #define CVS_REQ_KERBENCRYPT 24
67: #define CVS_REQ_GSSENCRYPT 25
68: #define CVS_REQ_PROTOENCRYPT 26
69: #define CVS_REQ_GSSAUTH 27
70: #define CVS_REQ_PROTOAUTH 28
71: #define CVS_REQ_READCVSRC2 29
72: #define CVS_REQ_READWRAP 30
73: #define CVS_REQ_ERRIFREADER 31
74: #define CVS_REQ_VALIDRCSOPT 32
75: #define CVS_REQ_READIGNORE 33
76: #define CVS_REQ_SET 34
77: #define CVS_REQ_XPANDMOD 35
78: #define CVS_REQ_CI 36
79: #define CVS_REQ_CHOWN 37
80: #define CVS_REQ_SETOWN 38
81: #define CVS_REQ_SETPERM 39
82: #define CVS_REQ_CHACL 40
83: #define CVS_REQ_LISTPERM 41
84: #define CVS_REQ_LISTACL 42
85: #define CVS_REQ_SETPASS 43
86: #define CVS_REQ_PASSWD 44
87: #define CVS_REQ_DIFF 45
88: #define CVS_REQ_STATUS 46
89: #define CVS_REQ_LS 47
90: #define CVS_REQ_TAG 48
91: #define CVS_REQ_IMPORT 49
92: #define CVS_REQ_ADMIN 50
93: #define CVS_REQ_HISTORY 51
94: #define CVS_REQ_WATCHERS 52
95: #define CVS_REQ_EDITORS 53
96: #define CVS_REQ_ANNOTATE 54
97: #define CVS_REQ_LOG 55
98: #define CVS_REQ_CO 56
99: #define CVS_REQ_EXPORT 57
100: #define CVS_REQ_RANNOTATE 58
101: #define CVS_REQ_INIT 59
102: #define CVS_REQ_UPDATE 60
103: #define CVS_REQ_ADD 62
104: #define CVS_REQ_REMOVE 63
105: #define CVS_REQ_NOOP 64
106: #define CVS_REQ_RTAG 65
107: #define CVS_REQ_RELEASE 66
108: #define CVS_REQ_RLOG 67
109: #define CVS_REQ_RDIFF 68
110: #define CVS_REQ_VERSION 69
111:
112: #define CVS_REQ_MAX 69
113:
114:
115: /* responses */
1.3 jfb 116: #define CVS_RESP_NONE 0
1.1 jfb 117: #define CVS_RESP_OK 1
118: #define CVS_RESP_ERROR 2
119: #define CVS_RESP_VALIDREQ 3
120: #define CVS_RESP_CHECKEDIN 4
121: #define CVS_RESP_NEWENTRY 5
122: #define CVS_RESP_CKSUM 6
123: #define CVS_RESP_COPYFILE 7
124: #define CVS_RESP_UPDATED 8
125: #define CVS_RESP_CREATED 9
126: #define CVS_RESP_UPDEXIST 10
127: #define CVS_RESP_MERGED 11
128: #define CVS_RESP_PATCHED 12
129: #define CVS_RESP_RCSDIFF 13
130: #define CVS_RESP_MODE 14
131: #define CVS_RESP_MODTIME 15
132: #define CVS_RESP_REMOVED 16
133: #define CVS_RESP_RMENTRY 17
134: #define CVS_RESP_SETSTATDIR 18
135: #define CVS_RESP_CLRSTATDIR 19
136: #define CVS_RESP_SETSTICKY 20
137: #define CVS_RESP_CLRSTICKY 21
138: #define CVS_RESP_TEMPLATE 22
139: #define CVS_RESP_SETCIPROG 23
140: #define CVS_RESP_SETUPDPROG 24
141: #define CVS_RESP_NOTIFIED 25
142: #define CVS_RESP_MODXPAND 26
143: #define CVS_RESP_WRAPRCSOPT 27
144: #define CVS_RESP_M 28
145: #define CVS_RESP_MBINARY 29
146: #define CVS_RESP_E 30
147: #define CVS_RESP_F 31
148: #define CVS_RESP_MT 32
1.3 jfb 149:
150: #define CVS_RESP_MAX 32
151:
152: struct cvs_req {
153: int req_id;
154: char req_str[32];
155: u_int req_flags;
156: };
157:
158: struct cvs_resp {
159: u_int resp_id;
160: char resp_str[32];
161: };
1.1 jfb 162:
163:
164: int cvs_sendfile (struct cvsroot *, const char *);
1.2 jfb 165: BUF* cvs_recvfile (struct cvsroot *, mode_t *);
1.1 jfb 166: int cvs_connect (struct cvsroot *);
167: void cvs_disconnect (struct cvsroot *);
168:
169: int cvs_req_handle (char *);
170: struct cvs_req* cvs_req_getbyid (int);
171: struct cvs_req* cvs_req_getbyname (const char *);
172: char* cvs_req_getvalid (void);
173:
174: int cvs_resp_handle (struct cvsroot *, char *);
175: struct cvs_resp* cvs_resp_getbyid (int);
176: struct cvs_resp* cvs_resp_getbyname (const char *);
177: char* cvs_resp_getvalid (void);
178:
179: int cvs_sendreq (struct cvsroot *, u_int, const char *);
180: int cvs_getresp (struct cvsroot *);
1.4 jfb 181: int cvs_sendresp (u_int, const char *);
1.1 jfb 182: int cvs_getln (struct cvsroot *, char *, size_t);
183: int cvs_senddir (struct cvsroot *, CVSFILE *);
184: int cvs_sendarg (struct cvsroot *, const char *, int);
185: int cvs_sendln (struct cvsroot *, const char *);
1.6 ! jfb 186: int cvs_sendentry (struct cvsroot *, const CVSFILE *);
1.1 jfb 187: int cvs_sendraw (struct cvsroot *, const void *, size_t);
188: ssize_t cvs_recvraw (struct cvsroot *, void *, size_t);
189:
190:
191: #endif /* PROTO_H */