1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
/*
* support/include/exportfs.h
*
* Declarations for exportfs and mountd
*
* Copyright (C) 1995, 1996 Olaf Kirch <okir@monad.swb.de>
*/
#ifndef EXPORTFS_H
#define EXPORTFS_H
#include <netdb.h>
#include "nfslib.h"
enum {
MCL_FQDN = 0,
MCL_SUBNETWORK,
MCL_IPADDR = MCL_SUBNETWORK,
MCL_WILDCARD,
MCL_NETGROUP,
MCL_ANONYMOUS,
MCL_GSS,
MCL_MAXTYPES
};
enum {
FSLOC_NONE = 0,
FSLOC_REFER,
FSLOC_REPLICA,
FSLOC_STUB
};
typedef struct mclient {
struct mclient * m_next;
char m_hostname[NFSCLNT_IDMAX+1];
int m_type;
int m_naddr;
struct in_addr m_addrlist[NFSCLNT_ADDRMAX];
int m_exported; /* exported to nfsd */
int m_count;
} nfs_client;
typedef struct mexport {
struct mexport * m_next;
struct mclient * m_client;
struct exportent m_export;
int m_exported; /* known to knfsd. -1 means not sure */
int m_xtabent : 1, /* xtab entry exists */
m_mayexport: 1, /* derived from xtabbed */
m_changed : 1; /* options (may) have changed */
} nfs_export;
extern nfs_client * clientlist[MCL_MAXTYPES];
extern nfs_export * exportlist[MCL_MAXTYPES];
nfs_client * client_lookup(char *hname, int canonical);
nfs_client * client_find(struct hostent *);
void client_add(nfs_client *);
nfs_client * client_dup(nfs_client *, struct hostent *);
int client_gettype(char *hname);
int client_check(nfs_client *, struct hostent *);
int client_match(nfs_client *, char *hname);
void client_release(nfs_client *);
void client_freeall(void);
char * client_compose(struct in_addr addr);
int client_member(char *client, char *name);
int export_read(char *fname);
void export_add(nfs_export *);
void export_reset(nfs_export *);
nfs_export * export_lookup(char *hname, char *path, int caconical);
nfs_export * export_find(struct hostent *, char *path);
nfs_export * export_allowed(struct hostent *, char *path);
nfs_export * export_create(struct exportent *, int canonical);
nfs_export * export_dup(nfs_export *, struct hostent *);
void export_freeall(void);
int export_export(nfs_export *);
int export_unexport(nfs_export *);
int xtab_mount_read(void);
int xtab_export_read(void);
int xtab_mount_write(void);
int xtab_export_write(void);
void xtab_append(nfs_export *);
int rmtab_read(void);
struct nfskey * key_lookup(char *hname);
/* Record export error. */
extern int export_errno;
#endif /* EXPORTFS_H */
|