Fixed setform and addform functions.
authorTim Potter <tpot@samba.org>
Tue, 9 Apr 2002 04:23:52 +0000 (04:23 +0000)
committerTim Potter <tpot@samba.org>
Tue, 9 Apr 2002 04:23:52 +0000 (04:23 +0000)
source/python/py_spoolss_forms.c

index f7b80d0f33021834c8e8bef78761899a5c3071cb..9f8a49bd5257e07ef0ddbb3f985e90465fa4f2de 100644 (file)
@@ -26,7 +26,8 @@ PyObject *spoolss_addform(PyObject *self, PyObject *args, PyObject *kw)
 {
        spoolss_policy_hnd_object *hnd = (spoolss_policy_hnd_object *)self;
        WERROR werror;
-       PyObject *py_form;
+       PyObject *py_form, *py_form_name;
+       char *form_name;
        FORM form;
        int level = 1;
        static char *kwlist[] = {"form", "level", NULL};
@@ -39,23 +40,17 @@ PyObject *spoolss_addform(PyObject *self, PyObject *args, PyObject *kw)
        
        /* Call rpc function */
 
-       switch (level) {
-       case 1: {
-               PyObject *py_form_name;
-               char *form_name;
-
-               if (!py_to_FORM(&form, py_form)) {
-                       PyErr_SetString(spoolss_error, "invalid form");
-                       return NULL;
-               }
-
-               py_form_name = PyDict_GetItemString(py_form, "name");
-               form_name = PyString_AsString(py_form_name);
+       if (!py_to_FORM(&form, py_form) ||
+           !(py_form_name = PyDict_GetItemString(py_form, "name")) ||
+           !(form_name = PyString_AsString(py_form_name))) {
+               PyErr_SetString(spoolss_error, "invalid form");
+               return NULL;
+       }
 
+       switch (level) {
+       case 1:
                init_unistr2(&form.name, form_name, strlen(form_name) + 1);
-
                break;
-       }
        default:
                PyErr_SetString(spoolss_error, "unsupported info level");
                return NULL;
@@ -126,22 +121,23 @@ PyObject *spoolss_setform(PyObject *self, PyObject *args, PyObject *kw)
 {
        spoolss_policy_hnd_object *hnd = (spoolss_policy_hnd_object *)self;
        WERROR werror;
-       PyObject *py_form;
+       PyObject *py_form, *py_form_name;
        int level = 1;
-       static char *kwlist[] = {"form_name", "form", "level", NULL};
+       static char *kwlist[] = {"form", "level", NULL};
        char *form_name;
        FORM form;
 
        /* Parse parameters */
 
-       if (!PyArg_ParseTupleAndKeywords(args, kw, "sO!|i", kwlist, 
-                                        &form_name, &PyDict_Type, &py_form,
-                                        &level))
+       if (!PyArg_ParseTupleAndKeywords(args, kw, "O!|i", kwlist, 
+                                        &PyDict_Type, &py_form, &level))
                return NULL;
        
        /* Call rpc function */
 
-       if (!py_to_FORM(&form, py_form)) {
+       if (!py_to_FORM(&form, py_form) ||
+           !(py_form_name = PyDict_GetItemString(py_form, "name")) ||
+           !(form_name = PyString_AsString(py_form_name))) {
                PyErr_SetString(spoolss_error, "invalid form");
                return NULL;
        }