]> git.decadent.org.uk Git - nfs-utils.git/blobdiff - support/export/export.c
Merge branch 'sid'
[nfs-utils.git] / support / export / export.c
index 1800efd1622d1d4ddb9221a0844718adc0c67956..6b1d0459b78806f959348d8cf0665f3f06311f0b 100644 (file)
@@ -24,21 +24,28 @@ static int export_hash(char *);
 
 static void    export_init(nfs_export *exp, nfs_client *clp,
                                        struct exportent *nep);
+static void    export_add(nfs_export *exp);
 static int     export_check(const nfs_export *exp, const struct addrinfo *ai,
                                const char *path);
 static nfs_export *
                export_allowed_internal(const struct addrinfo *ai,
                                const char *path);
 
+void
+exportent_release(struct exportent *eep)
+{
+       xfree(eep->e_squids);
+       xfree(eep->e_sqgids);
+       free(eep->e_mountpoint);
+       free(eep->e_fslocdata);
+       free(eep->e_uuid);
+       xfree(eep->e_hostname);
+}
+
 static void
 export_free(nfs_export *exp)
 {
-       xfree(exp->m_export.e_squids);
-       xfree(exp->m_export.e_sqgids);
-       free(exp->m_export.e_mountpoint);
-       free(exp->m_export.e_fslocdata);
-
-       xfree(exp->m_export.e_hostname);
+       exportent_release(&exp->m_export);
        xfree(exp);
 }
 
@@ -80,8 +87,13 @@ export_read(char *fname)
        endexportent();
 }
 
-/*
- * Create an in-core export struct from an export entry.
+/**
+ * export_create - create an in-core nfs_export record from an export entry
+ * @xep: export entry to lookup
+ * @canonical: if set, e_hostname is known to be canonical DNS name
+ *
+ * Returns a freshly instantiated export record, or NULL if
+ * a problem occurred.
  */
 nfs_export *
 export_create(struct exportent *xep, int canonical)
@@ -151,10 +163,7 @@ export_dup(nfs_export *exp, const struct addrinfo *ai)
        return new;
 }
 
-/*
- * Add export entry to hash table
- */
-void 
+static void
 export_add(nfs_export *exp)
 {
        exp_hash_table *p_tbl;
@@ -262,11 +271,17 @@ export_allowed(const struct addrinfo *ai, const char *path)
        return NULL;
 }
 
-/*
- * Search hash table for export entry. 
- */  
+/**
+ * export_lookup - search hash table for export entry
+ * @hname: '\0'-terminated ASCII string containing client hostname to look for
+ * @path: '\0'-terminated ASCII string containing export path to look for
+ * @canonical: if set, @hname is known to be canonical DNS name
+ *
+ * Returns a pointer to nfs_export record matching @hname and @path,
+ * or NULL if the export was not found.
+ */
 nfs_export *
-export_lookup(char *hname, char *path, int canonical) 
+export_lookup(char *hname, char *path, int canonical)
 {
        nfs_client *clp;
        nfs_export *exp;
@@ -347,7 +362,7 @@ strtoint(char *str)
 static int 
 export_hash(char *str)
 {
-       int num = strtoint(str);
+       unsigned int num = strtoint(str);
 
        return num % HASH_TABLE_SIZE;
 }