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