X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=support%2Finclude%2Fexportfs.h;h=431b5ce7701c0036668d8a61b31367f7b654c44f;hp=3ca248e0ee4f86eed8a29e24aa1aa8d29742e8ef;hb=e3f2d2262fed12f0f6b77c5ac1c4072d82f1e754;hpb=82d42dffa84fb884684f75769ca13668c5188a5e diff --git a/support/include/exportfs.h b/support/include/exportfs.h index 3ca248e..431b5ce 100644 --- a/support/include/exportfs.h +++ b/support/include/exportfs.h @@ -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 */