summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/python/py_common.c17
-rw-r--r--source3/python/py_common_proto.h1
2 files changed, 18 insertions, 0 deletions
diff --git a/source3/python/py_common.c b/source3/python/py_common.c
index 61eacced27..85305d027e 100644
--- a/source3/python/py_common.c
+++ b/source3/python/py_common.c
@@ -197,3 +197,20 @@ struct cli_state *open_pipe_creds(char *server, PyObject *creds,
return cli;
}
+
+/* Return true if a dictionary contains a "level" key with an integer
+ value. Set the value if so. */
+
+BOOL get_level_value(PyObject *dict, uint32 *level)
+{
+ PyObject *obj;
+
+ if (!(obj = PyDict_GetItemString(dict, "level")) ||
+ !PyInt_Check(obj))
+ return False;
+
+ if (level)
+ *level = PyInt_AsLong(obj);
+
+ return True;
+}
diff --git a/source3/python/py_common_proto.h b/source3/python/py_common_proto.h
index dd823dd4c0..992d444fa4 100644
--- a/source3/python/py_common_proto.h
+++ b/source3/python/py_common_proto.h
@@ -14,6 +14,7 @@ PyObject *set_debuglevel(PyObject *self, PyObject *args);
PyObject *py_setup_logging(PyObject *self, PyObject *args, PyObject *kw);
struct cli_state *open_pipe_creds(char *server, PyObject *creds,
cli_pipe_fn *connect_fn, char **errstr);
+BOOL get_level_value(PyObject *dict, uint32 *level);
/* The following definitions come from python/py_ntsec.c */