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