xref: /aosp_15_r20/external/libcups/backend/testsupplies.c (revision 5e7646d21f1134fb0638875d812ef646c12ab91e)
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