summaryrefslogtreecommitdiff
path: root/usr/src/cmd/sendmail/aux/nisplus.h
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/cmd/sendmail/aux/nisplus.h')
-rw-r--r--usr/src/cmd/sendmail/aux/nisplus.h124
1 files changed, 124 insertions, 0 deletions
diff --git a/usr/src/cmd/sendmail/aux/nisplus.h b/usr/src/cmd/sendmail/aux/nisplus.h
new file mode 100644
index 0000000000..0997fae6ca
--- /dev/null
+++ b/usr/src/cmd/sendmail/aux/nisplus.h
@@ -0,0 +1,124 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 1994, 1997, 1998 by Sun Microsystems, Inc.
+ * All rights reserved.
+ */
+
+#pragma ident "%Z%%M% %I% %E% SMI"
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#undef NIS /* confict in nis.h */
+#undef T_UNSPEC /* symbol conflict in nis.h -> ... -> sys/tiuser.h */
+
+#include <rpcsvc/nis.h>
+#include <rpcsvc/nislib.h>
+
+/*
+ * Defines for Nisplus alias handling functions
+ */
+
+#define TABLE_TYPE "mail_aliases"
+
+/*
+ * Operating modes
+ */
+
+struct nis_mailias
+{
+ char *name;
+ char *expn;
+ char *comments;
+ char *options;
+};
+
+typedef struct nis_mailias nis_mailias;
+
+#define FORWARD 0
+#define REVERSE 1
+
+#define MAILIAS_COLS 4 /* Number of cols in a mailias entry */
+/*
+ * These are the the columns in the NIS+ Table.
+ */
+#define ALIAS_COL 0 /* the name of the alias */
+#define EXPANSION_COL 1 /* what the alias expands to */
+#define COMMENTS_COL 2 /* Human readable comments */
+/*
+ * Options column,
+ * This consists of a list of
+ * VARIABLE=VALUE, or VARIABLE names
+ */
+#define OPTIONS_COL 3
+
+#define MAXLINE 2048 /* max line length */
+
+#define EN_len zo_data.objdata_u.en_data.en_cols.en_cols_len
+#define EN_colp zo_data.objdata_u.en_data.en_cols.en_cols_val
+#define EN_col_len(col) \
+ zo_data.objdata_u.en_data.en_cols.en_cols_val[(col)].ec_value.ec_value_len
+#define EN_col_flags(col) \
+ zo_data.objdata_u.en_data.en_cols.en_cols_val[(col)].ec_flags
+#define EN_col(col) \
+ zo_data.objdata_u.en_data.en_cols.en_cols_val[(col)].ec_value.ec_value_val
+
+/*
+ * Macros which extract the Alias, Expansion, Comments, or Options column
+ * of an nis alias table object
+ */
+#define ALIAS(obj) ((obj)->EN_col(ALIAS_COL))
+#define EXPN(obj) ((obj)->EN_col(EXPANSION_COL))
+#define COMMENTS(obj) ((obj)->EN_col(COMMENTS_COL))
+#define OPTIONS(obj) ((obj)->EN_col(OPTIONS_COL))
+
+#define TA_val(col) zo_data.objdata_u.ta_data.ta_cols.ta_cols_val[(col)]
+
+extern int check_table(nis_name mapname, nis_name domain);
+
+extern void nis_mailias_add(nis_mailias a, nis_name alias_map, nis_name domain);
+
+extern void nis_mailias_change(nis_mailias a, nis_name alias_map,
+ nis_name domain);
+
+extern void nis_mailias_delete(nis_mailias a, nis_name alias_map,
+ nis_name domain);
+
+extern void nis_mailias_edit(FILE *fp, nis_name map, nis_name domain);
+
+extern void nis_mailias_init(nis_name map, nis_name domain);
+
+extern void nis_mailias_list(FILE *fp, nis_name map, nis_name domain);
+
+extern nis_result *nis_mailias_match(char *name, nis_name map,
+ nis_name domain, int qtype);
+
+extern nis_object *mailias_make_entry(struct nis_mailias a,
+ nis_name map, nis_name domain);
+
+extern void mailias_print(FILE *fp, nis_object *obj);
+
+extern int print_comments; /* Tells us whether to print comments and OPTIONS */
+int print_comments;