Skip to content
Snippets Groups Projects
Commit f6e03f1a authored by Russell Jancewicz's avatar Russell Jancewicz
Browse files

Merge pull request #19 from russjancewicz/development

Development
parents b60ee196 5e7e39f6
Branches
Tags
No related merge requests found
......@@ -64,6 +64,40 @@ static int PyKAdminObject_init(PyKAdminObject *self, PyObject *args, PyObject *k
return 0;
}
static PyObject *PyKAdminObject_principal_exists(PyKAdminObject *self, PyObject *args, PyObject *kwds) {
kadm5_ret_t retval = KADM5_OK;
krb5_error_code code = 0;
krb5_principal princ = NULL;
char *client_name = NULL;
PyObject *result = NULL;
kadm5_principal_ent_rec entry;
if (!PyArg_ParseTuple(args, "s", &client_name))
return NULL;
if (self->server_handle) {
code = krb5_parse_name(self->context, client_name, &princ);
if (code) { PyKAdmin_RETURN_ERROR(retval, "krb5_parse_name"); }
retval = kadm5_get_principal(self->server_handle, princ, &entry, KADM5_PRINCIPAL);
if (retval == KADM5_OK) { result = Py_True; }
else if (retval == KADM5_UNK_PRINC) { result = Py_False; }
else { PyKAdmin_RETURN_ERROR(retval, "kadm5_delete_principal"); }
}
krb5_free_principal(self->context, princ);
kadm5_free_principal_ent(self->server_handle, &entry);
Py_XINCREF(result);
return result;
}
static PyObject *PyKAdminObject_delete_principal(PyKAdminObject *self, PyObject *args, PyObject *kwds) {
......@@ -368,6 +402,8 @@ static PyMethodDef PyKAdminObject_methods[] = {
{"delprinc", (PyCFunction)PyKAdminObject_delete_principal, METH_VARARGS, ""},
{"delete_principal", (PyCFunction)PyKAdminObject_delete_principal, METH_VARARGS, ""},
{"principal_exists", (PyCFunction)PyKAdminObject_principal_exists, METH_VARARGS, ""},
// kadmin modify princ, rename princ
{"getprinc", (PyCFunction)PyKAdminObject_get_principal, METH_VARARGS, ""},
......
......@@ -189,9 +189,9 @@ char **_kadmin_dict_to_db_args(PyObject *dict) {
Py_ssize_t index = 0;
Py_ssize_t position = 0;
Py_ssize_t length = PyDict_Size(dict) + 1;
if (dict) {
if (dict) {
Py_ssize_t length = PyDict_Size(dict) + 1;
db_args = calloc(length, sizeof(intptr_t));
......@@ -256,7 +256,8 @@ static PyKAdminObject *_kadmin_local(PyObject *self, PyObject *args) {
if (!PyArg_ParseTuple(args, "|O!", &PyDict_Type, &db_args_dict))
return NULL;
db_args = _kadmin_dict_to_db_args(db_args_dict);
if (db_args_dict)
db_args = _kadmin_dict_to_db_args(db_args_dict);
kadm5_config_params *params = calloc(0x1, sizeof(kadm5_config_params));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment