summaryrefslogtreecommitdiff
path: root/lib/ypxfrd.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ypxfrd.h')
-rw-r--r--lib/ypxfrd.h111
1 files changed, 111 insertions, 0 deletions
diff --git a/lib/ypxfrd.h b/lib/ypxfrd.h
new file mode 100644
index 0000000..b5f37b4
--- /dev/null
+++ b/lib/ypxfrd.h
@@ -0,0 +1,111 @@
+/* Copyright (c) 2000 Thorsten Kukuk
+ Author: Thorsten Kukuk <kukuk@suse.de>
+
+ The YP Server is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ version 2 as published by the Free Software Foundation.
+
+ The YP Server is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public
+ License along with the YP Server; see the file COPYING. If
+ not, write to the Free Software Foundation, Inc., 51 Franklin Street,
+ Suite 500, Boston, MA 02110-1335, USA. */
+
+#ifndef _LIB_YPXFRD_H_
+#define _LIB_YPXFRD_H_
+
+#include <rpc/rpc.h>
+
+#define YPXFRBLOCK 32767
+
+enum xfrstat {
+ XFR_REQUEST_OK = 1,
+ XFR_DENIED = 2,
+ XFR_NOFILE = 3,
+ XFR_ACCESS = 4,
+ XFR_BADDB = 5,
+ XFR_READ_OK = 6,
+ XFR_READ_ERR = 7,
+ XFR_DONE = 8,
+ XFR_DB_ENDIAN_MISMATCH = 9,
+ XFR_DB_TYPE_MISMATCH = 10
+};
+typedef enum xfrstat xfrstat;
+
+enum xfr_db_type {
+ XFR_DB_ASCII = 1,
+ XFR_DB_BSD_HASH = 2,
+ XFR_DB_BSD_BTREE = 3,
+ XFR_DB_BSD_RECNO = 4,
+ XFR_DB_BSD_MPOOL = 5,
+ XFR_DB_BSD_NDBM = 6,
+ XFR_DB_GNU_GDBM = 7,
+ XFR_DB_DBM = 8,
+ XFR_DB_NDBM = 9,
+ XFR_DB_OPAQUE = 10,
+ XFR_DB_ANY = 11,
+ XFR_DB_UNKNOWN = 12,
+ XFR_DB_GNU_GDBM64 = 13,
+ XFR_DB_QDBM = 14,
+ XFR_DB_TC = 15
+};
+typedef enum xfr_db_type xfr_db_type;
+
+enum xfr_byte_order {
+ XFR_ENDIAN_BIG = 1,
+ XFR_ENDIAN_LITTLE = 2,
+ XFR_ENDIAN_ANY = 3
+};
+typedef enum xfr_byte_order xfr_byte_order;
+
+typedef char *xfrdomain;
+typedef char *xfrmap;
+typedef char *xfrmap_filename;
+
+struct ypxfr_mapname {
+ xfrmap xfrmap;
+ xfrdomain xfrdomain;
+ xfrmap_filename xfrmap_filename;
+ xfr_db_type xfr_db_type;
+ xfr_byte_order xfr_byte_order;
+};
+typedef struct ypxfr_mapname ypxfr_mapname;
+
+struct xfr {
+ bool_t ok;
+ union {
+ struct {
+ u_int xfrblock_buf_len;
+ char *xfrblock_buf_val;
+ } xfrblock_buf;
+ xfrstat xfrstat;
+ } xfr_u;
+};
+typedef struct xfr xfr;
+
+#define YPXFRD_FREEBSD_PROG 600100069
+#define YPXFRD_FREEBSD_VERS 1
+
+#define YPXFRD_GETMAP 1
+extern struct xfr *ypxfrd_getmap_1 (ypxfr_mapname *, CLIENT *);
+extern struct xfr *ypxfrd_getmap_1_svc (ypxfr_mapname *, struct svc_req *);
+extern void ypxfrd_freebsd_prog_1 (struct svc_req *, register SVCXPRT *);
+extern int ypxfrd_freebsd_prog_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
+
+extern bool_t xdr_xfrstat (XDR *, xfrstat*);
+extern bool_t xdr_xfr_db_type (XDR *, xfr_db_type*);
+extern bool_t xdr_xfr_byte_order (XDR *, xfr_byte_order*);
+extern bool_t xdr_xfrdomain (XDR *, xfrdomain*);
+extern bool_t xdr_xfrmap (XDR *, xfrmap*);
+extern bool_t xdr_xfrmap_filename (XDR *, xfrmap_filename*);
+extern bool_t xdr_xfrstat (XDR *, xfrstat*);
+extern bool_t xdr_xfr_db_type (XDR *, xfr_db_type*);
+extern bool_t xdr_xfr_byte_order (XDR *, xfr_byte_order*);
+extern bool_t xdr_ypxfr_mapname (XDR *, ypxfr_mapname*);
+extern bool_t xdr_xfr (XDR *, xfr*);
+
+#endif /* !_LIB_YPXFRD_H_ */