summaryrefslogtreecommitdiff
path: root/src/root.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/root.h')
-rw-r--r--src/root.h69
1 files changed, 69 insertions, 0 deletions
diff --git a/src/root.h b/src/root.h
new file mode 100644
index 0000000..012ff04
--- /dev/null
+++ b/src/root.h
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 1986-2005 The Free Software Foundation, Inc.
+ *
+ * Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
+ * and others.
+ *
+ * Portions Copyright (C) 1992, Brian Berliner and Jeff Polk
+ * Portions Copyright (C) 1989-1992, Brian Berliner
+ *
+ * You may distribute under the terms of the GNU General Public License as
+ * specified in the README file that comes with the CVS kit.
+ */
+
+/* CVSroot data structures */
+
+/* Access method specified in CVSroot. */
+typedef enum {
+ null_method = 0,
+ local_method,
+ server_method,
+ pserver_method,
+ kserver_method,
+ gserver_method,
+ ext_method,
+ fork_method
+} CVSmethod;
+extern const char method_names[][16]; /* change this in root.c if you change
+ the enum above */
+
+typedef struct cvsroot_s {
+ char *original; /* The complete source CVSroot string. */
+ CVSmethod method; /* One of the enum values above. */
+ char *directory; /* The directory name. */
+ bool isremote; /* True if we are doing remote access. */
+/* The following is required for servers now to allow Redirects to be sent
+ * for remote roots when client support is disabled.
+ */
+#if defined (CLIENT_SUPPORT) || defined (SERVER_SUPPORT)
+ char *username; /* The username or NULL if method == local. */
+ char *password; /* The password or NULL if method == local. */
+ char *hostname; /* The hostname or NULL if method == local. */
+ char *cvs_rsh; /* The $CVS_RSH or NULL if method != ext. */
+ char *cvs_server; /* The $CVS_SERVER or NULL if
+ * method != ext and method != fork. */
+ int port; /* The port or zero if method == local. */
+ char *proxy_hostname; /* The hostname of the proxy server, or NULL
+ * when method == local or no proxy will be
+ * used.
+ */
+ int proxy_port; /* The port of the proxy or zero, as above. */
+ bool redirect; /* False if we are to disable redirects. */
+#endif /* defined (CLIENT_SUPPORT) || defined (SERVER_SUPPORT) */
+} cvsroot_t;
+
+extern cvsroot_t *current_parsed_root;
+extern const cvsroot_t *original_parsed_root;
+
+cvsroot_t *Name_Root (const char *dir, const char *update_dir);
+cvsroot_t *parse_cvsroot (const char *root)
+ __attribute__ ((__malloc__));
+cvsroot_t *local_cvsroot (const char *dir)
+ __attribute__ ((__malloc__));
+void Create_Root (const char *dir, const char *rootdir);
+void root_allow_add (const char *, const char *configPath);
+void root_allow_free (void);
+bool root_allow_ok (const char *);
+struct config *get_root_allow_config (const char *arg, const char *configPath);
+const char *primary_root_translate (const char *root_in);
+const char *primary_root_inverse_translate (const char *root_in);