1 /*
2 * SNMP supplies test program for CUPS.
3 *
4 * Copyright © 2008-2011 by Apple Inc.
5 *
6 * Licensed under Apache License v2.0. See the file "LICENSE" for more
7 * information.
8 */
9
10 /*
11 * Include necessary headers.
12 */
13
14 #include "backend-private.h"
15
16
17 /*
18 * 'main()' - Show the supplies state of a printer.
19 */
20
21 int /* O - Exit status */
main(int argc,char * argv[])22 main(int argc, /* I - Number of command-line args */
23 char *argv[]) /* I - Command-line arguments */
24 {
25 http_addrlist_t *host; /* Host addresses */
26 int snmp_fd; /* SNMP socket */
27 int page_count, /* Current page count */
28 printer_state; /* Current printer state */
29
30
31 if (argc != 2)
32 {
33 puts("Usage: testsupplies ip-or-hostname");
34 return (1);
35 }
36
37 if ((host = httpAddrGetList(argv[1], AF_UNSPEC, "9100")) == NULL)
38 {
39 perror(argv[1]);
40 return (1);
41 }
42
43 if ((snmp_fd = _cupsSNMPOpen(host->addr.addr.sa_family)) < 0)
44 {
45 perror(argv[1]);
46 return (1);
47 }
48
49 for (;;)
50 {
51 fputs("backendSNMPSupplies: ", stdout);
52
53 if (backendSNMPSupplies(snmp_fd, &(host->addr), &page_count,
54 &printer_state))
55 {
56 puts("FAIL");
57 return (1);
58 }
59
60 printf("backendSNMPSupplies: %s (page_count=%d, printer_state=%d)\n",
61 page_count < 0 || printer_state < CUPS_TC_other ||
62 printer_state > CUPS_TC_warmup ? "FAIL" : "PASS",
63 page_count, printer_state);
64
65 sleep(5);
66 }
67 }
68