summaryrefslogtreecommitdiff
path: root/source4/param/param.i
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2007-12-17 11:12:36 +0100
committerStefan Metzmacher <metze@samba.org>2007-12-21 05:51:06 +0100
commit32f439bfa458f7936b507cb5a1e3c74bcb8c68bf (patch)
tree417c255fcd68bfc164e0916772060000fa19309a /source4/param/param.i
parente956111917a432d5ea1a7c5cc2fef6c0c3dcbcc1 (diff)
downloadsamba-32f439bfa458f7936b507cb5a1e3c74bcb8c68bf.tar.gz
samba-32f439bfa458f7936b507cb5a1e3c74bcb8c68bf.tar.bz2
samba-32f439bfa458f7936b507cb5a1e3c74bcb8c68bf.zip
r26503: Change order of arguments in param interface so it's easier to make the
section name optional. Fix several smaller bits and pieces in the Python code. (This used to be commit 1b89311e5fa4fcde060df50e580dc221205cc8ca)
Diffstat (limited to 'source4/param/param.i')
-rw-r--r--source4/param/param.i33
1 files changed, 28 insertions, 5 deletions
diff --git a/source4/param/param.i b/source4/param/param.i
index d013fa7ae5..3d5deba5ff 100644
--- a/source4/param/param.i
+++ b/source4/param/param.i
@@ -29,6 +29,7 @@ typedef struct param_context param;
typedef struct loadparm_context loadparm_context;
typedef struct loadparm_service loadparm_service;
typedef struct param_section param_section;
+typedef struct param_opt param_opt;
%}
%import "stdint.i"
@@ -55,6 +56,7 @@ typedef struct loadparm_context {
const char *configfile() { return lp_configfile($self); }
bool is_mydomain(const char *domain) { return lp_is_mydomain($self, domain); }
bool is_myname(const char *name) { return lp_is_myname($self, name); }
+ int use(struct param_context *param) { return param_use($self, param); }
}
} loadparm_context;
@@ -76,10 +78,21 @@ typedef struct param_context {
%extend {
param(TALLOC_CTX *mem_ctx) { return param_init(mem_ctx); }
struct param_section *get_section(const char *name);
- struct param_opt *get(const char *section_name, const char *name);
- int set_string(const char *section, const char *param, const char *value);
+ struct param_section *add_section(const char *name);
+ struct param_opt *get(const char *name, const char *section_name="global");
+ const char *get_string(const char *name, const char *section_name="global");
+ int set_string(const char *param, const char *value, const char *section="global");
+ int set(const char *param, PyObject *ob, const char *section_name="global")
+ {
+ struct param_opt *opt = param_get_add($self, param, section_name);
+
+ talloc_free(opt->value);
+ opt->value = talloc_strdup(opt, PyObject_Str(ob));
+
+ return 0;
+ }
+
int read(const char *fn);
- int use(struct param_context *);
int write(const char *fn);
}
%pythoncode {
@@ -91,6 +104,16 @@ typedef struct param_context {
}
} param;
+%talloctype(param_opt);
+
+typedef struct param_opt {
+ %extend {
+#ifdef SWIGPYTHON
+ const char *__str__() { return $self->value; }
+#endif
+ }
+} param_opt;
+
%talloctype(param);
typedef struct param_section {
%extend {
@@ -98,9 +121,9 @@ typedef struct param_section {
}
%pythoncode {
def __getitem__(self, name):
- ret = self.get_section(name)
+ ret = self.get(name)
if ret is None:
- raise KeyError("No such section %s" % name)
+ raise KeyError("No such option %s" % name)
return ret
}
} param_section;