{
spoolss_policy_hnd_object *hnd = (spoolss_policy_hnd_object *)self;
WERROR werror;
- PyObject *py_form, *py_form_name;
- char *form_name;
+ PyObject *info;
FORM form;
- int level = 1;
- static char *kwlist[] = {"form", "level", NULL};
+ int level;
+ static char *kwlist[] = {"form", NULL};
/* Parse parameters */
-
+
if (!PyArg_ParseTupleAndKeywords(
- args, kw, "O!|i", kwlist, &PyDict_Type, &py_form, &level))
+ args, kw, "O!", kwlist, &PyDict_Type, &info))
return NULL;
/* Call rpc function */
-
- if (!py_to_FORM(&form, py_form) ||
- !(py_form_name = PyDict_GetItemString(py_form, "name")) ||
- !(form_name = PyString_AsString(py_form_name))) {
+
+ if (!py_to_FORM(&form, info)) {
PyErr_SetString(spoolss_error, "invalid form");
return NULL;
}
+ if (!get_level_value(info, &level)) {
+ PyErr_SetString(spoolss_error, "invalid info level");
+ return NULL;
+ }
+
+ if (level != 1) {
+ PyErr_SetString(spoolss_error, "unsupported info level");
+ return NULL;
+ }
+
switch (level) {
- case 1:
- init_unistr2(&form.name, form_name, strlen(form_name) + 1);
+ case 1: {
+ PyObject *obj = PyDict_GetItemString(info, "name");
+ char *form_name = PyString_AsString(obj);
+
+ init_unistr2(&form.name, form_name, UNI_STR_TERMINATE);
break;
+ }
default:
PyErr_SetString(spoolss_error, "unsupported info level");
return NULL;
}
-
- werror = cli_spoolss_addform(hnd->cli, hnd->mem_ctx, &hnd->pol,
- level, &form);
+
+ werror = rpccli_spoolss_addform(hnd->cli, hnd->mem_ctx, &hnd->pol,
+ level, &form);
if (!W_ERROR_IS_OK(werror)) {
char *form_name;
int level = 1;
static char *kwlist[] = {"form_name", "level", NULL};
- uint32 needed;
FORM_1 form;
/* Parse parameters */
/* Call rpc function */
- werror = cli_spoolss_getform(hnd->cli, hnd->mem_ctx, 0, &needed,
- &hnd->pol, form_name, 1, &form);
-
- if (W_ERROR_V(werror) == ERRinsufficientbuffer)
- werror = cli_spoolss_getform(
- hnd->cli, hnd->mem_ctx, needed, NULL, &hnd->pol,
- form_name, 1, &form);
+ werror = rpccli_spoolss_getform(
+ hnd->cli, hnd->mem_ctx, &hnd->pol, form_name, level, &form);
if (!W_ERROR_IS_OK(werror)) {
PyErr_SetObject(spoolss_werror, py_werror_tuple(werror));
{
spoolss_policy_hnd_object *hnd = (spoolss_policy_hnd_object *)self;
WERROR werror;
- PyObject *py_form, *py_form_name;
- int level = 1;
- static char *kwlist[] = {"form", "level", NULL};
- char *form_name;
+ PyObject *info, *form_name;
+ int level;
+ static char *kwlist[] = { "form", NULL};
FORM form;
/* Parse parameters */
if (!PyArg_ParseTupleAndKeywords(
- args, kw, "O!|i", kwlist, &PyDict_Type, &py_form,
- &level))
+ args, kw, "O!", kwlist, &PyDict_Type, &info))
return NULL;
-
+
+ if (!get_level_value(info, &level)) {
+ PyErr_SetString(spoolss_error, "invalid info level");
+ return NULL;
+ }
+
+ if (level != 1) {
+ PyErr_SetString(spoolss_error, "unsupported info level");
+ return NULL;
+ }
+
/* Call rpc function */
- if (!py_to_FORM(&form, py_form) ||
- !(py_form_name = PyDict_GetItemString(py_form, "name")) ||
- !(form_name = PyString_AsString(py_form_name))) {
+ if (!py_to_FORM(&form, info)) {
PyErr_SetString(spoolss_error, "invalid form");
return NULL;
}
- init_unistr2(&form.name, form_name, strlen(form_name) + 1);
+ form_name = PyDict_GetItemString(info, "name");
- werror = cli_spoolss_setform(hnd->cli, hnd->mem_ctx, &hnd->pol,
- level, form_name, &form);
+ werror = rpccli_spoolss_setform(
+ hnd->cli, hnd->mem_ctx, &hnd->pol, level,
+ PyString_AsString(form_name), &form);
if (!W_ERROR_IS_OK(werror)) {
PyErr_SetObject(spoolss_werror, py_werror_tuple(werror));
{
spoolss_policy_hnd_object *hnd = (spoolss_policy_hnd_object *)self;
WERROR werror;
- static char *kwlist[] = {"form_name", "level", NULL};
+ static char *kwlist[] = {"form_name", NULL};
char *form_name;
/* Parse parameters */
/* Call rpc function */
- werror = cli_spoolss_deleteform(
+ werror = rpccli_spoolss_deleteform(
hnd->cli, hnd->mem_ctx, &hnd->pol, form_name);
if (!W_ERROR_IS_OK(werror)) {
PyObject *result;
spoolss_policy_hnd_object *hnd = (spoolss_policy_hnd_object *)self;
WERROR werror;
- uint32 level = 1, num_forms, needed, i;
+ uint32 level = 1, num_forms, i;
static char *kwlist[] = {"level", NULL};
FORM_1 *forms;
/* Call rpc function */
- werror = cli_spoolss_enumforms(
- hnd->cli, hnd->mem_ctx, 0, &needed, &hnd->pol, level,
- &num_forms, &forms);
-
- if (W_ERROR_V(werror) == ERRinsufficientbuffer)
- werror = cli_spoolss_enumforms(
- hnd->cli, hnd->mem_ctx, needed, NULL, &hnd->pol, level,
- &num_forms, &forms);
+ werror = rpccli_spoolss_enumforms(
+ hnd->cli, hnd->mem_ctx, &hnd->pol, level, &num_forms, &forms);
if (!W_ERROR_IS_OK(werror)) {
PyErr_SetObject(spoolss_werror, py_werror_tuple(werror));