summaryrefslogtreecommitdiff
path: root/source3/param
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2000-09-19 22:32:56 +0000
committerJeremy Allison <jra@samba.org>2000-09-19 22:32:56 +0000
commit13904f585cbc4ccd5a366c288e6a32af44c30d27 (patch)
treed663eeabdcd19910d8117c1e61311a2bc57c9c81 /source3/param
parent06e2871f7245c634d502cba12ba4a5fe9858b3ee (diff)
downloadsamba-13904f585cbc4ccd5a366c288e6a32af44c30d27.tar.gz
samba-13904f585cbc4ccd5a366c288e6a32af44c30d27.tar.bz2
samba-13904f585cbc4ccd5a366c288e6a32af44c30d27.zip
param/loadparm.c: Fix based on Damian's code to stop printer scripts getting overwritten.
rpc_parse/parse_spoolss.c: Tidyup to call function for relstring arrays. Win2000 now does "Add Printer" successfully !!!!! Jeremy. (This used to be commit d666b958bc335c7fceebeb7a6333d78bc421c30f)
Diffstat (limited to 'source3/param')
-rw-r--r--source3/param/loadparm.c184
1 files changed, 97 insertions, 87 deletions
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
index 129a9396f3..883d03f6a4 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -988,6 +988,92 @@ static struct parm_struct parm_table[] = {
};
+/***************************************************************************
+Initialise the sDefault parameter structure for the printer values.
+***************************************************************************/
+static void init_printer_values(void)
+{
+ string_set(&sDefault.szPrinterDriver, "");
+ string_set(&sDefault.szDriverFile, DRIVERFILE);
+
+ /* choose defaults depending on the type of printing */
+ switch (sDefault.iPrinting)
+ {
+ case PRINT_BSD:
+ case PRINT_AIX:
+ string_set(&sDefault.szLpqcommand, "lpq -P%p");
+ string_set(&sDefault.szLprmcommand, "lprm -P%p %j");
+ string_set(&sDefault.szPrintcommand,
+ "lpr -r -P%p %s");
+ break;
+
+ case PRINT_LPRNG:
+ case PRINT_PLP:
+ string_set(&sDefault.szLpqcommand, "lpq -P%p");
+ string_set(&sDefault.szLprmcommand, "lprm -P%p %j");
+ string_set(&sDefault.szPrintcommand,
+ "lpr -r -P%p %s");
+ string_set(&sDefault.szQueuepausecommand,
+ "lpc stop %p");
+ string_set(&sDefault.szQueueresumecommand,
+ "lpc start %p");
+ string_set(&sDefault.szLppausecommand,
+ "lpc hold %p %j");
+ string_set(&sDefault.szLpresumecommand,
+ "lpc release %p %j");
+ break;
+
+ case PRINT_CUPS:
+ string_set(&sDefault.szLpqcommand,
+ "/usr/bin/lpstat -o%p");
+ string_set(&sDefault.szLprmcommand,
+ "/usr/bin/cancel %p-%j");
+ string_set(&sDefault.szPrintcommand,
+ "/usr/bin/lp -d%p -oraw %s; rm %s");
+ string_set(&sDefault.szQueuepausecommand,
+ "/usr/bin/disable %p");
+ string_set(&sDefault.szQueueresumecommand,
+ "/usr/bin/enable %p");
+ break;
+
+ case PRINT_SYSV:
+ case PRINT_HPUX:
+ string_set(&sDefault.szLpqcommand, "lpstat -o%p");
+ string_set(&sDefault.szLprmcommand, "cancel %p-%j");
+ string_set(&sDefault.szPrintcommand,
+ "lp -c -d%p %s; rm %s");
+ string_set(&sDefault.szQueuepausecommand,
+ "disable %p");
+ string_set(&sDefault.szQueueresumecommand,
+ "enable %p");
+#ifndef HPUX
+ string_set(&sDefault.szLppausecommand,
+ "lp -i %p-%j -H hold");
+ string_set(&sDefault.szLpresumecommand,
+ "lp -i %p-%j -H resume");
+#endif /* SYSV */
+ break;
+
+ case PRINT_QNX:
+ string_set(&sDefault.szLpqcommand, "lpq -P%p");
+ string_set(&sDefault.szLprmcommand, "lprm -P%p %j");
+ string_set(&sDefault.szPrintcommand, "lp -r -P%p %s");
+ break;
+
+ case PRINT_SOFTQ:
+ string_set(&sDefault.szLpqcommand, "qstat -l -d%p");
+ string_set(&sDefault.szLprmcommand,
+ "qstat -s -j%j -c");
+ string_set(&sDefault.szPrintcommand,
+ "lp -d%p -s %s; rm %s");
+ string_set(&sDefault.szLppausecommand,
+ "qstat -s -j%j -h");
+ string_set(&sDefault.szLpresumecommand,
+ "qstat -s -j%j -r");
+ break;
+
+ }
+}
/***************************************************************************
Initialise the global parameter structure.
@@ -1009,9 +1095,10 @@ static void init_globals(void)
string_set(parm_table[i].ptr, "");
string_set(&sDefault.szGuestaccount, GUEST_ACCOUNT);
- string_set(&sDefault.szPrinterDriver, "");
string_set(&sDefault.fstype, FSTYPE_STRING);
+ init_printer_values();
+
done_init = True;
}
@@ -1173,92 +1260,6 @@ static void init_globals(void)
interpret_coding_system(KANJI);
}
-/***************************************************************************
-Initialise the sDefault parameter structure.
-***************************************************************************/
-static void init_locals(void)
-{
- string_set(&sDefault.szDriverFile, DRIVERFILE);
-
- /* choose defaults depending on the type of printing */
- switch (sDefault.iPrinting)
- {
- case PRINT_BSD:
- case PRINT_AIX:
- string_set(&sDefault.szLpqcommand, "lpq -P%p");
- string_set(&sDefault.szLprmcommand, "lprm -P%p %j");
- string_set(&sDefault.szPrintcommand,
- "lpr -r -P%p %s");
- break;
-
- case PRINT_LPRNG:
- case PRINT_PLP:
- string_set(&sDefault.szLpqcommand, "lpq -P%p");
- string_set(&sDefault.szLprmcommand, "lprm -P%p %j");
- string_set(&sDefault.szPrintcommand,
- "lpr -r -P%p %s");
- string_set(&sDefault.szQueuepausecommand,
- "lpc stop %p");
- string_set(&sDefault.szQueueresumecommand,
- "lpc start %p");
- string_set(&sDefault.szLppausecommand,
- "lpc hold %p %j");
- string_set(&sDefault.szLpresumecommand,
- "lpc release %p %j");
- break;
-
- case PRINT_CUPS:
- string_set(&sDefault.szLpqcommand,
- "/usr/bin/lpstat -o%p");
- string_set(&sDefault.szLprmcommand,
- "/usr/bin/cancel %p-%j");
- string_set(&sDefault.szPrintcommand,
- "/usr/bin/lp -d%p -oraw %s; rm %s");
- string_set(&sDefault.szQueuepausecommand,
- "/usr/bin/disable %p");
- string_set(&sDefault.szQueueresumecommand,
- "/usr/bin/enable %p");
- break;
-
- case PRINT_SYSV:
- case PRINT_HPUX:
- string_set(&sDefault.szLpqcommand, "lpstat -o%p");
- string_set(&sDefault.szLprmcommand, "cancel %p-%j");
- string_set(&sDefault.szPrintcommand,
- "lp -c -d%p %s; rm %s");
- string_set(&sDefault.szQueuepausecommand,
- "disable %p");
- string_set(&sDefault.szQueueresumecommand,
- "enable %p");
-#ifndef HPUX
- string_set(&sDefault.szLppausecommand,
- "lp -i %p-%j -H hold");
- string_set(&sDefault.szLpresumecommand,
- "lp -i %p-%j -H resume");
-#endif /* SYSV */
- break;
-
- case PRINT_QNX:
- string_set(&sDefault.szLpqcommand, "lpq -P%p");
- string_set(&sDefault.szLprmcommand, "lprm -P%p %j");
- string_set(&sDefault.szPrintcommand, "lp -r -P%p %s");
- break;
-
- case PRINT_SOFTQ:
- string_set(&sDefault.szLpqcommand, "qstat -l -d%p");
- string_set(&sDefault.szLprmcommand,
- "qstat -s -j%j -c");
- string_set(&sDefault.szPrintcommand,
- "lp -d%p -s %s; rm %s");
- string_set(&sDefault.szLppausecommand,
- "qstat -s -j%j -h");
- string_set(&sDefault.szLpresumecommand,
- "qstat -s -j%j -r");
- break;
-
- }
-}
-
static TALLOC_CTX *lp_talloc;
/******************************************************************* a
@@ -2655,6 +2656,15 @@ static BOOL equal_parameter(parm_type type, void *ptr1, void *ptr2)
}
/***************************************************************************
+ Initialize any local varients in the sDefault table.
+***************************************************************************/
+
+void init_locals(void)
+{
+ /* None as yet. */
+}
+
+/***************************************************************************
Process a new section (service). At this stage all sections are services.
Later we'll have special sections that permit server parameters to be set.
Returns True on success, False on failure.