summaryrefslogtreecommitdiffstats
path: root/source/param
diff options
context:
space:
mode:
authorVolker Lendecke <vlendec@samba.org>2006-07-14 22:06:38 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 11:19:21 -0500
commitc5e393d5eda4e13a844171d9ff319d1f1bac3d84 (patch)
tree908e83f669df590057b0a5dcecc0697317240f89 /source/param
parent6e98f8d6c6cc126b0d27ac574c128be96e50abf3 (diff)
downloadsamba-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')
-rw-r--r--source/param/loadparm.c59
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.
********************************************************************/