Got setprinter level 3 working!
authorTim Potter <tpot@samba.org>
Wed, 1 May 2002 04:25:46 +0000 (04:25 +0000)
committerTim Potter <tpot@samba.org>
Wed, 1 May 2002 04:25:46 +0000 (04:25 +0000)
Replaced some DEBUG's with PyErr_SetString() calls.

source/python/py_spoolss_printers.c

index 623e693124c0e5de6fdbd34573d3042ad8ff3370..b006e54d8115cec2f8311c0ce88e0042e84dab1f 100644 (file)
@@ -203,8 +203,9 @@ PyObject *spoolss_setprinter(PyObject *self, PyObject *args, PyObject *kw)
        if ((level_obj = PyDict_GetItemString(info, "level"))) {
 
                if (!PyInt_Check(level_obj)) {
-                       DEBUG(0, ("** level not an integer\n"));
-                       goto error;
+                       PyErr_SetString(spoolss_error, 
+                                       "level not an integer");
+                       return NULL;
                }
 
                level = PyInt_AsLong(level_obj);
@@ -212,14 +213,13 @@ PyObject *spoolss_setprinter(PyObject *self, PyObject *args, PyObject *kw)
                /* Only level 2, 3 supported by NT */
 
                if (level != 2 && level != 3) {
-                       DEBUG(0, ("** unsupported info level\n"));
-                       goto error;
+                       PyErr_SetString(spoolss_error,
+                                       "unsupported info level");
+                       return NULL;
                }
 
        } else {
-               DEBUG(0, ("** no level info\n"));
-       error:
-               PyErr_SetString(spoolss_error, "invalid info");
+               PyErr_SetString(spoolss_error, "no info level present");
                return NULL;
        }
 
@@ -232,8 +232,22 @@ PyObject *spoolss_setprinter(PyObject *self, PyObject *args, PyObject *kw)
                ctr.printers_2 = &pinfo.printers_2;
 
                if (!py_to_PRINTER_INFO_2(&pinfo.printers_2, info,
-                                         hnd->mem_ctx))
-                       goto error;
+                                         hnd->mem_ctx)){
+                       PyErr_SetString(spoolss_error, 
+                                       "error converting printer to info 2");
+                       return NULL;
+               }
+
+               break;
+       case 3:
+               ctr.printers_3 = &pinfo.printers_3;
+
+               if (!py_to_PRINTER_INFO_3(&pinfo.printers_3, info,
+                                         hnd->mem_ctx)) {
+                       PyErr_SetString(spoolss_error,
+                                       "error converting to printer info 3");
+                       return NULL;
+               }
 
                break;
        default: