]> git.decadent.org.uk Git - nfs-utils.git/blobdiff - support/include/exportfs.h
Make warning about host matching multiple exports more helpful.
[nfs-utils.git] / support / include / exportfs.h
index 3ca248e0ee4f86eed8a29e24aa1aa8d29742e8ef..431b5ce7701c0036668d8a61b31367f7b654c44f 100644 (file)
@@ -19,9 +19,17 @@ enum {
        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];
@@ -39,13 +47,15 @@ typedef struct mexport {
        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 */
+                               m_changed  : 1, /* options (may) have changed */
+                               m_warned   : 1; /* warned about multiple exports
+                                                * matching one client */
 } nfs_export;
 
 extern nfs_client *            clientlist[MCL_MAXTYPES];
 extern nfs_export *            exportlist[MCL_MAXTYPES];
 
-nfs_client *                   client_lookup(char *hname);
+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 *);
@@ -54,14 +64,16 @@ 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);
+nfs_export *                   export_lookup(char *hname, char *path, int caconical);
 nfs_export *                   export_find(struct hostent *, char *path);
-struct exportent *             export_allowed(struct hostent *, char *path);
-nfs_export *                   export_create(struct exportent *);
+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 *);
@@ -77,4 +89,7 @@ int                           rmtab_read(void);
 
 struct nfskey *                        key_lookup(char *hname);
 
+/* Record export error.  */
+extern int export_errno;
+
 #endif /* EXPORTFS_H */