components/cups/patches/16-tx.patch
author Stefan Teleman <stefan.teleman@oracle.com>
Tue, 17 Mar 2015 19:06:56 -0700
changeset 3966 cca72467a46d
parent 769 68e4ba640241
permissions -rw-r--r--
19078668 unixODBC version 2.3.1 needs a TPNO
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
769
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
     1
--- filter/Makefile	Fri Apr 23 11:56:34 2010
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
     2
+++ filter/Makefile	Mon Apr  2 15:58:21 2012
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
     3
@@ -56,7 +56,7 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
     4
 		bannertops.o commandtops.o gziptoany.o imagetops.o \
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
     5
 		imagetoraster.o common.o pdftops.o pstext.o pstops.o \
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
     6
 		rasterbench.o rastertoepson.o rastertohp.o rastertolabel.o \
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
     7
-		testimage.o testraster.o textcommon.o texttops.o
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
     8
+		testimage.o testraster.o textcommon.o texttops.o tsol_labeled_banner.o
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
     9
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    10
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    11
 #
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    12
@@ -281,10 +281,10 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    13
 # bannertops
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    14
 #
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    15
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    16
-bannertops:	bannertops.o pstext.o common.o ../cups/$(LIBCUPS) $(LIBCUPSIMAGE)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    17
+bannertops:	bannertops.o pstext.o common.o tsol_labeled_banner.o ../cups/$(LIBCUPS) $(LIBCUPSIMAGE)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    18
 	echo Linking $@...
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    19
-	$(CC) $(LDFLAGS) -o $@ bannertops.o pstext.o common.o $(LINKCUPSIMAGE) \
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    20
-		$(IMGLIBS) $(LIBS)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    21
+	$(CC) $(LDFLAGS) -o $@ bannertops.o pstext.o common.o tsol_labeled_banner.o $(LINKCUPSIMAGE) \
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    22
+		$(IMGLIBS) $(LIBS) -ltsol
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    23
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    24
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    25
 #
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    26
@@ -421,11 +421,11 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    27
 # imagetops
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    28
 #
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    29
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    30
-imagetops:	imagetops.o common.o $(LIBCUPSIMAGE) \
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    31
+imagetops:	imagetops.o common.o tsol_labeled_banner.o $(LIBCUPSIMAGE) \
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    32
 		../cups/$(LIBCUPS)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    33
 	echo Linking $@...
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    34
-	$(CC) $(LDFLAGS) -o $@ imagetops.o common.o $(LINKCUPSIMAGE) \
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    35
-		$(IMGLIBS) $(LIBS)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    36
+	$(CC) $(LDFLAGS) -o $@ imagetops.o common.o tsol_labeled_banner.o $(LINKCUPSIMAGE) \
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    37
+		$(IMGLIBS) $(LIBS) -ltsol
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    38
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    39
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    40
 #
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    41
@@ -443,9 +443,9 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    42
 # pstops
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    43
 #
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    44
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    45
-pstops:	pstops.o common.o ../cups/$(LIBCUPS)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    46
+pstops:	pstops.o common.o tsol_labeled_banner.o ../cups/$(LIBCUPS)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    47
 	echo Linking $@...
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    48
-	$(CC) $(LDFLAGS) -o $@ pstops.o common.o $(LIBS) -lm
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    49
+	$(CC) $(LDFLAGS) -o $@ pstops.o common.o tsol_labeled_banner.o $(LIBS) -lm -ltsol
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    50
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    51
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    52
 #
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    53
--- filter/common.c	Wed Jul 11 14:46:42 2007
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    54
+++ filter/common.c	Mon Apr  2 17:33:51 2012
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    55
@@ -49,7 +49,37 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    56
 	PageWidth = 612.0f,		/* Total page width */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    57
 	PageLength = 792.0f;		/* Total page length */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    58
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    59
+#if defined(HAVE_TSOL)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    60
+char *ClippedLabel = "\
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    61
+     /ClippedLabel{ \n\
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    62
+        ESPpl length 80 lt { \n\
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    63
+          ESPpl \n\
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    64
+        } \n\
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    65
+        { \n\
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    66
+          ESPpl 0 80 getinterval \n\
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    67
+          (->) \n\
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    68
+          append \n\
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    69
+        } ifelse \n\
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    70
+     }bind put \n\
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    71
+";
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    72
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    73
+char *append = "\
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    74
+     /append{ \n\
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    75
+        2 copy length exch length add \n\
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    76
+        string dup \n\
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    77
+        4 2 roll \n\
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    78
+        2 index 0 3 index \n\
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    79
+        putinterval \n\
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    80
+        exch length exch putinterval \n\
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    81
+     } bind def \n\
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    82
+";
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    83
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    84
+char *ESPpf = "\
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    85
+     /ESPpf /Courier-Bold findfont 12 scalefont put \n\
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    86
+";
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    87
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    88
+#endif /* HAVE_TSOL */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    89
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    90
 /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    91
  * 'SetCommonOptions()' - Set common filter options for media size, etc.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    92
  */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    93
@@ -299,7 +329,77 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    94
 }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    95
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    96
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    97
+#if defined(HAVE_TSOL)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    98
 /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
    99
+ * 'tsol_WriteLabelProlog()' - Write the prolog with the page label
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   100
+ *			       for labeled system.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   101
+ */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   102
+void
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   103
+tsol_WriteLabelProlog(const char   *label,	/* I - Page label */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   104
+		   float        bottom,	/* I - Bottom position in points */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   105
+		   float        top,	/* I - Top position in points */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   106
+		   float        width)	/* I - Width in points */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   107
+{
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   108
+  const char	*ptr;			/* Temporary string pointer */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   109
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   110
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   111
+ /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   112
+  * If there is nothing to show, bind an empty 'write labels' procedure
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   113
+  * and return...
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   114
+  */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   115
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   116
+  if (label == NULL || !label[0])
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   117
+  {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   118
+    puts("userdict/ESPwl{}bind put\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   119
+    return;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   120
+  }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   121
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   122
+ /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   123
+  * Set the page label string...
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   124
+  */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   125
+  puts("userdict");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   126
+  puts("/ESPpl(");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   127
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   128
+  if (label)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   129
+    puts(label);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   130
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   131
+  puts(")put\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   132
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   133
+  puts("userdict");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   134
+  puts(ClippedLabel);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   135
+  puts(append);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   136
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   137
+  puts("\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   138
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   139
+ /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   140
+  * Then get a 12 point Courier-Bold font...
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   141
+  */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   142
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   143
+  puts("userdict");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   144
+  puts(ESPpf);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   145
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   146
+ /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   147
+  * Finally, the procedure to write the labels on the page...
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   148
+  */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   149
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   150
+  puts("userdict/ESPwl{\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   151
+  puts("  ESPpf setfont\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   152
+  printf("  ClippedLabel stringwidth pop dup 12 add exch -0.5 mul %.0f add\n",
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   153
+	width * 0.5f);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   154
+  puts("  0 setgray\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   155
+  printf("  dup 6 sub %.0f 3 index 10 ESPrf\n", bottom - 1.0);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   156
+  printf("  dup 6 sub %.0f 3 index 10 ESPrf\n", top - 19.0);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   157
+  puts("  1 setgray\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   158
+  printf("  dup 6 sub %.0f 3 index 10 ESPrs\n", bottom - 1.0);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   159
+  printf("  dup 6 sub %.0f 3 index 10 ESPrs\n", top - 19.0);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   160
+  printf("  dup %.0f moveto ClippedLabel show\n", bottom + 1.0);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   161
+  printf("  %.0f moveto ClippedLabel show\n", top - 17.0);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   162
+  puts("pop\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   163
+  puts("}bind put\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   164
+}
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   165
+#endif /* HAVE_TSOL */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   166
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   167
+/*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   168
  * 'WriteLabelProlog()' - Write the prolog with the classification
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   169
  *                        and page label.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   170
  */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   171
@@ -441,17 +541,40 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   172
     length = PageLength;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   173
   }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   174
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   175
-  switch (orient & 3)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   176
+#ifdef HAVE_TSOL
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   177
+  /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   178
+   * Rotate the label so that it is always top and bottom of the job page.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   179
+   */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   180
+  if (is_system_labeled())
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   181
   {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   182
-    case 1 : /* Landscape */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   183
+    switch (Orientation)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   184
+    {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   185
+	case 1 : /* Landscape */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   186
+	  printf("0.0 %.1f translate -90 rotate\n", length);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   187
+	  break;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   188
+	case 2 : /* Reverse Portrait */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   189
+	  printf("%.1f %.1f translate 180 rotate\n", width, length);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   190
+	  break;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   191
+	case 3 : /* Reverse Landscape */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   192
+	  printf("%.1f 0.0 translate 90 rotate\n", width);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   193
+	  break;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   194
+    }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   195
+  }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   196
+  else
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   197
+#endif /* HAVE_TSOL */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   198
+  {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   199
+    switch (orient & 3)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   200
+    {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   201
+      case 1 : /* Landscape */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   202
         printf("%.1f 0.0 translate 90 rotate\n", length);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   203
         break;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   204
-    case 2 : /* Reverse Portrait */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   205
+      case 2 : /* Reverse Portrait */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   206
         printf("%.1f %.1f translate 180 rotate\n", width, length);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   207
         break;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   208
-    case 3 : /* Reverse Landscape */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   209
+      case 3 : /* Reverse Landscape */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   210
         printf("0.0 %.1f translate -90 rotate\n", width);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   211
         break;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   212
+    }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   213
   }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   214
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   215
   puts("ESPwl");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   216
--- filter/common.h	Wed Jul 11 14:46:42 2007
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   217
+++ filter/common.h	Mon Apr  2 17:33:51 2012
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   218
@@ -69,7 +69,15 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   219
 extern void	WriteLabels(int orient);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   220
 extern void	WriteTextComment(const char *name, const char *value);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   221
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   222
+#if defined(HAVE_TSOL)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   223
+extern void	tsol_WriteLabelProlog(const char *label, float bottom,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   224
+				float top, float width);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   225
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   226
+extern char *ClippedLabel;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   227
+extern char *append;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   228
+extern char *ESPpf;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   229
+#endif /* HAVE_TSOL */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   230
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   231
 /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   232
  * C++ magic...
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   233
  */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   234
--- filter/bannertops.c	Fri Aug  7 15:28:30 2009
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   235
+++ filter/bannertops.c	Mon Apr  2 17:33:51 2012
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   236
@@ -31,6 +31,10 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   237
 #include "image.h"
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   238
 #include <cups/i18n.h>
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   239
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   240
+#if defined(HAVE_TSOL)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   241
+/* Trusted Extensions header */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   242
+#include "tsol_labeled_banner.h" 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   243
+#endif /* HAVE_TSOL */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   244
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   245
 /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   246
  * Constants...
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   247
@@ -101,7 +105,6 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   248
 		*username;		/* Username from command-line */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   249
   int		num_pages;		/* Number of pages printed */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   250
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   251
-
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   252
  /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   253
   * Make sure status messages are not buffered...
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   254
   */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   255
@@ -131,7 +134,24 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   256
   num_options = cupsParseOptions(argv[5], 0, &options);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   257
   banner      = load_banner(argv[6]);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   258
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   259
+#if defined(HAVE_TSOL)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   260
  /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   261
+  * Check if it is banner or trailer page
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   262
+  */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   263
+  if (is_system_labeled())
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   264
+  {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   265
+    /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   266
+     * If it is banner or trailer page
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   267
+     * call tsol_labeled_banner function
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   268
+     */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   269
+    if ((cupsGetOption("banner", num_options, options)) ||
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   270
+	(cupsGetOption("trailer", num_options, options)))
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   271
+      return (tsol_labeled_banner(argc, argv));
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   272
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   273
+  }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   274
+#endif /* HAVE_TSOL */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   275
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   276
+ /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   277
   * Set standard options and get the PPD file for this printer...
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   278
   */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   279
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   280
--- filter/imagetops.c	Fri Nov 21 11:00:11 2008
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   281
+++ filter/imagetops.c	Mon Apr  2 17:33:51 2012
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   282
@@ -30,6 +30,10 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   283
 #include <math.h>
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   284
 #include <cups/i18n.h>
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   285
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   286
+#if defined(HAVE_TSOL)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   287
+#include <auth_attr.h>
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   288
+#include "tsol_labeled_banner.h"
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   289
+#endif /* HAVE_TSOL */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   290
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   291
 /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   292
  * Globals...
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   293
@@ -41,6 +45,10 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   294
 	Collate = 0,		/* Collate copies? */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   295
 	Copies = 1;		/* Number of copies */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   296
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   297
+#if defined(HAVE_TSOL)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   298
+/* nolabels option */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   299
+static int		nolabels = 0;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   300
+#endif /* HAVE_TSOL */ 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   301
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   302
 /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   303
  * Local functions...
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   304
@@ -164,6 +172,17 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   305
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   306
   ppd = SetCommonOptions(num_options, options, 0);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   307
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   308
+#if defined(HAVE_TSOL)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   309
+  /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   310
+   * Check for 'nolabels' options and if user is authorized
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   311
+   * to disable labeling.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   312
+   */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   313
+  if (is_system_labeled()) 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   314
+    if ((extract_options(argv[5], "nolabels")) &&
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   315
+       (chkauthattr("solaris.print.unlabeled", argv[2])))
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   316
+	  nolabels = 1; 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   317
+#endif /* HAVE_TSOL */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   318
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   319
   if ((val = cupsGetOption("multiple-document-handling", num_options, options)) != NULL)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   320
   {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   321
    /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   322
@@ -632,29 +651,41 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   323
            "ifelse %.3f mul } bind settransfer\n", g, b);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   324
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   325
   WriteCommon();
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   326
-  switch (Orientation)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   327
+#if defined(HAVE_TSOL)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   328
+  /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   329
+   * In case of Trusted systems labels should always be written on top
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   330
+   * and bottom of the job page irrespective of the orientation.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   331
+   */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   332
+  if (is_system_labeled())
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   333
+    tsol_WriteLabelProlog(cupsGetOption("page-label", num_options, options),
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   334
+					PageBottom, PageTop, PageWidth);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   335
+  else
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   336
+#endif /* HAVE_TSOL */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   337
   {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   338
-    case 0 :
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   339
-	WriteLabelProlog(cupsGetOption("page-label", num_options, options),
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   340
-                	 PageBottom, PageTop, PageWidth);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   341
-        break;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   342
+    switch (Orientation)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   343
+    {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   344
+      case 0 :
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   345
+	  WriteLabelProlog(cupsGetOption("page-label", num_options, options),
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   346
+                 	   PageBottom, PageTop, PageWidth);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   347
+          break;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   348
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   349
-    case 1 :
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   350
-	WriteLabelProlog(cupsGetOption("page-label", num_options, options),
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   351
-                	 PageLeft, PageRight, PageLength);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   352
-        break;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   353
+      case 1 :
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   354
+	  WriteLabelProlog(cupsGetOption("page-label", num_options, options),
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   355
+                	   PageLeft, PageRight, PageLength);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   356
+          break;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   357
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   358
-    case 2 :
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   359
-	WriteLabelProlog(cupsGetOption("page-label", num_options, options),
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   360
-                	 PageLength - PageTop, PageLength - PageBottom,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   361
-			 PageWidth);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   362
-        break;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   363
+      case 2 :
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   364
+	  WriteLabelProlog(cupsGetOption("page-label", num_options, options),
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   365
+                	   PageLength - PageTop, PageLength - PageBottom,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   366
+			   PageWidth);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   367
+          break;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   368
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   369
-    case 3 :
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   370
-	WriteLabelProlog(cupsGetOption("page-label", num_options, options),
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   371
-                	 PageWidth - PageRight, PageWidth - PageLeft,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   372
-			 PageLength);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   373
-        break;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   374
+      case 3 :
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   375
+	  WriteLabelProlog(cupsGetOption("page-label", num_options, options),
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   376
+                	   PageWidth - PageRight, PageWidth - PageLeft,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   377
+			   PageLength);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   378
+          break;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   379
+    }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   380
   }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   381
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   382
   if (realcopies > 1)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   383
@@ -916,7 +947,23 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   384
 	}
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   385
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   386
 	puts("grestore");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   387
+#ifdef HAVE_TSOL
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   388
+	/*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   389
+	 * Page-label should not be written in case user gives '-o nolabels' option
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   390
+	 * and user is authorized to disable page-labels.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   391
+	 *
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   392
+	 * 'nolabels' is set to '1' in case user is authorized to disable page-labels.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   393
+	 */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   394
+	if (is_system_labeled())
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   395
+        {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   396
+          if (!nolabels)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   397
+	    WriteLabels(0);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   398
+        }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   399
+        else
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   400
+          WriteLabels(0);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   401
+#else
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   402
 	WriteLabels(0);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   403
+#endif /* HAVE_TSOL */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   404
 	puts("grestore");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   405
 	puts("showpage");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   406
       }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   407
--- filter/tsol_labeled_banner.c	Mon Apr  2 16:00:28 2012
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   408
+++ filter/tsol_labeled_banner.c	Mon Apr  2 17:33:51 2012
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   409
@@ -0,0 +1,360 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   410
+/*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   411
+ * Add TSOL banner, trailer, page header/footers to a print job
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   412
+ */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   413
+#include "tsol_labeled_banner.h"
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   414
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   415
+/* typedefs */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   416
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   417
+typedef int BOOL;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   418
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   419
+/* constants */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   420
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   421
+#ifndef FALSE
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   422
+#define	FALSE 0
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   423
+#endif
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   424
+#ifndef TRUE
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   425
+#define	TRUE 1
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   426
+#endif
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   427
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   428
+#define	ME "tsol_labeled_banner"
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   429
+#define	SEPARATORPS "/usr/lib/cups/filter/tsol_separator.ps"
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   430
+#define	BANNERPS "/usr/lib/cups/filter/tsol_banner.ps"
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   431
+#define	TRAILERPS "/usr/lib/cups/filter/tsol_trailer.ps"
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   432
+#define	MAXUSERLEN 32
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   433
+#define	MAXHOSTLEN 32
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   434
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   435
+/* prototypes for static functions */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   436
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   437
+static int ProcessArgs(int argc, char **argv);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   438
+static void ParseUsername(char *input, char *user, char *host);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   439
+static void EmitPSFile(const char *name);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   440
+static BOOL EmitFile(FILE *file);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   441
+static void EmitJobData(void);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   442
+static void EmitPrologue(void);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   443
+static void EmitCommandLineInfo(void);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   444
+static void EmitClockBasedInfo(time_t clock);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   445
+static void EmitLabelInfo(void);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   446
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   447
+/* static variables */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   448
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   449
+static char *ArgSeparatorPS;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   450
+static char *ArgBannerPS;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   451
+static char *ArgTrailerPS;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   452
+static char *ArgPrinter;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   453
+static char *ArgJobID;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   454
+static char *ArgUser;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   455
+static char *ArgHost;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   456
+static char *ArgTitle;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   457
+static char *ArgFile;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   458
+static char *ArgOptions;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   459
+static char *ArgCopies;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   460
+static FILE *ArgLogFile;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   461
+static m_label_t *FileLabel;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   462
+static char *plabel;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   463
+static time_t c_time;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   464
+static int banner;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   465
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   466
+/*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   467
+ * tsol_labeled_banner emits the labeled banner or trailer page
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   468
+ * This function gets called from bannertops filter.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   469
+ */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   470
+int
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   471
+tsol_labeled_banner(int argc, char *argv[])
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   472
+{
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   473
+	int	err;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   474
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   475
+	if (ProcessArgs(argc, argv) != 0)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   476
+		return(1);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   477
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   478
+	if ((FileLabel = m_label_alloc(MAC_LABEL)) == NULL)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   479
+		return(1);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   480
+	/*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   481
+	 * peer label can be read from CLASSIFICATION environment variable.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   482
+	 * If there is no CLASSIFICATION value, the file label can be
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   483
+         * determined from its pathname.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   484
+	 */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   485
+	if ((plabel = getenv("CLASSIFICATION")) != NULL) {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   486
+		m_label_free(FileLabel);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   487
+		FileLabel = NULL;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   488
+		if (str_to_label(plabel, &FileLabel, MAC_LABEL,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   489
+		    L_NO_CORRECTION, &err) == -1) {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   490
+			perror("str_to_label");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   491
+			return(1);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   492
+		}
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   493
+	} else if (getlabel(ArgFile, FileLabel) != 0) {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   494
+		(void) fprintf(ArgLogFile,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   495
+		    gettext("%1$s: cannot get label of %2$s: %3$s\n"),
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   496
+		    ME, ArgFile, strerror(errno));
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   497
+		return(1);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   498
+	}
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   499
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   500
+	/* All of these functions return if they encounter an error */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   501
+	EmitJobData();
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   502
+	EmitPSFile(ArgSeparatorPS);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   503
+	
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   504
+	/*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   505
+	 * check if banner or trailer
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   506
+	 */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   507
+	if (banner)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   508
+		EmitPSFile(ArgBannerPS);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   509
+	else
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   510
+		EmitPSFile(ArgTrailerPS); 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   511
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   512
+	m_label_free(FileLabel);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   513
+	return (0);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   514
+}
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   515
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   516
+static void
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   517
+EmitJobData(void)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   518
+{
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   519
+	EmitPrologue();
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   520
+	EmitCommandLineInfo();
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   521
+	EmitClockBasedInfo(c_time);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   522
+	EmitLabelInfo();
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   523
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   524
+	/* Emit ending PostScript code */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   525
+	(void) printf("end\n\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   526
+	(void) printf("%%%% End of code generated by tsol_labeled_banner\n\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   527
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   528
+}
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   529
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   530
+static void
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   531
+EmitPrologue(void)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   532
+{
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   533
+	/* Emit preliminary PostScript code */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   534
+	(void) printf("%%!\n\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   535
+	(void) printf("%%%% Begin code generated by tsol_labeled_banner\n\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   536
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   537
+	(void) printf("%%%% Create JobDict if it doesn't exist\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   538
+	(void) printf("userdict /JobDict known not {\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   539
+	(void) printf("  userdict /JobDict 100 dict put\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   540
+	(void) printf("} if\n\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   541
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   542
+	(void) printf("%%%% Define job parameters, including TSOL security "
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   543
+	    "info\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   544
+	(void) printf("JobDict\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   545
+	(void) printf("begin\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   546
+}
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   547
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   548
+/* Emit parameters obtained from command line options */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   549
+static void
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   550
+EmitCommandLineInfo(void)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   551
+{
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   552
+	char user[MAXUSERLEN + 1];
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   553
+	char host[MAXHOSTLEN + 1];
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   554
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   555
+	(void) printf("\t/Job_Printer (%s) def\n", ArgPrinter);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   556
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   557
+	/*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   558
+	 * If ArgHost is localhost, read SERVER_ADMIN env variable to get hostname.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   559
+	 */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   560
+	if(strcmp(ArgHost, "localhost") == 0)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   561
+	{
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   562
+		ArgHost = getenv("SERVER_ADMIN");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   563
+		ParseUsername(ArgHost, user, host);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   564
+		(void) printf("\t/Job_Host (%s) def\n", host);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   565
+	} else 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   566
+		(void) printf("\t/Job_Host (%s) def\n", ArgHost);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   567
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   568
+	(void) printf("\t/Job_User (%s) def\n", ArgUser);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   569
+	(void) printf("\t/Job_JobID (%s-%s) def\n", ArgPrinter, ArgJobID);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   570
+	(void) printf("\t/Job_Title (%s) def\n", ArgTitle);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   571
+	(void) printf("\t/Job_DoPageLabels (NO) def\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   572
+	(void) printf("\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   573
+}
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   574
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   575
+/* Emit parameters generated from the system clock */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   576
+static void
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   577
+EmitClockBasedInfo(time_t c_time)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   578
+{
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   579
+	(void) printf("\t/Job_Date (%s) def\n", ctime(&c_time));
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   580
+	(void) printf("\t/Job_Hash (%ld) def\n", c_time % 100000L);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   581
+	(void) printf("\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   582
+}
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   583
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   584
+/* Emit parameters derived from the SL and IL of the file being printed. */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   585
+static void
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   586
+EmitLabelInfo(void)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   587
+{
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   588
+	char	*header = NULL;		/* DIA banner page fields */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   589
+	char	*label = NULL;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   590
+	char	*caveats = NULL;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   591
+	char	*channels = NULL;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   592
+	char	*page_label = NULL;	/* interior pages label */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   593
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   594
+	if (label_to_str(FileLabel, &header, PRINTER_TOP_BOTTOM,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   595
+	    DEF_NAMES) != 0) {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   596
+		(void) fprintf(ArgLogFile,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   597
+		    gettext("%s: label_to_str PRINTER_TOP_BOTTOM: %s.\n"),
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   598
+		    ME, strerror(errno));
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   599
+		return;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   600
+	}
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   601
+	if (label_to_str(FileLabel, &label, PRINTER_LABEL,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   602
+	    DEF_NAMES) != 0) {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   603
+		(void) fprintf(ArgLogFile,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   604
+		    gettext("%s: label_to_str PRINTER_LABEL: %s.\n"),
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   605
+		    ME, strerror(errno));
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   606
+		return;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   607
+	}
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   608
+	if (label_to_str(FileLabel, &caveats, PRINTER_CAVEATS,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   609
+	    DEF_NAMES) != 0) {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   610
+		(void) fprintf(ArgLogFile,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   611
+		    gettext("%s: label_to_str PRINTER_CAVEATS: %s.\n"),
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   612
+		    ME, strerror(errno));
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   613
+		return;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   614
+	}
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   615
+	if (label_to_str(FileLabel, &channels, PRINTER_CHANNELS,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   616
+	    DEF_NAMES) != 0) {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   617
+		(void) fprintf(ArgLogFile,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   618
+		    gettext("%s: label_to_str PRINTER_CHANNELS: %s.\n"),
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   619
+		    ME, strerror(errno));
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   620
+		return;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   621
+	}
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   622
+	if (label_to_str(FileLabel, &page_label, M_LABEL,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   623
+	    LONG_NAMES) != 0) {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   624
+		(void) fprintf(ArgLogFile,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   625
+		    gettext("%s: label_to_str M_LABEL: %s.\n"),
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   626
+		    ME, strerror(errno));
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   627
+		return;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   628
+	}
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   629
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   630
+	(void) printf("\t/Job_Classification (%s) def\n", header);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   631
+	(void) printf("\t/Job_Protect (%s) def\n", label);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   632
+	(void) printf("\t/Job_Caveats (%s) def\n", caveats);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   633
+	(void) printf("\t/Job_Channels (%s) def\n", channels);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   634
+	(void) printf("\t/Job_SL_Internal (%s) def\n", page_label);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   635
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   636
+	/* Free memory allocated label_to_str */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   637
+	free(header);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   638
+	free(label);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   639
+	free(caveats);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   640
+	free(channels);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   641
+	free(page_label);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   642
+}
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   643
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   644
+/*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   645
+ * Parse input "host!user" to separate host and user names.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   646
+ */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   647
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   648
+static void
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   649
+ParseUsername(char *input, char *user, char *host)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   650
+{
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   651
+	char *cp;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   652
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   653
+	if ((cp = strchr(input, '@')) != NULL) {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   654
+		/* user@host */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   655
+		(void) strlcpy(host, cp + 1, MAXHOSTLEN + 1);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   656
+		*cp = '\0';
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   657
+		(void) strlcpy(user, input, MAXUSERLEN + 1);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   658
+		*cp = '@';
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   659
+	} else if ((cp = strchr(input, '!')) != NULL) {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   660
+		/* host!user */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   661
+		(void) strlcpy(user, cp + 1, MAXUSERLEN + 1);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   662
+		*cp = '\0';
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   663
+		(void) strlcpy(host, input, MAXHOSTLEN + 1);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   664
+		*cp = '!';
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   665
+	} else {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   666
+		/* user */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   667
+		(void) strlcpy(user, input, MAXUSERLEN + 1);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   668
+		host[0] = '\0';
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   669
+	}
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   670
+}
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   671
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   672
+static BOOL
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   673
+EmitFile(FILE *file)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   674
+{
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   675
+	int len;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   676
+#define	BUFLEN 1024
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   677
+	char buf[BUFLEN];
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   678
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   679
+	while ((len = fread(buf, 1, BUFLEN, file)) > 0) {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   680
+		if (fwrite(buf, 1, len, stdout) != len)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   681
+			return (FALSE);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   682
+	}
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   683
+	if (!feof(file))
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   684
+		return (FALSE);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   685
+	return (TRUE);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   686
+}
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   687
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   688
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   689
+static void
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   690
+EmitPSFile(const char *name)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   691
+{
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   692
+	char path[PATH_MAX];
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   693
+	FILE *file;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   694
+	BOOL emitted;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   695
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   696
+	(void) strlcpy(path, name, sizeof (path));
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   697
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   698
+	file = fopen(path, "r");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   699
+	if (file == NULL) {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   700
+		(void) fprintf(ArgLogFile,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   701
+		    gettext("%s: Error opening PostScript file %s. %s.\n"),
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   702
+		    ME, path, strerror(errno));
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   703
+		return;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   704
+	}
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   705
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   706
+	emitted = EmitFile(file);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   707
+	(void) fclose(file);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   708
+	if (!emitted) {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   709
+		(void) fprintf(ArgLogFile, gettext(
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   710
+		    "%s: Error copying PostScript file %s to stdout.\n"),
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   711
+		    ME, path);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   712
+		return;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   713
+	}
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   714
+}
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   715
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   716
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   717
+static int
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   718
+ProcessArgs(int argc, char *argv[])
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   719
+{
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   720
+	/* set default values for arguments */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   721
+	ArgSeparatorPS = SEPARATORPS;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   722
+	ArgBannerPS = BANNERPS;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   723
+	ArgTrailerPS = TRAILERPS;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   724
+	ArgLogFile = stderr;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   725
+	banner = 0;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   726
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   727
+	ArgPrinter = argv++[0];
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   728
+	ArgJobID = argv++[0];
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   729
+	ArgUser = argv++[0];
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   730
+	ArgTitle = argv++[0];
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   731
+	ArgCopies = argv++[0];
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   732
+	ArgOptions = argv++[0];
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   733
+	ArgFile = argv++[0];
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   734
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   735
+	/*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   736
+	 * Read options string to check if call is for
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   737
+	 * banner page. If call is for banner page then
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   738
+	 * options string contains 'banner=true'. 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   739
+	 */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   740
+	if(extract_options(ArgOptions, "banner="))
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   741
+		banner = 1;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   742
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   743
+	/*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   744
+	 * Read options string to get the job creation time.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   745
+	 */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   746
+	c_time = atoi(extract_options(ArgOptions, "time-at-creation"));
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   747
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   748
+	/*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   749
+	 * Read options string to get the originating hostname of
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   750
+	 * the job.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   751
+	 */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   752
+	ArgHost=extract_options(ArgOptions, "job-originating-host-name=");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   753
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   754
+	return (0);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   755
+}
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   756
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   757
+/* Check if string 'str' exists in options. */   
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   758
+char * extract_options(const char *options, const char *str) {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   759
+	char *chk2 = NULL, *chk1 = NULL;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   760
+	char *optstr = strdup(options);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   761
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   762
+	chk2 = strstr(optstr, str);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   763
+	if (chk2) {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   764
+        	chk1 = strtok(chk2, "=");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   765
+        	chk2 = strtok(NULL, " ");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   766
+	}
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   767
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   768
+	return chk2;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   769
+}
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   770
--- filter/tsol_labeled_banner.h	Mon Apr  2 16:00:30 2012
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   771
+++ filter/tsol_labeled_banner.h	Mon Apr  2 17:33:51 2012
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   772
@@ -0,0 +1,12 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   773
+#include <stdio.h>
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   774
+#include <stdlib.h>
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   775
+#include <string.h>
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   776
+#include <time.h>
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   777
+#include <limits.h>
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   778
+#include <errno.h>
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   779
+#include <signal.h>
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   780
+#include <locale.h>
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   781
+#include <tsol/label.h>
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   782
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   783
+int tsol_labeled_banner(int argc, char *argv[]);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   784
+char *extract_options(const char *, const char *);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   785
--- scheduler/client.c	Mon Apr  2 17:30:50 2012
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   786
+++ scheduler/client.c	Mon Apr  2 17:33:51 2012
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   787
@@ -145,6 +145,8 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   788
   if (is_system_labeled()) {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   789
     ucred_t *cred = NULL;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   790
     m_label_t *slabel;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   791
+    m_label_t *admin_low = m_label_alloc(MAC_LABEL);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   792
+    m_label_t *admin_high = m_label_alloc(MAC_LABEL);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   793
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   794
     if (getpeerucred(fd, &cred) == -1)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   795
       return (-1);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   796
@@ -151,9 +153,32 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   797
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   798
     slabel = ucred_getlabel(cred);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   799
     *label = NULL;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   800
-    if (label_to_str(slabel, label, M_INTERNAL, DEF_NAMES) != 0)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   801
-      cupsdLogMessage(CUPSD_LOG_ERROR, "getpeercon(%d, 0x%8.8x): %s",
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   802
-                      fd, (int)label, strerror(errno));
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   803
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   804
+    if ((admin_low == NULL) || (admin_high == NULL))
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   805
+      cupsdLogMessage(CUPSD_LOG_ERROR, "getpeerseclabel(%d, unable to"
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   806
+		      " allocate admin_low/admin_high label", fd);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   807
+    else
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   808
+    {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   809
+      bsllow(admin_low);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   810
+      bslhigh(admin_high);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   811
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   812
+      /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   813
+       * Remote print requests from the global zone
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   814
+       * arrive at admin_low, make them admin_high to
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   815
+       * avoid downgrade.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   816
+       */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   817
+      if (blequal(slabel, admin_low))
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   818
+      {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   819
+        slabel = admin_high;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   820
+        cupsdLogMessage(CUPSD_LOG_DEBUG, "getpeerseclabel(%d, upgrade"
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   821
+		        " admin_low label to admin_high", fd);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   822
+      } 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   823
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   824
+      if (label_to_str(slabel, label, M_LABEL, DEF_NAMES) != 0)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   825
+        cupsdLogMessage(CUPSD_LOG_ERROR, "getpeerseclabel(%d, 0x%8.8x): %s",
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   826
+			fd, (int)label, strerror(errno));
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   827
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   828
+    }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   829
     ucred_free(cred);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   830
   }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   831
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   832
--- scheduler/job.c	Mon Apr  2 17:30:50 2012
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   833
+++ scheduler/job.c	Mon Apr  2 17:33:51 2012
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   834
@@ -3193,6 +3193,24 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   835
   for (i = num_pwgppds, pwgppd = pwgppds; i > 0; i --, pwgppd ++)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   836
     newlength += 1 + strlen(pwgppd->name) + 1 + strlen(pwgppd->value);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   837
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   838
+#if defined(HAVE_TSOL)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   839
+  if (is_system_labeled())
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   840
+    if(job->current_file == 0)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   841
+      /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   842
+       * Increase length to add option ' banner=true' to options string
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   843
+       * in case of banner page.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   844
+       */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   845
+      newlength += strlen(" banner=true");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   846
+    else if (job->job_sheets->num_values > 1 &&
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   847
+             job->current_file == (job->num_files - 1))
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   848
+      /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   849
+       * Increase length to add option ' trailer=true' to options string
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   850
+       * in case of trailer page.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   851
+       */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   852
+      newlength += strlen(" trailer=true");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   853
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   854
+#endif /* HAVE_TSOL */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   855
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   856
  /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   857
   * Then allocate/reallocate the option buffer as needed...
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   858
   */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   859
@@ -3380,6 +3398,24 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   860
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   861
   cupsFreeOptions(num_pwgppds, pwgppds);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   862
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   863
+#if defined(HAVE_TSOL)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   864
+  if (is_system_labeled())
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   865
+    if(job->current_file == 0)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   866
+      /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   867
+       * Add option ' banner=true' to options string
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   868
+       * in case of banner page.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   869
+       */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   870
+      strlcat(optptr, " banner=true", 13);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   871
+    else if (/*job->job_sheets->num_values > 1 && */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   872
+             job->current_file == (job->num_files - 1)) 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   873
+      /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   874
+       * Add option ' trailer=true' to options string
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   875
+       * in case of trailer page.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   876
+       */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   877
+      strlcat(optptr, " trailer=true", 14);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   878
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   879
+#endif /* HAVE_TSOL */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   880
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   881
  /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   882
   * Return the options string...
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   883
   */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   884
--- scheduler/printers.c	Mon Apr  2 17:30:50 2012
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   885
+++ scheduler/printers.c	Mon Apr  2 17:33:51 2012
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   886
@@ -2676,12 +2676,22 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   887
     ippDelete(oldattrs);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   888
   }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   889
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   890
+#if defined(HAVE_TSOL)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   891
  /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   892
-  * Force sharing off for remote queues...
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   893
+  * Allow sharing for remote queues.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   894
+  * This is required for cascade printing.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   895
   */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   896
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   897
-  if (p->type & (CUPS_PRINTER_REMOTE | CUPS_PRINTER_IMPLICIT))
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   898
-    p->shared = 0;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   899
+  if ((p->type & (CUPS_PRINTER_REMOTE | CUPS_PRINTER_IMPLICIT)) &&
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   900
+       !is_system_labeled())
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   901
+#else
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   902
+  /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   903
+   * Force sharing off for remote queues...
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   904
+   */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   905
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   906
+   if (p->type & (CUPS_PRINTER_REMOTE | CUPS_PRINTER_IMPLICIT))
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   907
+#endif /* HAVE_TSOL */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   908
+    p->shared = 0; 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   909
   else
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   910
   {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   911
    /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   912
--- berkeley/lpq.c	Thu Apr  5 11:12:37 2012
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   913
+++ berkeley/lpq.c	Thu Apr  5 11:30:46 2012
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   914
@@ -77,7 +77,6 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   915
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   916
   http       = NULL;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   917
   dest       = NULL;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   918
-  user       = NULL;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   919
   id         = 0;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   920
   interval   = 0;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   921
   longstatus = 0;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   922
@@ -84,6 +83,12 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   923
   all        = 0;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   924
   num_dests  = 0;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   925
   dests      = NULL;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   926
+#if defined (HAVE_TSOL)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   927
+  if (is_system_labeled())
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   928
+    user = cupsUser();
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   929
+  else
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   930
+#endif /* HAVE_TSOL */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   931
+    user = NULL;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   932
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   933
   for (i = 1; i < argc; i ++)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   934
     if (argv[i][0] == '+')
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   935
--- scheduler/auth.c	Wed Oct  6 13:07:44 2010
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   936
+++ scheduler/auth.c	Fri Apr  6 10:37:14 2012
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   937
@@ -2253,8 +2253,38 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   938
 #endif /* HAVE_AUTHORIZATION_H */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   939
     {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   940
       if (best->satisfy == CUPSD_AUTH_SATISFY_ALL || auth == CUPSD_AUTH_DENY)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   941
+      {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   942
+#if defined(HAVE_TSOL)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   943
+	if (is_system_labeled())
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   944
+	{
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   945
+	  /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   946
+	   * Read requesting-user-name attribute.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   947
+	   */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   948
+	  ipp_attribute_t *attr = ippFindAttribute(con->request,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   949
+				"requesting-user-name", IPP_TAG_NAME);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   950
+	  if (attr)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   951
+	  {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   952
+	    cupsdLogMessage(CUPSD_LOG_DEBUG,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   953
+			    "cupsdIsAuthorized: requesting-user-name=\"%s\"",
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   954
+			    attr->values[0].string.text);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   955
+	   /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   956
+	    * Check if requesting-user-name has
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   957
+	    * 'solaris.print.admin' authorization
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   958
+	    */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   959
+	    if(chkauthattr("solaris.print.admin", attr->values[0].string.text))
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   960
+	    {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   961
+	      cupsdLogMessage(CUPSD_LOG_DEBUG,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   962
+			      "cupsdIsAuthorized: username=\"%s\" has "
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   963
+			      "solaris.print.admin authorization",
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   964
+			      attr->values[0].string.text);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   965
+	      return (HTTP_OK);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   966
+	    }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   967
+	  } 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   968
+	  cupsdLogMessage(CUPSD_LOG_DEBUG, "cupsdIsAuthorized: HTTP_UNAUTHORIZED");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   969
+	}
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   970
+#endif /* HAVE_TSOL */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   971
 	return (HTTP_UNAUTHORIZED);	/* Non-anonymous needs user/pass */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   972
-      else
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   973
+      } else
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   974
 	return (HTTP_OK);		/* unless overridden with Satisfy */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   975
     }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   976
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   977
--- scheduler/ipp.c	Fri Apr  6 10:44:27 2012
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   978
+++ scheduler/ipp.c	Fri Apr  6 10:55:56 2012
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   979
@@ -124,6 +124,11 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   980
 #  endif /* HAVE_MEMBERSHIPPRIV_H */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   981
 #endif /* __APPLE__ */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   982
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   983
+#if defined(HAVE_TSOL)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   984
+#include <deflt.h>
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   985
+#include <auth_attr.h>
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   986
+#include <secdb.h>
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   987
+#endif /* HAVE_TSOL */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   988
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   989
 /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   990
  * Local functions...
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   991
@@ -836,18 +841,38 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   992
   printer = cupsdFindDest(job->dest);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   993
   attr    = ippFindAttribute(job->attrs, "job-sheets", IPP_TAG_NAME);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   994
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   995
+#if defined(HAVE_TSOL) 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   996
   if (printer &&
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   997
       !(printer->type & (CUPS_PRINTER_REMOTE | CUPS_PRINTER_IMPLICIT)) &&
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   998
-      attr && attr->num_values > 1)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
   999
-  {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1000
-   /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1001
-    * Yes...
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1002
-    */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1003
+      attr && (attr->num_values > 1 || is_system_labeled()))
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1004
+#else
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1005
+  if (printer &&
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1006
+      !(printer->type & (CUPS_PRINTER_REMOTE | CUPS_PRINTER_IMPLICIT)) &&
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1007
+      attr && (attr->num_values > 1))  
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1008
+#endif /* HAVE_TSOL */ 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1009
+ {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1010
+    char *job_sheets_banner = attr->values[1].string.text;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1011
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1012
+#if defined(HAVE_TSOL)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1013
+    if (is_system_labeled()) {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1014
+      /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1015
+       * Initialize job_sheets_banner to start banner value.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1016
+       * In case start banner is 'none' and user is authorized
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1017
+       * to disable printing banner/trailer pages, trailer page
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1018
+       * should not be printed.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1019
+       */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1020
+      job_sheets_banner = attr->values[0].string.text;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1021
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1022
+      if ((strcmp(job_sheets_banner, "none") != 0) ||
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1023
+	  (!chkauthattr("solaris.print.nobanner", job->username)))
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1024
+	  job_sheets_banner = "labeled";
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1025
+    }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1026
+#endif /* HAVE_TSOL */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1027
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1028
     cupsdLogJob(job, CUPSD_LOG_INFO, "Adding end banner page \"%s\".",
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1029
-                attr->values[1].string.text);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1030
+                job_sheets_banner);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1031
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1032
-    if ((kbytes = copy_banner(NULL, job, attr->values[1].string.text)) < 0)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1033
+    if ((kbytes = copy_banner(NULL, job, job_sheets_banner)) < 0)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1034
       return (-1);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1035
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1036
     cupsdUpdateQuota(printer, job->username, 0, kbytes);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1037
@@ -890,7 +915,7 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1038
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1039
     if (str_to_label(label, &sl, USER_CLEAR, L_NO_CORRECTION, NULL) == 0)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1040
     {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1041
-      (void) label_to_str(sl, &result, PRINTER_TOP_BOTTOM, DEF_NAMES);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1042
+      (void) label_to_str(sl, &result, M_LABEL, LONG_NAMES);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1043
       if (result == NULL)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1044
         result = label;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1045
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1046
@@ -1751,7 +1776,7 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1047
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1048
     if (attr->value_tag != IPP_TAG_NAME ||
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1049
         attr->num_values != 1 ||
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1050
-        strcmp(con->http.hostname, "localhost"))
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1051
+        (strcmp(attr->values[0].string.text, "localhost") == 0))
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1052
     {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1053
      /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1054
       * Can't override the value if we aren't connected via localhost.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1055
@@ -1797,7 +1822,7 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1056
       attr->value_tag             = IPP_TAG_NAME;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1057
       attr->num_values            = 1;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1058
       attr->values[0].string.text = _cupsStrAlloc(con->http.hostname);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1059
-    }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1060
+  }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1061
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1062
     attr->group_tag = IPP_TAG_JOB;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1063
   }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1064
@@ -2011,10 +2036,24 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1065
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1066
     if (!(printer->type & (CUPS_PRINTER_REMOTE | CUPS_PRINTER_IMPLICIT)))
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1067
     {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1068
+      char *job_sheets_banner = attr->values[0].string.text;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1069
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1070
+#if defined(HAVE_TSOL)   
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1071
+      if (is_system_labeled()) {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1072
+        /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1073
+         * If attr->values[0].string.text is 'none', then check if
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1074
+         * user is authorized to disable printing banner pages.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1075
+         */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1076
+	if ((strcmp(job_sheets_banner, "none") != 0) ||
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1077
+	  (!chkauthattr("solaris.print.nobanner", job->username)))
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1078
+	    job_sheets_banner = "labeled";
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1079
+      }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1080
+#endif /* HAVE_TSOL */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1081
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1082
       cupsdLogJob(job, CUPSD_LOG_INFO, "Adding start banner page \"%s\".",
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1083
-		  attr->values[0].string.text);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1084
+		  job_sheets_banner);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1085
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1086
-      if ((kbytes = copy_banner(con, job, attr->values[0].string.text)) < 0)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1087
+      if ((kbytes = copy_banner(con, job, job_sheets_banner)) < 0)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1088
       {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1089
         cupsdSetJobState(job, IPP_JOB_ABORTED, CUPSD_JOB_PURGE,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1090
 	                 "Aborting job because the start banner could not be "
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1091
@@ -7213,6 +7252,21 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1092
   else
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1093
     username[0] = '\0';
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1094
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1095
+#if defined(HAVE_TSOL)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1096
+ /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1097
+  * By default, see jobs for a specific user in case of
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1098
+  * Trusted Extensions environment.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1099
+  * List all jobs if the user is authorized.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1100
+  */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1101
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1102
+  if (!chkauthattr("solaris.print.list", get_username(con)))
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1103
+    strlcpy(username, get_username(con), sizeof(username));
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1104
+  else
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1105
+    username[0] = '\0';
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1106
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1107
+#endif /* HAVE_TSOL */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1108
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1109
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1110
   if ((ra = create_requested_array(con->request)) == NULL &&
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1111
       !ippFindAttribute(con->request, "requested-attributes", IPP_TAG_KEYWORD))
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1112
   {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1113
--- filter/pstops.c	Tue Aug 31 11:36:08 2010
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1114
+++ filter/pstops.c	Fri Apr  6 11:05:36 2012
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1115
@@ -61,6 +61,11 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1116
 #include <signal.h>
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1117
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1118
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1119
+#if defined(HAVE_TSOL)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1120
+#include <auth_attr.h>
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1121
+#include "tsol_labeled_banner.h"
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1122
+#endif /* HAVE_TSOL */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1123
+ 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1124
 /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1125
  * Constants...
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1126
  */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1127
@@ -166,6 +171,10 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1128
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1129
 static int		JobCanceled = 0;/* Set to 1 on SIGTERM */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1130
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1131
+#if defined(HAVE_TSOL)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1132
+/* nolabels option */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1133
+static int		nolabels = 0;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1134
+#endif /* HAVE_TSOL */ 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1135
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1136
 /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1137
  * Local functions...
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1138
@@ -222,6 +231,12 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1139
 static void		write_label_prolog(pstops_doc_t *doc, const char *label,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1140
 			                   float bottom, float top,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1141
 					   float width);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1142
+#if defined(HAVE_TSOL)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1143
+static void		tsol_write_label_prolog(pstops_doc_t *doc,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1144
+                                                const char *label,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1145
+						float bottom, float top,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1146
+						float width);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1147
+#endif /* HAVE_TSOL */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1148
 static void		write_labels(pstops_doc_t *doc, int orient);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1149
 static void		write_options(pstops_doc_t  *doc, ppd_file_t *ppd,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1150
 			              int num_options, cups_option_t *options);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1151
@@ -322,6 +337,19 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1152
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1153
   set_pstops_options(&doc, ppd, argv, num_options, options);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1154
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1155
+#if defined(HAVE_TSOL)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1156
+  if (is_system_labeled()) 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1157
+  {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1158
+    /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1159
+     * Check for 'nolabels' options and if user is authorized
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1160
+     * to disable labeling.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1161
+     */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1162
+     if ((extract_options(argv[5], "nolabels")) &&
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1163
+         (chkauthattr("solaris.print.unlabeled", doc.user)))
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1164
+	  nolabels = 1; 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1165
+  }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1166
+#endif /* HAVE_TSOL */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1167
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1168
  /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1169
   * Write any "exit server" options that have been selected...
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1170
   */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1171
@@ -2076,6 +2104,19 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1172
   * Write the page and label prologs...
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1173
   */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1174
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1175
+#ifdef HAVE_TSOL
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1176
+  if (is_system_labeled())
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1177
+  {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1178
+     if (Orientation & 1)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1179
+       /* For landscape and reverse landscape */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1180
+       tsol_write_label_prolog(doc, doc->page_label, PageLeft, PageRight,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1181
+			       PageLength);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1182
+     else
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1183
+       /* For portrait and reverse portrait */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1184
+       tsol_write_label_prolog(doc, doc->page_label, PageBottom, PageTop, PageWidth);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1185
+  } 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1186
+  else 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1187
+#endif /* HAVE_TSOL */ 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1188
   if (doc->number_up == 2 || doc->number_up == 6)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1189
   {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1190
    /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1191
@@ -3290,7 +3331,76 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1192
   }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1193
 }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1194
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1195
+#if defined(HAVE_TSOL)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1196
+/*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1197
+ * 'tsol_write_label_prolog()' - Write the prolog with the page label
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1198
+ *			       for labeled system.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1199
+ */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1200
+static void
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1201
+tsol_write_label_prolog(pstops_doc_t *doc,	/* I - Document info */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1202
+                   const char   *label,	/* I - Page label */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1203
+		   float        bottom,	/* I - Bottom position in points */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1204
+		   float        top,	/* I - Top position in points */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1205
+		   float        width)	/* I - Width in points */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1206
+{
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1207
+  const char	*ptr;			/* Temporary string pointer */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1208
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1209
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1210
+ /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1211
+  * If there is nothing to show, bind an empty 'write labels' procedure
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1212
+  * and return...
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1213
+  */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1214
+  if (label == NULL || !label[0])
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1215
+  {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1216
+    doc_puts(doc, "userdict/ESPwl{}bind put\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1217
+    return;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1218
+  }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1219
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1220
+ /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1221
+  * Set the page label string...
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1222
+  */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1223
+  doc_puts(doc, "userdict");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1224
+  doc_puts(doc, "/ESPpl(");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1225
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1226
+  if (label)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1227
+    doc_puts(doc, label);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1228
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1229
+  doc_puts(doc, ")put\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1230
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1231
+  doc_puts(doc, "userdict");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1232
+  doc_puts(doc, ClippedLabel);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1233
+  doc_puts(doc, append);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1234
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1235
+  doc_puts(doc, "\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1236
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1237
+ /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1238
+  * Then get a 12 point Courier-Bold font...
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1239
+  */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1240
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1241
+  doc_puts(doc, "userdict");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1242
+  doc_puts(doc, ESPpf);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1243
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1244
+ /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1245
+  * Finally, the procedure to write the labels on the page...
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1246
+  */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1247
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1248
+  doc_puts(doc, "userdict/ESPwl{\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1249
+  doc_puts(doc, "  ESPpf setfont\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1250
+  doc_printf(doc, "  ClippedLabel stringwidth pop dup 12 add exch -0.5 mul %.0f add\n",
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1251
+	width * 0.5f);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1252
+  doc_puts(doc, "  0 setgray\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1253
+  doc_printf(doc, "  dup 6 sub %.0f 3 index 10 ESPrf\n", bottom - 1.0);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1254
+  doc_printf(doc, "  dup 6 sub %.0f 3 index 10 ESPrf\n", top - 19.0);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1255
+  doc_puts(doc, "  1 setgray\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1256
+  doc_printf(doc, "  dup 6 sub %.0f 3 index 10 ESPrs\n", bottom - 1.0);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1257
+  doc_printf(doc, "  dup 6 sub %.0f 3 index 10 ESPrs\n", top - 19.0);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1258
+  doc_printf(doc, "  dup %.0f moveto ClippedLabel show\n", bottom + 1.0);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1259
+  doc_printf(doc, "  %.0f moveto ClippedLabel show\n", top - 17.0);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1260
+  doc_puts(doc, "pop\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1261
+  doc_puts(doc, "}bind put\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1262
+}
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1263
+#endif /* HAVE_TSOL */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1264
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1265
 /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1266
  * 'write_label_prolog()' - Write the prolog with the classification
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1267
  *                          and page label.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1268
@@ -3436,20 +3546,59 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1269
     length = PageLength;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1270
   }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1271
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1272
-  switch (orient & 3)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1273
+#ifdef HAVE_TSOL
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1274
+  if (is_system_labeled())
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1275
   {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1276
-    case 1 : /* Landscape */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1277
-        doc_printf(doc, "%.1f 0.0 translate 90 rotate\n", length);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1278
-        break;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1279
-    case 2 : /* Reverse Portrait */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1280
-        doc_printf(doc, "%.1f %.1f translate 180 rotate\n", width, length);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1281
-        break;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1282
-    case 3 : /* Reverse Landscape */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1283
-        doc_printf(doc, "0.0 %.1f translate -90 rotate\n", width);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1284
-        break;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1285
+    /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1286
+     * For 2- and 6-up output, do not rotate the labels.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1287
+     * Labels should be always on top & bottom of the job page.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1288
+     */ 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1289
+    if (doc->number_up != 2 && doc->number_up != 6) 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1290
+    {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1291
+      switch (orient & 3)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1292
+      {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1293
+        case 1 : /* Landscape */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1294
+	  doc_printf(doc, "0.0 %.1f translate -90 rotate\n", length);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1295
+	  break;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1296
+	case 2 : /* Reverse Portrait */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1297
+	  doc_printf(doc, "%.1f %.1f translate 180 rotate\n", width, length);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1298
+	  break;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1299
+	case 3 : /* Reverse Landscape */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1300
+	  doc_printf(doc, "%.1f 0.0 translate 90 rotate\n", width);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1301
+	  break;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1302
+      }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1303
+    }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1304
   }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1305
+  else
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1306
+#endif /* HAVE_TSOL */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1307
+  {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1308
+    switch (orient & 3)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1309
+    {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1310
+      case 1 : /* Landscape */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1311
+	doc_printf(doc, "%.1f 0.0 translate 90 rotate\n", length);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1312
+	break;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1313
+      case 2 : /* Reverse Portrait */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1314
+	doc_printf(doc, "%.1f %.1f translate 180 rotate\n", width, length);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1315
+	break;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1316
+      case 3 : /* Reverse Landscape */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1317
+	doc_printf(doc, "0.0 %.1f translate -90 rotate\n", width);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1318
+	break;
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1319
+    }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1320
+  }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1321
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1322
+#ifdef HAVE_TSOL
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1323
+  /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1324
+   * Page-label should not be written in case user gives '-o nolabels' option
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1325
+   * and user is authorized to disable page-labels.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1326
+   *
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1327
+   * 'nolabels' is set to '1' in case user is authorized to disable page-labels.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1328
+   */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1329
+  if (is_system_labeled() && !nolabels)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1330
+     doc_puts(doc, "ESPwl\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1331
+#else
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1332
   doc_puts(doc, "ESPwl\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1333
+#endif /* HAVE_TSOL */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1334
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1335
   doc_puts(doc, "grestore\n");
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1336
 }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1337
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1338
--- systemv/lpadmin.c	Thu Aug 12 18:34:04 2010
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1339
+++ systemv/lpadmin.c	Fri Apr  6 11:10:17 2012
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1340
@@ -701,6 +701,18 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1341
   ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1342
                "printer-uri", NULL, uri);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1343
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1344
+#if defined(HAVE_TSOL)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1345
+  /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1346
+   * Add requesting-user-name to the request.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1347
+   * This is required to authorize a user to add a printer to a class.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1348
+   */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1349
+  if (is_system_labeled())
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1350
+  {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1351
+    ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1352
+		 "requesting-user-name", NULL, cupsUser());
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1353
+  }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1354
+#endif /* HAVE_TSOL */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1355
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1356
  /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1357
   * See if the printer is already in the class...
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1358
   */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1359
@@ -804,6 +816,18 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1360
   ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1361
                "printer-uri", NULL, uri);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1362
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1363
+#if defined(HAVE_TSOL)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1364
+  /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1365
+   * Add requesting-user-name to the request.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1366
+   * This is required to authorize a user to set the default printer.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1367
+   */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1368
+  if (is_system_labeled())
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1369
+  {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1370
+    ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1371
+		 "requesting-user-name", NULL, cupsUser());
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1372
+  }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1373
+#endif /* HAVE_TSOL */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1374
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1375
  /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1376
   * Do the request and get back a response...
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1377
   */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1378
@@ -862,6 +886,18 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1379
   ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1380
                "printer-uri", NULL, uri);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1381
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1382
+#if defined(HAVE_TSOL)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1383
+  /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1384
+   * Add requesting-user-name to the request.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1385
+   * This is required to authorize a user to delete a printer.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1386
+   */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1387
+  if (is_system_labeled())
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1388
+  {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1389
+    ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1390
+		 "requesting-user-name", NULL, cupsUser());
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1391
+  }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1392
+#endif /* HAVE_TSOL */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1393
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1394
  /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1395
   * Do the request and get back a response...
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1396
   */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1397
@@ -983,6 +1019,19 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1398
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1399
     ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1400
         	 "printer-uri", NULL, uri);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1401
+
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1402
+#if defined(HAVE_TSOL)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1403
+    /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1404
+     * Add requesting-user-name to the request.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1405
+     * This is required to authorize a user to delete a printer from
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1406
+     * a class.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1407
+     */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1408
+    if (is_system_labeled())
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1409
+    {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1410
+      ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1411
+                   "requesting-user-name", NULL, cupsUser());
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1412
+    }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1413
+#endif /* HAVE_TSOL */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1414
   }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1415
   else
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1416
   {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1417
@@ -1001,6 +1050,18 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1418
     ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1419
         	 "printer-uri", NULL, uri);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1420
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1421
+#if defined(HAVE_TSOL)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1422
+    /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1423
+     * Add requesting-user-name to the request.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1424
+     * This is required to authorize a user to delete a printer from
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1425
+     * a class.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1426
+     */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1427
+    if (is_system_labeled())
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1428
+    {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1429
+      ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1430
+                   "requesting-user-name", NULL, cupsUser());
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1431
+    }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1432
+#endif /* HAVE_TSOL */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1433
    /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1434
     * Delete the printer from the class...
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1435
     */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1436
@@ -1076,6 +1137,17 @@
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1437
                    "localhost", 0, "/printers/%s", printer);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1438
   ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1439
                "printer-uri", NULL, uri);
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1440
+#if defined(HAVE_TSOL)
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1441
+  /*
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1442
+   * Add requesting-user-name to the request.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1443
+   * This is required to authorize a user to enable a printer.
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1444
+   */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1445
+  if (is_system_labeled())
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1446
+  {
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1447
+    ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME,
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1448
+     		 "requesting-user-name", NULL, cupsUser());
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1449
+  }
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1450
+#endif /* HAVE_TSOL */
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1451
 
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1452
   ippAddInteger(request, IPP_TAG_PRINTER, IPP_TAG_ENUM, "printer-state",
68e4ba640241 7084880 CUPS functionality for TX lp interfaces
sonam gupta - Sun Microsystems - Bangalore India <Sonam.Gupta@Sun.COM>
parents:
diff changeset
  1453
                 IPP_PRINTER_IDLE);