1/*
2 * Copyright (C) 1986-2005 The Free Software Foundation, Inc.
3 *
4 * Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
5 *                                  and others.
6 *
7 * Portions Copyright (C) 1992, Brian Berliner and Jeff Polk
8 * Portions Copyright (C) 1989-1992, Brian Berliner
9 *
10 * You may distribute under the terms of the GNU General Public License as
11 * specified in the README file that comes with the CVS kit.
12 */
13
14/* CVSroot data structures */
15
16/* Access method specified in CVSroot. */
17typedef enum {
18    null_method,
19    local_method,
20    server_method,
21    pserver_method,
22    kserver_method,
23    gserver_method,
24    ext_method,
25    extssh_method,
26    fork_method
27} CVSmethod;
28extern const char method_names[][16];	/* change this in root.c if you change
29					   the enum above */
30
31typedef struct cvsroot_s {
32    char *original;		/* The complete source CVSroot string. */
33    CVSmethod method;		/* One of the enum values above. */
34    char *directory;		/* The directory name. */
35    unsigned char isremote;	/* Nonzero if we are doing remote access. */
36#ifdef CLIENT_SUPPORT
37    char *username;		/* The username or NULL if method == local. */
38    char *password;		/* The password or NULL if method == local. */
39    char *hostname;		/* The hostname or NULL if method == local. */
40    int port;			/* The port or zero if method == local. */
41    char *proxy_hostname;	/* The hostname of the proxy server, or NULL
42				 * when method == local or no proxy will be
43				 * used.
44				 */
45    int proxy_port;		/* The port of the proxy or zero, as above. */
46#endif /* CLIENT_SUPPORT */
47} cvsroot_t;
48
49cvsroot_t *Name_Root PROTO((const char *dir, const char *update_dir));
50void free_cvsroot_t PROTO((cvsroot_t *root_in));
51cvsroot_t *parse_cvsroot PROTO((const char *root));
52cvsroot_t *local_cvsroot PROTO((const char *dir));
53void Create_Root PROTO((const char *dir, const char *rootdir));
54void root_allow_add PROTO ((char *));
55void root_allow_free PROTO ((void));
56int root_allow_ok PROTO ((char *));
57int root_allow_used PROTO ((void));
58