X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=support%2Fexport%2Fexport.c;h=6b1d0459b78806f959348d8cf0665f3f06311f0b;hb=a1f2ca622f7f6061b8eea1c0eda5b46906b360b0;hp=eca833c6762f855914748a30cab617c099d78cbc;hpb=53928c0166dcc0acceaa995edb8551b48968b5dd;p=nfs-utils.git diff --git a/support/export/export.c b/support/export/export.c index eca833c..6b1d045 100644 --- a/support/export/export.c +++ b/support/export/export.c @@ -31,15 +31,21 @@ 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); } @@ -81,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) @@ -260,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; @@ -345,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; }