#include <Python.h>
#include <pytalloc.h>
#include "includes.h"
+#include "python/py3compat.h"
#include "lib/util/talloc_stack.h"
#include "libcli/security/security.h"
#include "librpc/gen_ndr/idmap.h"
Py_RETURN_NONE;
}
- py_username = PyString_FromString(username);
+ py_username = PyStr_FromString(username);
talloc_free(frame);
return py_username;
}
TALLOC_CTX *frame = talloc_stackframe();
struct samu *sam_acct = (struct samu *)pytalloc_get_ptr(obj);
- PY_CHECK_TYPE(&PyString_Type, value, return -1;);
- if (!pdb_set_username(sam_acct, PyString_AsString(value), PDB_CHANGED)) {
+ PY_CHECK_TYPE(&PyStr_Type, value, return -1;);
+ if (!pdb_set_username(sam_acct, PyStr_AsString(value), PDB_CHANGED)) {
talloc_free(frame);
return -1;
}
Py_RETURN_NONE;
}
- py_domain = PyString_FromString(domain);
+ py_domain = PyStr_FromString(domain);
talloc_free(frame);
return py_domain;
}
TALLOC_CTX *frame = talloc_stackframe();
struct samu *sam_acct = (struct samu *)pytalloc_get_ptr(obj);
- PY_CHECK_TYPE(&PyString_Type, value, return -1;);
- if (!pdb_set_domain(sam_acct, PyString_AsString(value), PDB_CHANGED)) {
+ PY_CHECK_TYPE(&PyStr_Type, value, return -1;);
+ if (!pdb_set_domain(sam_acct, PyStr_AsString(value), PDB_CHANGED)) {
talloc_free(frame);
return -1;
}
Py_RETURN_NONE;
}
- py_nt_username = PyString_FromString(nt_username);
+ py_nt_username = PyStr_FromString(nt_username);
talloc_free(frame);
return py_nt_username;
}
TALLOC_CTX *frame = talloc_stackframe();
struct samu *sam_acct = (struct samu *)pytalloc_get_ptr(obj);
- PY_CHECK_TYPE(&PyString_Type, value, return -1;);
- if (!pdb_set_nt_username(sam_acct, PyString_AsString(value), PDB_CHANGED)) {
+ PY_CHECK_TYPE(&PyStr_Type, value, return -1;);
+ if (!pdb_set_nt_username(sam_acct, PyStr_AsString(value), PDB_CHANGED)) {
talloc_free(frame);
return -1;
}
Py_RETURN_NONE;
}
- py_full_name = PyString_FromString(full_name);
+ py_full_name = PyStr_FromString(full_name);
talloc_free(frame);
return py_full_name;
}
TALLOC_CTX *frame = talloc_stackframe();
struct samu *sam_acct = (struct samu *)pytalloc_get_ptr(obj);
- PY_CHECK_TYPE(&PyString_Type, value, return -1;);
- if (!pdb_set_fullname(sam_acct, PyString_AsString(value), PDB_CHANGED)) {
+ PY_CHECK_TYPE(&PyStr_Type, value, return -1;);
+ if (!pdb_set_fullname(sam_acct, PyStr_AsString(value), PDB_CHANGED)) {
talloc_free(frame);
return -1;
}
Py_RETURN_NONE;
}
- py_home_dir = PyString_FromString(home_dir);
+ py_home_dir = PyStr_FromString(home_dir);
talloc_free(frame);
return py_home_dir;
}
TALLOC_CTX *frame = talloc_stackframe();
struct samu *sam_acct = (struct samu *)pytalloc_get_ptr(obj);
- PY_CHECK_TYPE(&PyString_Type, value, return -1;);
- if (!pdb_set_homedir(sam_acct, PyString_AsString(value), PDB_CHANGED)) {
+ PY_CHECK_TYPE(&PyStr_Type, value, return -1;);
+ if (!pdb_set_homedir(sam_acct, PyStr_AsString(value), PDB_CHANGED)) {
talloc_free(frame);
return -1;
}
Py_RETURN_NONE;
}
- py_dir_drive = PyString_FromString(dir_drive);
+ py_dir_drive = PyStr_FromString(dir_drive);
talloc_free(frame);
return py_dir_drive;
}
TALLOC_CTX *frame = talloc_stackframe();
struct samu *sam_acct = (struct samu *)pytalloc_get_ptr(obj);
- PY_CHECK_TYPE(&PyString_Type, value, return -1;);
- if (!pdb_set_dir_drive(sam_acct, PyString_AsString(value), PDB_CHANGED)) {
+ PY_CHECK_TYPE(&PyStr_Type, value, return -1;);
+ if (!pdb_set_dir_drive(sam_acct, PyStr_AsString(value), PDB_CHANGED)) {
talloc_free(frame);
return -1;
}
Py_RETURN_NONE;
}
- py_logon_script = PyString_FromString(logon_script);
+ py_logon_script = PyStr_FromString(logon_script);
talloc_free(frame);
return py_logon_script;
}
TALLOC_CTX *frame = talloc_stackframe();
struct samu *sam_acct = (struct samu *)pytalloc_get_ptr(obj);
- PY_CHECK_TYPE(&PyString_Type, value, return -1;);
- if (!pdb_set_logon_script(sam_acct, PyString_AsString(value), PDB_CHANGED)) {
+ PY_CHECK_TYPE(&PyStr_Type, value, return -1;);
+ if (!pdb_set_logon_script(sam_acct, PyStr_AsString(value), PDB_CHANGED)) {
talloc_free(frame);
return -1;
}
Py_RETURN_NONE;
}
- py_profile_path = PyString_FromString(profile_path);
+ py_profile_path = PyStr_FromString(profile_path);
talloc_free(frame);
return py_profile_path;
}
TALLOC_CTX *frame = talloc_stackframe();
struct samu *sam_acct = (struct samu *)pytalloc_get_ptr(obj);
- PY_CHECK_TYPE(&PyString_Type, value, return -1;);
- if (!pdb_set_profile_path(sam_acct, PyString_AsString(value), PDB_CHANGED)) {
+ PY_CHECK_TYPE(&PyStr_Type, value, return -1;);
+ if (!pdb_set_profile_path(sam_acct, PyStr_AsString(value), PDB_CHANGED)) {
talloc_free(frame);
return -1;
}
Py_RETURN_NONE;
}
- py_acct_desc = PyString_FromString(acct_desc);
+ py_acct_desc = PyStr_FromString(acct_desc);
talloc_free(frame);
return py_acct_desc;
}
TALLOC_CTX *frame = talloc_stackframe();
struct samu *sam_acct = (struct samu *)pytalloc_get_ptr(obj);
- PY_CHECK_TYPE(&PyString_Type, value, return -1;);
- if (!pdb_set_acct_desc(sam_acct, PyString_AsString(value), PDB_CHANGED)) {
+ PY_CHECK_TYPE(&PyStr_Type, value, return -1;);
+ if (!pdb_set_acct_desc(sam_acct, PyStr_AsString(value), PDB_CHANGED)) {
talloc_free(frame);
return -1;
}
Py_RETURN_NONE;
}
- py_workstations = PyString_FromString(workstations);
+ py_workstations = PyStr_FromString(workstations);
talloc_free(frame);
return py_workstations;
}
TALLOC_CTX *frame = talloc_stackframe();
struct samu *sam_acct = (struct samu *)pytalloc_get_ptr(obj);
- PY_CHECK_TYPE(&PyString_Type, value, return -1;);
- if (!pdb_set_workstations(sam_acct, PyString_AsString(value), PDB_CHANGED)) {
+ PY_CHECK_TYPE(&PyStr_Type, value, return -1;);
+ if (!pdb_set_workstations(sam_acct, PyStr_AsString(value), PDB_CHANGED)) {
talloc_free(frame);
return -1;
}
Py_RETURN_NONE;
}
- py_comment = PyString_FromString(comment);
+ py_comment = PyStr_FromString(comment);
talloc_free(frame);
return py_comment;
}
TALLOC_CTX *frame = talloc_stackframe();
struct samu *sam_acct = (struct samu *)pytalloc_get_ptr(obj);
- PY_CHECK_TYPE(&PyString_Type, value, return -1;);
- if (!pdb_set_comment(sam_acct, PyString_AsString(value), PDB_CHANGED)) {
+ PY_CHECK_TYPE(&PyStr_Type, value, return -1;);
+ if (!pdb_set_comment(sam_acct, PyStr_AsString(value), PDB_CHANGED)) {
talloc_free(frame);
return -1;
}
Py_RETURN_NONE;
}
- py_munged_dial = PyString_FromString(munged_dial);
+ py_munged_dial = PyStr_FromString(munged_dial);
talloc_free(frame);
return py_munged_dial;
}
TALLOC_CTX *frame = talloc_stackframe();
struct samu *sam_acct = (struct samu *)pytalloc_get_ptr(obj);
- PY_CHECK_TYPE(&PyString_Type, value, return -1;);
- if (!pdb_set_munged_dial(sam_acct, PyString_AsString(value), PDB_CHANGED)) {
+ PY_CHECK_TYPE(&PyStr_Type, value, return -1;);
+ if (!pdb_set_munged_dial(sam_acct, PyStr_AsString(value), PDB_CHANGED)) {
talloc_free(frame);
return -1;
}
Py_RETURN_NONE;
}
- py_lm_pw = PyString_FromStringAndSize(lm_pw, LM_HASH_LEN);
+ py_lm_pw = PyBytes_FromStringAndSize(lm_pw, LM_HASH_LEN);
talloc_free(frame);
return py_lm_pw;
}
TALLOC_CTX *frame = talloc_stackframe();
struct samu *sam_acct = (struct samu *)pytalloc_get_ptr(obj);
- PY_CHECK_TYPE(&PyString_Type, value, return -1;);
- if (!pdb_set_lanman_passwd(sam_acct, (uint8_t *)PyString_AsString(value), PDB_CHANGED)) {
+ PY_CHECK_TYPE(&PyBytes_Type, value, return -1;);
+ if (!pdb_set_lanman_passwd(sam_acct, (uint8_t *)PyBytes_AsString(value), PDB_CHANGED)) {
talloc_free(frame);
return -1;
}
Py_RETURN_NONE;
}
- py_nt_pw = PyString_FromStringAndSize(nt_pw, NT_HASH_LEN);
+ py_nt_pw = PyBytes_FromStringAndSize(nt_pw, NT_HASH_LEN);
talloc_free(frame);
return py_nt_pw;
}
TALLOC_CTX *frame = talloc_stackframe();
struct samu *sam_acct = (struct samu *)pytalloc_get_ptr(obj);
- if (!pdb_set_nt_passwd(sam_acct, (uint8_t *)PyString_AsString(value), PDB_CHANGED)) {
+ if (!pdb_set_nt_passwd(sam_acct, (uint8_t *)PyBytes_AsString(value), PDB_CHANGED)) {
talloc_free(frame);
return -1;
}
Py_RETURN_NONE;
}
- py_nt_pw_his = PyString_FromStringAndSize(nt_pw_his, hist_len*PW_HISTORY_ENTRY_LEN);
+ py_nt_pw_his = PyBytes_FromStringAndSize(nt_pw_his, hist_len*PW_HISTORY_ENTRY_LEN);
talloc_free(frame);
return py_nt_pw_his;
}
Py_ssize_t len;
uint32_t hist_len;
- PyString_AsStringAndSize(value, &nt_pw_his, &len);
+ PyBytes_AsStringAndSize(value, &nt_pw_his, &len);
hist_len = len / PW_HISTORY_ENTRY_LEN;
if (!pdb_set_pw_history(sam_acct, (uint8_t *)nt_pw_his, hist_len, PDB_CHANGED)) {
talloc_free(frame);
Py_RETURN_NONE;
}
- py_plaintext_pw = PyString_FromString(plaintext_pw);
+ py_plaintext_pw = PyStr_FromString(plaintext_pw);
talloc_free(frame);
return py_plaintext_pw;
}
TALLOC_CTX *frame = talloc_stackframe();
struct samu *sam_acct = (struct samu *)pytalloc_get_ptr(obj);
- if (!pdb_set_plaintext_passwd(sam_acct, PyString_AsString(value))) {
+ if (!pdb_set_plaintext_passwd(sam_acct, PyStr_AsString(value))) {
talloc_free(frame);
return -1;
}
py_nt_name = Py_None;
Py_INCREF(py_nt_name);
} else {
- py_nt_name = PyString_FromString(group_map->nt_name);
+ py_nt_name = PyStr_FromString(group_map->nt_name);
}
talloc_free(frame);
return py_nt_name;
TALLOC_CTX *frame = talloc_stackframe();
GROUP_MAP *group_map = (GROUP_MAP *)pytalloc_get_ptr(obj);
- PY_CHECK_TYPE(&PyString_Type, value, return -1;);
+ PY_CHECK_TYPE(&PyStr_Type, value, return -1;);
if (value == Py_None) {
fstrcpy(group_map->nt_name, NULL);
} else {
- fstrcpy(group_map->nt_name, PyString_AsString(value));
+ fstrcpy(group_map->nt_name, PyStr_AsString(value));
}
talloc_free(frame);
return 0;
py_comment = Py_None;
Py_INCREF(py_comment);
} else {
- py_comment = PyString_FromString(group_map->comment);
+ py_comment = PyStr_FromString(group_map->comment);
}
talloc_free(frame);
return py_comment;
TALLOC_CTX *frame = talloc_stackframe();
GROUP_MAP *group_map = (GROUP_MAP *)pytalloc_get_ptr(obj);
- PY_CHECK_TYPE(&PyString_Type, value, return -1;);
+ PY_CHECK_TYPE(&PyStr_Type, value, return -1;);
if (value == Py_None) {
fstrcpy(group_map->comment, NULL);
} else {
- fstrcpy(group_map->comment, PyString_AsString(value));
+ fstrcpy(group_map->comment, PyStr_AsString(value));
}
talloc_free(frame);
return 0;
return NULL;
}
- PyDict_SetItemString(py_domain_info, "name", PyString_FromString(domain_info->name));
- PyDict_SetItemString(py_domain_info, "dns_domain", PyString_FromString(domain_info->dns_domain));
- PyDict_SetItemString(py_domain_info, "dns_forest", PyString_FromString(domain_info->dns_forest));
+ PyDict_SetItemString(py_domain_info, "name", PyStr_FromString(domain_info->name));
+ PyDict_SetItemString(py_domain_info, "dns_domain", PyStr_FromString(domain_info->dns_domain));
+ PyDict_SetItemString(py_domain_info, "dns_forest", PyStr_FromString(domain_info->dns_forest));
PyDict_SetItemString(py_domain_info, "dom_sid", pytalloc_steal(dom_sid_Type, sid));
PyDict_SetItemString(py_domain_info, "guid", pytalloc_steal(guid_Type, guid));
}
PyDict_SetItemString(py_alias_info, "acct_name",
- PyString_FromString(alias_info->acct_name));
+ PyStr_FromString(alias_info->acct_name));
PyDict_SetItemString(py_alias_info, "acct_desc",
- PyString_FromString(alias_info->acct_desc));
+ PyStr_FromString(alias_info->acct_desc));
PyDict_SetItemString(py_alias_info, "rid",
PyInt_FromLong(alias_info->rid));
alias_sid = pytalloc_get_ptr(py_alias_sid);
- alias_info.acct_name = talloc_strdup(frame, PyString_AsString(PyDict_GetItemString(py_alias_info, "acct_name")));
+ alias_info.acct_name = talloc_strdup(frame, PyStr_AsString(PyDict_GetItemString(py_alias_info, "acct_name")));
if (alias_info.acct_name == NULL) {
PyErr_Format(py_pdb_error, "Unable to allocate memory");
talloc_free(frame);
return NULL;
}
- alias_info.acct_desc = talloc_strdup(frame, PyString_AsString(PyDict_GetItemString(py_alias_info, "acct_desc")));
+ alias_info.acct_desc = talloc_strdup(frame, PyStr_AsString(PyDict_GetItemString(py_alias_info, "acct_desc")));
if (alias_info.acct_desc == NULL) {
PyErr_Format(py_pdb_error, "Unable to allocate memory");
talloc_free(frame);
PyDict_SetItemString(py_dict, "idx", PyInt_FromLong(entry->idx));
PyDict_SetItemString(py_dict, "rid", PyInt_FromLong(entry->rid));
PyDict_SetItemString(py_dict, "acct_flags", PyInt_FromLong(entry->acct_flags));
- PyDict_SetItemString(py_dict, "account_name", PyString_FromString(entry->account_name));
- PyDict_SetItemString(py_dict, "fullname", PyString_FromString(entry->fullname));
- PyDict_SetItemString(py_dict, "description", PyString_FromString(entry->description));
+ PyDict_SetItemString(py_dict, "account_name", PyStr_FromString(entry->account_name));
+ PyDict_SetItemString(py_dict, "fullname", PyStr_FromString(entry->fullname));
+ PyDict_SetItemString(py_dict, "description", PyStr_FromString(entry->description));
PyList_Append(py_userlist, py_dict);
}
}
PyDict_SetItemString(py_dict, "idx", PyInt_FromLong(entry->idx));
PyDict_SetItemString(py_dict, "rid", PyInt_FromLong(entry->rid));
PyDict_SetItemString(py_dict, "acct_flags", PyInt_FromLong(entry->acct_flags));
- PyDict_SetItemString(py_dict, "account_name", PyString_FromString(entry->account_name));
- PyDict_SetItemString(py_dict, "fullname", PyString_FromString(entry->fullname));
- PyDict_SetItemString(py_dict, "description", PyString_FromString(entry->description));
+ PyDict_SetItemString(py_dict, "account_name", PyStr_FromString(entry->account_name));
+ PyDict_SetItemString(py_dict, "fullname", PyStr_FromString(entry->fullname));
+ PyDict_SetItemString(py_dict, "description", PyStr_FromString(entry->description));
PyList_Append(py_grouplist, py_dict);
}
}
PyDict_SetItemString(py_dict, "idx", PyInt_FromLong(entry->idx));
PyDict_SetItemString(py_dict, "rid", PyInt_FromLong(entry->rid));
PyDict_SetItemString(py_dict, "acct_flags", PyInt_FromLong(entry->acct_flags));
- PyDict_SetItemString(py_dict, "account_name", PyString_FromString(entry->account_name));
- PyDict_SetItemString(py_dict, "fullname", PyString_FromString(entry->fullname));
- PyDict_SetItemString(py_dict, "description", PyString_FromString(entry->description));
+ PyDict_SetItemString(py_dict, "account_name", PyStr_FromString(entry->account_name));
+ PyDict_SetItemString(py_dict, "fullname", PyStr_FromString(entry->fullname));
+ PyDict_SetItemString(py_dict, "description", PyStr_FromString(entry->description));
PyList_Append(py_aliaslist, py_dict);
}
}
return NULL;
}
- PyDict_SetItemString(py_value, "pwd", PyString_FromString(pwd));
+ PyDict_SetItemString(py_value, "pwd", PyStr_FromString(pwd));
PyDict_SetItemString(py_value, "sid", py_sid);
PyDict_SetItemString(py_value, "last_set_tim", PyInt_FromLong(last_set_time));
py_dict = PyDict_New();
if (py_dict) {
PyDict_SetItemString(py_dict, "name",
- PyString_FromString(domains[i]->name));
+ PyStr_FromString(domains[i]->name));
PyDict_SetItemString(py_dict, "sid",
pytalloc_steal(dom_sid_Type, &domains[i]->sid));
}
}
PyDict_SetItemString(py_domain_info, "domain_name",
- PyString_FromString(td->domain_name));
+ PyStr_FromString(td->domain_name));
PyDict_SetItemString(py_domain_info, "netbios_name",
- PyString_FromString(td->netbios_name));
+ PyStr_FromString(td->netbios_name));
PyDict_SetItemString(py_domain_info, "security_identifier",
pytalloc_steal(dom_sid_Type, &td->security_identifier));
PyDict_SetItemString(py_domain_info, "trust_auth_incoming",
- PyString_FromStringAndSize((char *)td->trust_auth_incoming.data,
+ PyBytes_FromStringAndSize((const char *)td->trust_auth_incoming.data,
td->trust_auth_incoming.length));
PyDict_SetItemString(py_domain_info, "trust_auth_outgoing",
- PyString_FromStringAndSize((char *)td->trust_auth_outgoing.data,
+ PyBytes_FromStringAndSize((const char *)td->trust_auth_outgoing.data,
td->trust_auth_outgoing.length));
PyDict_SetItemString(py_domain_info, "trust_direction",
PyInt_FromLong(td->trust_direction));
PyDict_SetItemString(py_domain_info, "trust_attributes",
PyInt_FromLong(td->trust_attributes));
PyDict_SetItemString(py_domain_info, "trust_forest_trust_info",
- PyString_FromStringAndSize((char *)td->trust_forest_trust_info.data,
+ PyBytes_FromStringAndSize((const char *)td->trust_forest_trust_info.data,
td->trust_forest_trust_info.length));
talloc_free(frame);
}
PyDict_SetItemString(py_domain_info, "domain_name",
- PyString_FromString(td->domain_name));
+ PyStr_FromString(td->domain_name));
PyDict_SetItemString(py_domain_info, "netbios_name",
- PyString_FromString(td->netbios_name));
+ PyStr_FromString(td->netbios_name));
PyDict_SetItemString(py_domain_info, "security_identifier",
pytalloc_steal(dom_sid_Type, &td->security_identifier));
PyDict_SetItemString(py_domain_info, "trust_auth_incoming",
- PyString_FromStringAndSize((char *)td->trust_auth_incoming.data,
+ PyBytes_FromStringAndSize((char *)td->trust_auth_incoming.data,
td->trust_auth_incoming.length));
PyDict_SetItemString(py_domain_info, "trust_auth_outgoing",
- PyString_FromStringAndSize((char *)td->trust_auth_outgoing.data,
+ PyBytes_FromStringAndSize((char *)td->trust_auth_outgoing.data,
td->trust_auth_outgoing.length));
PyDict_SetItemString(py_domain_info, "trust_direction",
PyInt_FromLong(td->trust_direction));
PyDict_SetItemString(py_domain_info, "trust_attributes",
PyInt_FromLong(td->trust_attributes));
PyDict_SetItemString(py_domain_info, "trust_forest_trust_info",
- PyString_FromStringAndSize((char *)td->trust_forest_trust_info.data,
+ PyBytes_FromStringAndSize((char *)td->trust_forest_trust_info.data,
td->trust_forest_trust_info.length));
talloc_free(frame);
}
py_tmp = PyDict_GetItemString(py_td_info, "domain_name");
- td_info.domain_name = PyString_AsString(py_tmp);
+ td_info.domain_name = PyStr_AsString(py_tmp);
py_tmp = PyDict_GetItemString(py_td_info, "netbios_name");
- td_info.netbios_name = PyString_AsString(py_tmp);
+ td_info.netbios_name = PyStr_AsString(py_tmp);
py_tmp = PyDict_GetItemString(py_td_info, "security_identifier");
td_info.security_identifier = *pytalloc_get_type(py_tmp, struct dom_sid);
py_tmp = PyDict_GetItemString(py_td_info, "trust_auth_incoming");
- PyString_AsStringAndSize(py_tmp, (char **)&td_info.trust_auth_incoming.data, &len);
+ PyBytes_AsStringAndSize(py_tmp, (char **)&td_info.trust_auth_incoming.data, &len);
td_info.trust_auth_incoming.length = len;
py_tmp = PyDict_GetItemString(py_td_info, "trust_auth_outgoing");
- PyString_AsStringAndSize(py_tmp, (char **)&td_info.trust_auth_outgoing.data, &len);
+ PyBytes_AsStringAndSize(py_tmp, (char **)&td_info.trust_auth_outgoing.data, &len);
td_info.trust_auth_outgoing.length = len;
py_tmp = PyDict_GetItemString(py_td_info, "trust_direction");
td_info.trust_attributes = PyInt_AsLong(py_tmp);
py_tmp = PyDict_GetItemString(py_td_info, "trust_forest_trust_info");
- PyString_AsStringAndSize(py_tmp, (char **)&td_info.trust_forest_trust_info.data, &len);
+ PyBytes_AsStringAndSize(py_tmp, (char **)&td_info.trust_forest_trust_info.data, &len);
td_info.trust_forest_trust_info.length = len;
methods = pytalloc_get_ptr(self);
td = td_info[i];
PyDict_SetItemString(py_domain_info, "domain_name",
- PyString_FromString(td->domain_name));
+ PyStr_FromString(td->domain_name));
PyDict_SetItemString(py_domain_info, "netbios_name",
- PyString_FromString(td->netbios_name));
+ PyStr_FromString(td->netbios_name));
PyDict_SetItemString(py_domain_info, "security_identifier",
pytalloc_steal(dom_sid_Type, &td->security_identifier));
PyDict_SetItemString(py_domain_info, "trust_auth_incoming",
- PyString_FromStringAndSize((char *)td->trust_auth_incoming.data,
+ PyBytes_FromStringAndSize((const char *)td->trust_auth_incoming.data,
td->trust_auth_incoming.length));
PyDict_SetItemString(py_domain_info, "trust_auth_outgoing",
- PyString_FromStringAndSize((char *)td->trust_auth_outgoing.data,
+ PyBytes_FromStringAndSize((const char *)td->trust_auth_outgoing.data,
td->trust_auth_outgoing.length));
PyDict_SetItemString(py_domain_info, "trust_direction",
PyInt_FromLong(td->trust_direction));
PyDict_SetItemString(py_domain_info, "trust_attributes",
PyInt_FromLong(td->trust_attributes));
PyDict_SetItemString(py_domain_info, "trust_forest_trust_info",
- PyString_FromStringAndSize((char *)td->trust_forest_trust_info.data,
+ PyBytes_FromStringAndSize((const char *)td->trust_forest_trust_info.data,
td->trust_forest_trust_info.length));
PyList_Append(py_td_info, py_domain_info);
}
}
PyDict_SetItemString(py_secret, "secret_current",
- PyString_FromStringAndSize((char *)secret_current.data, secret_current.length));
+ PyBytes_FromStringAndSize((const char*)secret_current.data, secret_current.length));
PyDict_SetItemString(py_secret, "secret_current_lastchange",
PyLong_FromUnsignedLongLong(secret_current_lastchange));
PyDict_SetItemString(py_secret, "secret_old",
- PyString_FromStringAndSize((char *)secret_old.data, secret_old.length));
+ PyBytes_FromStringAndSize((const char*)secret_old.data, secret_old.length));
PyDict_SetItemString(py_secret, "secret_old_lastchange",
PyLong_FromUnsignedLongLong(secret_old_lastchange));
PyDict_SetItemString(py_secret, "sd", py_sd);
py_secret_old = PyDict_GetItemString(py_secret, "secret_old");
py_sd = PyDict_GetItemString(py_secret, "sd");
- PY_CHECK_TYPE(&PyString_Type, py_secret_cur, return NULL;);
- PY_CHECK_TYPE(&PyString_Type, py_secret_old, return NULL;);
+ PY_CHECK_TYPE(&PyBytes_Type, py_secret_cur, return NULL;);
+ PY_CHECK_TYPE(&PyBytes_Type, py_secret_old, return NULL;);
PY_CHECK_TYPE(security_Type, py_sd, return NULL;);
methods = pytalloc_get_ptr(self);
- PyString_AsStringAndSize(py_secret_cur, (char **)&secret_current.data, &len);
+ PyBytes_AsStringAndSize(py_secret_cur, (char **)&secret_current.data, &len);
secret_current.length = len;
- PyString_AsStringAndSize(py_secret_old, (char **)&secret_old.data, &len);
+ PyBytes_AsStringAndSize(py_secret_old, (char **)&secret_old.data, &len);
secret_current.length = len;
sd = pytalloc_get_ptr(py_sd);
}
while(entry) {
- PyList_Append(py_blist, PyString_FromString(entry->name));
+ PyList_Append(py_blist, PyStr_FromString(entry->name));
entry = entry->next;
}
{ NULL },
};
-void initpassdb(void)
+static struct PyModuleDef moduledef = {
+ PyModuleDef_HEAD_INIT,
+ .m_name = "passdb",
+ .m_doc = "SAMBA Password Database",
+ .m_size = -1,
+ .m_methods = py_passdb_methods,
+};
+
+MODULE_INIT_FUNC(passdb)
{
TALLOC_CTX *frame = talloc_stackframe();
- PyObject *m, *mod;
+ PyObject *m = NULL, *mod = NULL;
char exception_name[] = "passdb.error";
if (pytalloc_BaseObject_PyType_Ready(&PyPDB) < 0) {
talloc_free(frame);
- return;
+ return NULL;
}
if (pytalloc_BaseObject_PyType_Ready(&PySamu) < 0) {
talloc_free(frame);
- return;
+ return NULL;
}
if (pytalloc_BaseObject_PyType_Ready(&PyGroupmap) < 0) {
talloc_free(frame);
- return;
+ return NULL;
}
- m = Py_InitModule3("passdb", py_passdb_methods, "SAMBA Password Database");
+ m = PyModule_Create(&moduledef);
if (m == NULL) {
talloc_free(frame);
- return;
+ return NULL;
}
/* Create new exception for passdb module */
mod = PyImport_ImportModule("samba.dcerpc.security");
if (mod == NULL) {
talloc_free(frame);
- return;
+ return NULL;
}
dom_sid_Type = (PyTypeObject *)PyObject_GetAttrString(mod, "dom_sid");
if (dom_sid_Type == NULL) {
talloc_free(frame);
- return;
+ return NULL;
}
/* Import security_descriptor type from dcerpc.security */
Py_DECREF(mod);
if (security_Type == NULL) {
talloc_free(frame);
- return;
+ return NULL;
}
/* Import GUID type from dcerpc.misc */
mod = PyImport_ImportModule("samba.dcerpc.misc");
if (mod == NULL) {
talloc_free(frame);
- return;
+ return NULL;
}
guid_Type = (PyTypeObject *)PyObject_GetAttrString(mod, "GUID");
Py_DECREF(mod);
if (guid_Type == NULL) {
talloc_free(frame);
- return;
+ return NULL;
}
talloc_free(frame);
+ return m;
}