0
|
1 |
--- Makedefs.in.orig Mon Aug 31 23:17:04 2009
|
|
2 |
+++ Makedefs.in Mon Aug 31 23:17:04 2009
|
|
3 |
@@ -124,7 +124,7 @@
|
|
4 |
BACKLIBS = @BACKLIBS@
|
|
5 |
BANNERTOPS = @BANNERTOPS@
|
|
6 |
CFLAGS = @CPPFLAGS@ @CFLAGS@
|
|
7 |
-COMMONLIBS = @LIBS@
|
|
8 |
+COMMONLIBS = @LIBS@ -lscf
|
|
9 |
CUPSDLIBS = @CUPSDLIBS@
|
|
10 |
CXXFLAGS = @CPPFLAGS@ @CXXFLAGS@
|
|
11 |
CXXLIBS = @CXXLIBS@
|
60
|
12 |
--- cups/http.c.orig Mon Aug 9 23:15:55 2010
|
|
13 |
+++ cups/http.c Tue Dec 7 01:16:04 2010
|
|
14 |
@@ -396,7 +396,35 @@
|
0
|
15 |
return (httpConnectEncrypt(host, port, HTTP_ENCRYPT_IF_REQUESTED));
|
|
16 |
}
|
|
17 |
|
|
18 |
+/*
|
|
19 |
+ * Test to see if CUPS is the "active" print service on Solaris by looking for
|
|
20 |
+ * a special "general/active" boolean property in the CUPS service instance
|
|
21 |
+ * svc:/application/cups/scheduler:default. If it exists and is true, CUPS
|
|
22 |
+ * is the active print service.
|
|
23 |
+ */
|
|
24 |
+#include <libscf.h>
|
|
25 |
|
|
26 |
+static int
|
|
27 |
+cups_is_active()
|
|
28 |
+{
|
|
29 |
+ int active = 0;
|
|
30 |
+
|
|
31 |
+ scf_simple_prop_t *prop = scf_simple_prop_get(NULL,
|
|
32 |
+ "svc:/application/cups/scheduler:default",
|
|
33 |
+ "general", "active");
|
|
34 |
+
|
|
35 |
+ if ((prop != NULL) && (scf_simple_prop_numvalues(prop) > 0)) {
|
|
36 |
+ uint8_t *value = scf_simple_prop_next_boolean(prop);
|
|
37 |
+
|
|
38 |
+ if (value != NULL)
|
|
39 |
+ active = *value;
|
|
40 |
+ }
|
|
41 |
+
|
|
42 |
+ scf_simple_prop_free(prop);
|
|
43 |
+
|
|
44 |
+ return (active);
|
|
45 |
+}
|
|
46 |
+
|
|
47 |
/*
|
|
48 |
* 'httpConnectEncrypt()' - Connect to a HTTP server using encryption.
|
|
49 |
*/
|
60
|
50 |
@@ -460,6 +488,10 @@
|
0
|
51 |
if (!host)
|
|
52 |
return (NULL);
|
|
53 |
|
|
54 |
+ /* Check to see if CUPS is the "active" print service on Solaris */
|
|
55 |
+ if (cups_is_active() == 0)
|
|
56 |
+ return (NULL);
|
|
57 |
+
|
|
58 |
httpInitialize();
|
|
59 |
|
|
60 |
/*
|