/
niceSOFT
/
cups
Обзор
Документация
Войти
/
niceSOFT
/
cups
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
notifier/testnotify.c
112 строк
2 KB
Zdenek Dohnal
Revert "Update copyrights"
07 янв 2025, 18:33
07 янв 2025, 18:33
76b6aad
Код
Авторство
О чём код?
/* * Test notifier for CUPS. * * Copyright © 2020-2024 by OpenPrinting. * Copyright 2007-2016 by Apple Inc. * Copyright 1997-2005 by Easy Software Products. * * Licensed under Apache License v2.0. See the file "LICENSE" for more information. */ /* * Include necessary headers... */ #include <cups/cups-private.h> /* * Local functions... */ void print_attributes(ipp_t *ipp, int indent); /* * 'main()' - Main entry for the test notifier. */ int /* O - Exit status */ main(int argc, /* I - Number of command-line arguments */ char *argv[]) /* I - Command-line arguments */ { int i; /* Looping var */ ipp_t *event; /* Event from scheduler */ ipp_state_t state; /* IPP event state */ setbuf(stderr, NULL); fprintf(stderr, "DEBUG: argc=%d\n", argc); for (i = 0; i < argc; i ++) fprintf(stderr, "DEBUG: argv[%d]=\"%s\"\n", i, argv[i]); fprintf(stderr, "DEBUG: TMPDIR=\"%s\"\n", getenv("TMPDIR")); for (;;) { event = ippNew(); while ((state = ippReadFile(0, event)) != IPP_STATE_DATA) { if (state <= IPP_STATE_IDLE) break; } if (state == IPP_STATE_ERROR) fputs("DEBUG: ippReadFile() returned IPP_ERROR!\n", stderr); if (state <= IPP_STATE_IDLE) { ippDelete(event); return (0); } print_attributes(event, 4); ippDelete(event); /* * If the recipient URI is "testnotify://nowait", then we exit after each * event... */ if (!strcmp(argv[1], "testnotify://nowait")) return (0); } } /* * 'print_attributes()' - Print the attributes in a request... */ void print_attributes(ipp_t *ipp, /* I - IPP request */ int indent) /* I - Indentation */ { ipp_tag_t group; /* Current group */ ipp_attribute_t *attr; /* Current attribute */ char buffer[1024]; /* Value buffer */ for (group = IPP_TAG_ZERO, attr = ipp->attrs; attr; attr = attr->next) { if ((attr->group_tag == IPP_TAG_ZERO && indent <= 8) || !attr->name) { group = IPP_TAG_ZERO; fputc('\n', stderr); continue; } if (group != attr->group_tag) { group = attr->group_tag; fprintf(stderr, "DEBUG: %*s%s:\n\n", indent - 4, "", ippTagString(group)); } ippAttributeString(attr, buffer, sizeof(buffer)); fprintf(stderr, "DEBUG: %*s%s (%s%s) %s\n", indent, "", attr->name, attr->num_values > 1 ? "1setOf " : "", ippTagString(attr->value_tag), buffer); } }