mirror of
https://github.com/samba-team/samba.git
synced 2025-12-05 12:23:50 +03:00
Allow None to be used as a valid credential for functions that take a
credential as a parameter.
This commit is contained in:
@@ -283,10 +283,16 @@ static PyObject *samr_connect(PyObject *self, PyObject *args, PyObject *kw)
|
||||
NTSTATUS ntstatus;
|
||||
|
||||
if (!PyArg_ParseTupleAndKeywords(
|
||||
args, kw, "s|O!i", kwlist, &server, &PyDict_Type,
|
||||
&creds, &desired_access))
|
||||
args, kw, "s|Oi", kwlist, &server, &creds,
|
||||
&desired_access))
|
||||
return NULL;
|
||||
|
||||
if (creds && creds != Py_None && !PyDict_Check(creds)) {
|
||||
PyErr_SetString(PyExc_TypeError,
|
||||
"credentials must be dictionary or None");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (!(cli = open_pipe_creds(server, creds, PIPE_SAMR, &errstr))) {
|
||||
PyErr_SetString(samr_error, errstr);
|
||||
free(errstr);
|
||||
|
||||
@@ -38,8 +38,8 @@ PyObject *spoolss_enumprinterdrivers(PyObject *self, PyObject *args,
|
||||
/* Parse parameters */
|
||||
|
||||
if (!PyArg_ParseTupleAndKeywords(
|
||||
args, kw, "s|iO!s", kwlist, &server, &level, &PyDict_Type,
|
||||
&creds, &arch))
|
||||
args, kw, "s|iOs", kwlist, &server, &level, &creds,
|
||||
&arch))
|
||||
return NULL;
|
||||
|
||||
if (server[0] != '\\' || server[1] != '\\') {
|
||||
@@ -49,6 +49,12 @@ PyObject *spoolss_enumprinterdrivers(PyObject *self, PyObject *args,
|
||||
|
||||
server += 2;
|
||||
|
||||
if (creds && creds != Py_None && !PyDict_Check(creds)) {
|
||||
PyErr_SetString(PyExc_TypeError,
|
||||
"credentials must be dictionary or None");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Call rpc function */
|
||||
|
||||
if (!(cli = open_pipe_creds(server, creds, PIPE_SPOOLSS, &errstr))) {
|
||||
@@ -248,8 +254,8 @@ PyObject *spoolss_getprinterdriverdir(PyObject *self, PyObject *args,
|
||||
/* Parse parameters */
|
||||
|
||||
if (!PyArg_ParseTupleAndKeywords(
|
||||
args, kw, "s|isO!", kwlist, &server, &level,
|
||||
&arch, &PyDict_Type, &creds))
|
||||
args, kw, "s|isO", kwlist, &server, &level,
|
||||
&arch, &creds))
|
||||
return NULL;
|
||||
|
||||
if (server[0] != '\\' || server[1] != '\\') {
|
||||
@@ -259,6 +265,12 @@ PyObject *spoolss_getprinterdriverdir(PyObject *self, PyObject *args,
|
||||
|
||||
server += 2;
|
||||
|
||||
if (creds && creds != Py_None && !PyDict_Check(creds)) {
|
||||
PyErr_SetString(PyExc_TypeError,
|
||||
"credentials must be dictionary or None");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Call rpc function */
|
||||
|
||||
if (!(cli = open_pipe_creds(server, creds, PIPE_SPOOLSS, &errstr))) {
|
||||
@@ -324,13 +336,19 @@ PyObject *spoolss_addprinterdriver(PyObject *self, PyObject *args,
|
||||
} dinfo;
|
||||
|
||||
if (!PyArg_ParseTupleAndKeywords(
|
||||
args, kw, "sO!|O!", kwlist, &server, &PyDict_Type,
|
||||
&info, &PyDict_Type, &creds))
|
||||
args, kw, "sO!|O", kwlist, &server, &PyDict_Type,
|
||||
&info, &creds))
|
||||
return NULL;
|
||||
|
||||
if (server[0] == '\\' && server[1] == '\\')
|
||||
server += 2;
|
||||
|
||||
if (creds && creds != Py_None && !PyDict_Check(creds)) {
|
||||
PyErr_SetString(PyExc_TypeError,
|
||||
"credentials must be dictionary or None");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (!(mem_ctx = talloc_init())) {
|
||||
PyErr_SetString(
|
||||
spoolss_error, "unable to init talloc context\n");
|
||||
|
||||
@@ -37,13 +37,18 @@ PyObject *spoolss_enumports(PyObject *self, PyObject *args, PyObject *kw)
|
||||
/* Parse parameters */
|
||||
|
||||
if (!PyArg_ParseTupleAndKeywords(
|
||||
args, kw, "s|iO!", kwlist, &server, &level,
|
||||
&PyDict_Type, &creds))
|
||||
args, kw, "s|iO", kwlist, &server, &level, &creds))
|
||||
return NULL;
|
||||
|
||||
if (server[0] == '\\' && server[1] == '\\')
|
||||
server += 2;
|
||||
|
||||
if (creds && creds != Py_None && !PyDict_Check(creds)) {
|
||||
PyErr_SetString(PyExc_TypeError,
|
||||
"credentials must be dictionary or None");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (!(cli = open_pipe_creds(server, creds, PIPE_SPOOLSS, &errstr))) {
|
||||
PyErr_SetString(spoolss_error, errstr);
|
||||
free(errstr);
|
||||
|
||||
@@ -34,7 +34,7 @@ PyObject *spoolss_openprinter(PyObject *self, PyObject *args, PyObject *kw)
|
||||
struct cli_state *cli;
|
||||
|
||||
if (!PyArg_ParseTupleAndKeywords(
|
||||
args, kw, "s|O!i", kwlist, &unc_name, &PyDict_Type, &creds,
|
||||
args, kw, "s|Oi", kwlist, &unc_name, &creds,
|
||||
&desired_access))
|
||||
return NULL;
|
||||
|
||||
@@ -50,6 +50,12 @@ PyObject *spoolss_openprinter(PyObject *self, PyObject *args, PyObject *kw)
|
||||
*c = 0;
|
||||
}
|
||||
|
||||
if (creds && creds != Py_None && !PyDict_Check(creds)) {
|
||||
PyErr_SetString(PyExc_TypeError,
|
||||
"credentials must be dictionary or None");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (!(cli = open_pipe_creds(server, creds, PIPE_SPOOLSS, &errstr))) {
|
||||
PyErr_SetString(spoolss_error, errstr);
|
||||
free(errstr);
|
||||
@@ -286,13 +292,19 @@ PyObject *spoolss_enumprinters(PyObject *self, PyObject *args, PyObject *kw)
|
||||
/* Parse parameters */
|
||||
|
||||
if (!PyArg_ParseTupleAndKeywords(
|
||||
args, kw, "s|siiO!", kwlist, &server, &name, &level,
|
||||
&flags, &PyDict_Type, &creds))
|
||||
args, kw, "s|siiO", kwlist, &server, &name, &level,
|
||||
&flags, &creds))
|
||||
return NULL;
|
||||
|
||||
if (server[0] == '\\' && server[1] == '\\')
|
||||
server += 2;
|
||||
|
||||
if (creds && creds != Py_None && !PyDict_Check(creds)) {
|
||||
PyErr_SetString(PyExc_TypeError,
|
||||
"credentials must be dictionary or None");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (!(cli = open_pipe_creds(server, creds, PIPE_SPOOLSS, &errstr))) {
|
||||
PyErr_SetString(spoolss_error, errstr);
|
||||
free(errstr);
|
||||
|
||||
Reference in New Issue
Block a user