summaryrefslogtreecommitdiff
path: root/scheduler/classes.c
diff options
context:
space:
mode:
authormsweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be>2008-10-08 22:50:16 +0000
committermsweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be>2008-10-08 22:50:16 +0000
commit58dc193312e27d25c0394e4fcb7a6eed7301b1ec (patch)
treef36e45a693b16fbf643e8c168180f02343b38431 /scheduler/classes.c
parentf2245c695c43045dbdc825289307099c9c4559a2 (diff)
downloadcups-58dc193312e27d25c0394e4fcb7a6eed7301b1ec.tar.gz
Merge changes from CUPS 1.4svn-r8033.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@1003 a1ca3aef-8c08-0410-bb20-df032aa958be
Diffstat (limited to 'scheduler/classes.c')
-rw-r--r--scheduler/classes.c109
1 files changed, 39 insertions, 70 deletions
diff --git a/scheduler/classes.c b/scheduler/classes.c
index 07190018a..b126a08d9 100644
--- a/scheduler/classes.c
+++ b/scheduler/classes.c
@@ -674,14 +674,14 @@ void
cupsdSaveAllClasses(void)
{
cups_file_t *fp; /* classes.conf file */
- char temp[1024]; /* Temporary string */
- char backup[1024]; /* classes.conf.O file */
+ char temp[1024], /* Temporary string */
+ backup[1024], /* printers.conf.O file */
+ value[2048]; /* Value string */
cupsd_printer_t *pclass; /* Current printer class */
int i; /* Looping var */
time_t curtime; /* Current time */
struct tm *curdate; /* Current date */
cups_option_t *option; /* Current option */
- const char *ptr; /* Pointer into info/location */
/*
@@ -757,53 +757,38 @@ cupsdSaveAllClasses(void)
if (pclass->num_auth_info_required > 0)
{
- cupsFilePrintf(fp, "AuthInfoRequired %s", pclass->auth_info_required[0]);
- for (i = 1; i < pclass->num_auth_info_required; i ++)
- cupsFilePrintf(fp, ",%s", pclass->auth_info_required[i]);
- cupsFilePutChar(fp, '\n');
- }
-
- if (pclass->info)
- {
- if ((ptr = strchr(pclass->info, '#')) != NULL)
+ switch (pclass->num_auth_info_required)
{
- /*
- * Need to quote the first # in the info string...
- */
-
- cupsFilePuts(fp, "Info ");
- cupsFileWrite(fp, pclass->info, ptr - pclass->info);
- cupsFilePutChar(fp, '\\');
- cupsFilePuts(fp, ptr);
- cupsFilePutChar(fp, '\n');
+ case 1 :
+ strlcpy(value, pclass->auth_info_required[0], sizeof(value));
+ break;
+
+ case 2 :
+ snprintf(value, sizeof(value), "%s,%s",
+ pclass->auth_info_required[0],
+ pclass->auth_info_required[1]);
+ break;
+
+ case 3 :
+ default :
+ snprintf(value, sizeof(value), "%s,%s,%s",
+ pclass->auth_info_required[0],
+ pclass->auth_info_required[1],
+ pclass->auth_info_required[2]);
+ break;
}
- else
- cupsFilePrintf(fp, "Info %s\n", pclass->info);
+
+ cupsFilePutConf(fp, "AuthInfoRequired", value);
}
- if (pclass->location)
- {
- if ((ptr = strchr(pclass->info, '#')) != NULL)
- {
- /*
- * Need to quote the first # in the location string...
- */
+ if (pclass->info)
+ cupsFilePutConf(fp, "Info", pclass->info);
- cupsFilePuts(fp, "Location ");
- cupsFileWrite(fp, pclass->location, ptr - pclass->location);
- cupsFilePutChar(fp, '\\');
- cupsFilePuts(fp, ptr);
- cupsFilePutChar(fp, '\n');
- }
- else
- cupsFilePrintf(fp, "Location %s\n", pclass->location);
- }
+ if (pclass->location)
+ cupsFilePutConf(fp, "Location", pclass->location);
if (pclass->state == IPP_PRINTER_STOPPED)
- {
cupsFilePuts(fp, "State Stopped\n");
- cupsFilePrintf(fp, "StateMessage %s\n", pclass->state_message);
- }
else
cupsFilePuts(fp, "State Idle\n");
@@ -819,46 +804,30 @@ cupsdSaveAllClasses(void)
else
cupsFilePuts(fp, "Shared No\n");
- cupsFilePrintf(fp, "JobSheets %s %s\n", pclass->job_sheets[0],
- pclass->job_sheets[1]);
-
- for (i = 0; i < pclass->num_users; i ++)
- {
- if ((ptr = strchr(pclass->users[i], '#')) != NULL)
- {
- /*
- * Need to quote the first # in the user string...
- */
-
- cupsFilePrintf(fp, "%sUser ", pclass->deny_users ? "Deny" : "Allow");
- cupsFileWrite(fp, pclass->users[i], ptr - pclass->users[i]);
- cupsFilePutChar(fp, '\\');
- cupsFilePuts(fp, ptr);
- cupsFilePutChar(fp, '\n');
- }
- else
- cupsFilePrintf(fp, "%sUser %s\n",
- pclass->deny_users ? "Deny" : "Allow",
- pclass->users[i]);
- }
+ snprintf(value, sizeof(value), "%s %s", pclass->job_sheets[0],
+ pclass->job_sheets[1]);
+ cupsFilePutConf(fp, "JobSheets", value);
cupsFilePrintf(fp, "QuotaPeriod %d\n", pclass->quota_period);
cupsFilePrintf(fp, "PageLimit %d\n", pclass->page_limit);
cupsFilePrintf(fp, "KLimit %d\n", pclass->k_limit);
for (i = 0; i < pclass->num_users; i ++)
- cupsFilePrintf(fp, "%sUser %s\n", pclass->deny_users ? "Deny" : "Allow",
- pclass->users[i]);
+ cupsFilePutConf(fp, pclass->deny_users ? "DenyUser" : "AllowUser",
+ pclass->users[i]);
- if (pclass->op_policy)
- cupsFilePrintf(fp, "OpPolicy %s\n", pclass->op_policy);
+ if (pclass->op_policy)
+ cupsFilePutConf(fp, "OpPolicy", pclass->op_policy);
if (pclass->error_policy)
- cupsFilePrintf(fp, "ErrorPolicy %s\n", pclass->error_policy);
+ cupsFilePutConf(fp, "ErrorPolicy", pclass->error_policy);
for (i = pclass->num_options, option = pclass->options;
i > 0;
i --, option ++)
- cupsFilePrintf(fp, "Option %s %s\n", option->name, option->value);
+ {
+ snprintf(value, sizeof(value), "%s %s", option->name, option->value);
+ cupsFilePutConf(fp, "Option", value);
+ }
cupsFilePuts(fp, "</Class>\n");
}