mirror of
https://github.com/NLnetLabs/unbound.git
synced 2025-12-20 23:00:56 -05:00
- Expose the configured listening and outgoing interfaces, if any, as
a list of strings in the Python 'config_file' class instead of the current Swig object proxy; fixes #79.
This commit is contained in:
parent
63a5280f8f
commit
122dd6c11e
3 changed files with 33 additions and 2 deletions
|
|
@ -2,6 +2,9 @@
|
||||||
- Expose the script filename in the Python module environment 'mod_env'
|
- Expose the script filename in the Python module environment 'mod_env'
|
||||||
instead of the config_file structure which includes the linked list
|
instead of the config_file structure which includes the linked list
|
||||||
of scripts in a multi Python module setup; fixes #79.
|
of scripts in a multi Python module setup; fixes #79.
|
||||||
|
- Expose the configured listening and outgoing interfaces, if any, as
|
||||||
|
a list of strings in the Python 'config_file' class instead of the
|
||||||
|
current Swig object proxy; fixes #79.
|
||||||
|
|
||||||
13 October 2023: George
|
13 October 2023: George
|
||||||
- Better fix for infinite loop when reading multiple lines of input on
|
- Better fix for infinite loop when reading multiple lines of input on
|
||||||
|
|
|
||||||
|
|
@ -129,7 +129,7 @@ config_file
|
||||||
|
|
||||||
.. attribute:: ifs
|
.. attribute:: ifs
|
||||||
|
|
||||||
Interface description strings (IP addresses).
|
List of interface description strings (IP addresses).
|
||||||
|
|
||||||
.. attribute:: num_out_ifs
|
.. attribute:: num_out_ifs
|
||||||
|
|
||||||
|
|
@ -138,7 +138,7 @@ config_file
|
||||||
|
|
||||||
.. attribute:: out_ifs
|
.. attribute:: out_ifs
|
||||||
|
|
||||||
Outgoing interface description strings (IP addresses).
|
List of outgoing interface description strings (IP addresses).
|
||||||
|
|
||||||
.. attribute:: root_hints
|
.. attribute:: root_hints
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -86,6 +86,20 @@
|
||||||
}
|
}
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* converts an array of strings (char**) to a List of strings */
|
||||||
|
PyObject* CharArrayAsStringList(char** array, int len) {
|
||||||
|
PyObject* list;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
if(!array||len==0) return PyList_New(0);
|
||||||
|
|
||||||
|
list = PyList_New(len);
|
||||||
|
for (i=0; i < len; i++) {
|
||||||
|
PyList_SET_ITEM(list, i, PyString_FromString(array[i]));
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
%}
|
%}
|
||||||
|
|
||||||
/* ************************************************************************************ *
|
/* ************************************************************************************ *
|
||||||
|
|
@ -952,6 +966,8 @@ struct config_str2list {
|
||||||
/* ************************************************************************************ *
|
/* ************************************************************************************ *
|
||||||
Structure config_file
|
Structure config_file
|
||||||
* ************************************************************************************ */
|
* ************************************************************************************ */
|
||||||
|
%ignore config_file::ifs;
|
||||||
|
%ignore config_file::out_ifs;
|
||||||
%ignore config_file::python_script;
|
%ignore config_file::python_script;
|
||||||
struct config_file {
|
struct config_file {
|
||||||
int verbosity;
|
int verbosity;
|
||||||
|
|
@ -1036,8 +1052,20 @@ struct config_file {
|
||||||
struct config_strlist* python_script;
|
struct config_strlist* python_script;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
%inline %{
|
||||||
|
PyObject* _get_ifs_tuple(struct config_file* cfg) {
|
||||||
|
return CharArrayAsStringList(cfg->ifs, cfg->num_ifs);
|
||||||
|
}
|
||||||
|
PyObject* _get_ifs_out_tuple(struct config_file* cfg) {
|
||||||
|
return CharArrayAsStringList(cfg->out_ifs, cfg->num_out_ifs);
|
||||||
|
}
|
||||||
|
%}
|
||||||
|
|
||||||
%extend config_file {
|
%extend config_file {
|
||||||
%pythoncode %{
|
%pythoncode %{
|
||||||
|
ifs = property(_unboundmodule._get_ifs_tuple)
|
||||||
|
out_ifs = property(_unboundmodule._get_ifs_out_tuple)
|
||||||
|
|
||||||
def _deprecated_python_script(self): return "cfg.python_script is deprecated, you can use `mod_env['script']` instead."
|
def _deprecated_python_script(self): return "cfg.python_script is deprecated, you can use `mod_env['script']` instead."
|
||||||
python_script = property(_deprecated_python_script)
|
python_script = property(_deprecated_python_script)
|
||||||
%}
|
%}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue