MCPcopy Create free account
hub / github.com/OpenPrinting/cups / cupsdSaveAllClasses

Function cupsdSaveAllClasses

scheduler/classes.c:657–803  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

655 */
656
657void
658cupsdSaveAllClasses(void)
659{
660 cups_file_t *fp; /* classes.conf file */
661 char filename[1024], /* classes.conf filename */
662 value[2048], /* Value string */
663 *name; /* Current user name */
664 cupsd_printer_t *pclass; /* Current printer class */
665 int i; /* Looping var */
666 cups_option_t *option; /* Current option */
667
668
669 /*
670 * Create the classes.conf file...
671 */
672
673 snprintf(filename, sizeof(filename), "%s/classes.conf", ServerRoot);
674
675 if ((fp = cupsdCreateConfFile(filename, ConfigFilePerm)) == NULL)
676 return;
677
678 cupsdLogMessage(CUPSD_LOG_INFO, "Saving classes.conf...");
679
680 /*
681 * Write a small header to the file...
682 */
683
684 cupsFilePuts(fp, "# Class configuration file for " CUPS_SVERSION "\n");
685 cupsFilePrintf(fp, "# Written by cupsd\n");
686 cupsFilePuts(fp, "# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING\n");
687
688 /*
689 * Write each local class known to the system...
690 */
691
692 for (pclass = (cupsd_printer_t *)cupsArrayFirst(Printers);
693 pclass;
694 pclass = (cupsd_printer_t *)cupsArrayNext(Printers))
695 {
696 /*
697 * Skip remote destinations and regular printers...
698 */
699
700 if ((pclass->type & CUPS_PRINTER_REMOTE) ||
701 !(pclass->type & CUPS_PRINTER_CLASS))
702 continue;
703
704 /*
705 * Write printers as needed...
706 */
707
708 if (pclass == DefaultPrinter)
709 cupsFilePrintf(fp, "<DefaultClass %s>\n", pclass->name);
710 else
711 cupsFilePrintf(fp, "<Class %s>\n", pclass->name);
712
713 if (pclass->printer_id)
714 cupsFilePrintf(fp, "PrinterId %d\n", pclass->printer_id);

Callers 1

cupsdCleanDirtyFunction · 0.85

Calls 8

cupsdCreateConfFileFunction · 0.85
cupsdLogMessageFunction · 0.85
cupsFilePutsFunction · 0.85
cupsFilePrintfFunction · 0.85
cupsArrayFirstFunction · 0.85
cupsArrayNextFunction · 0.85
cupsFilePutConfFunction · 0.85

Tested by

no test coverage detected