diff options
author | Volker Lendecke <vlendec@samba.org> | 2006-07-14 22:06:38 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 11:19:21 -0500 |
commit | c5e393d5eda4e13a844171d9ff319d1f1bac3d84 (patch) | |
tree | 908e83f669df590057b0a5dcecc0697317240f89 /source/param/loadparm.c | |
parent | 6e98f8d6c6cc126b0d27ac574c128be96e50abf3 (diff) | |
download | samba-c5e393d5eda4e13a844171d9ff319d1f1bac3d84.tar.gz samba-c5e393d5eda4e13a844171d9ff319d1f1bac3d84.tar.xz samba-c5e393d5eda4e13a844171d9ff319d1f1bac3d84.zip |
r17039: Eliminate snum from enumshares and getshareinfo. Get rid of some pstrings.
Volker
Diffstat (limited to 'source/param/loadparm.c')
-rw-r--r-- | source/param/loadparm.c | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/source/param/loadparm.c b/source/param/loadparm.c index 89b07b4cda0..b4b6c2bd108 100644 --- a/source/param/loadparm.c +++ b/source/param/loadparm.c @@ -5137,6 +5137,65 @@ BOOL share_defined(const char *service_name) return (lp_servicenumber(service_name) != -1); } +struct share_params *get_share_params(TALLOC_CTX *mem_ctx, + const char *sharename) +{ + struct share_params *result; + fstring sname; + int snum; + + fstrcpy(sname, sharename); + + snum = find_service(sname); + if (snum < 0) { + return NULL; + } + + if (!(result = TALLOC_P(mem_ctx, struct share_params))) { + DEBUG(0, ("talloc failed\n")); + return NULL; + } + + result->service = snum; + return result; +} + +struct share_iterator *share_list_all(TALLOC_CTX *mem_ctx) +{ + struct share_iterator *result; + + if (!(result = TALLOC_P(mem_ctx, struct share_iterator))) { + DEBUG(0, ("talloc failed\n")); + return NULL; + } + + result->next_id = 0; + return result; +} + +struct share_params *next_share(struct share_iterator *list) +{ + struct share_params *result; + + while (!lp_snum_ok(list->next_id) && + (list->next_id < lp_numservices())) { + list->next_id += 1; + } + + if (list->next_id >= lp_numservices()) { + return NULL; + } + + if (!(result = TALLOC_P(list, struct share_params))) { + DEBUG(0, ("talloc failed\n")); + return NULL; + } + + result->service = list->next_id; + list->next_id += 1; + return result; +} + /******************************************************************* A useful volume label function. ********************************************************************/ |