xref: /aosp_15_r20/external/libcups/cups/testadmin.c (revision 5e7646d21f1134fb0638875d812ef646c12ab91e)
1*5e7646d2SAndroid Build Coastguard Worker /*
2*5e7646d2SAndroid Build Coastguard Worker  * Admin function test program for CUPS.
3*5e7646d2SAndroid Build Coastguard Worker  *
4*5e7646d2SAndroid Build Coastguard Worker  * Copyright 2007-2013 by Apple Inc.
5*5e7646d2SAndroid Build Coastguard Worker  * Copyright 2006 by Easy Software Products.
6*5e7646d2SAndroid Build Coastguard Worker  *
7*5e7646d2SAndroid Build Coastguard Worker  * Licensed under Apache License v2.0.  See the file "LICENSE" for more 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 "adminutil.h"
15*5e7646d2SAndroid Build Coastguard Worker #include "string-private.h"
16*5e7646d2SAndroid Build Coastguard Worker 
17*5e7646d2SAndroid Build Coastguard Worker 
18*5e7646d2SAndroid Build Coastguard Worker /*
19*5e7646d2SAndroid Build Coastguard Worker  * Local functions...
20*5e7646d2SAndroid Build Coastguard Worker  */
21*5e7646d2SAndroid Build Coastguard Worker 
22*5e7646d2SAndroid Build Coastguard Worker static void	show_settings(int num_settings, cups_option_t *settings);
23*5e7646d2SAndroid Build Coastguard Worker 
24*5e7646d2SAndroid Build Coastguard Worker 
25*5e7646d2SAndroid Build Coastguard Worker /*
26*5e7646d2SAndroid Build Coastguard Worker  * 'main()' - Main entry.
27*5e7646d2SAndroid Build Coastguard Worker  */
28*5e7646d2SAndroid Build Coastguard Worker 
29*5e7646d2SAndroid Build Coastguard Worker int					/* O - Exit status */
main(int argc,char * argv[])30*5e7646d2SAndroid Build Coastguard Worker main(int  argc,				/* I - Number of command-line args */
31*5e7646d2SAndroid Build Coastguard Worker      char *argv[])			/* I - Command-line arguments */
32*5e7646d2SAndroid Build Coastguard Worker {
33*5e7646d2SAndroid Build Coastguard Worker   int		i,			/* Looping var */
34*5e7646d2SAndroid Build Coastguard Worker 		num_settings;		/* Number of settings */
35*5e7646d2SAndroid Build Coastguard Worker   cups_option_t	*settings;		/* Settings */
36*5e7646d2SAndroid Build Coastguard Worker   http_t	*http;			/* Connection to server */
37*5e7646d2SAndroid Build Coastguard Worker 
38*5e7646d2SAndroid Build Coastguard Worker 
39*5e7646d2SAndroid Build Coastguard Worker  /*
40*5e7646d2SAndroid Build Coastguard Worker   * Connect to the server using the defaults...
41*5e7646d2SAndroid Build Coastguard Worker   */
42*5e7646d2SAndroid Build Coastguard Worker 
43*5e7646d2SAndroid Build Coastguard Worker   http = httpConnect2(cupsServer(), ippPort(), NULL, AF_UNSPEC,
44*5e7646d2SAndroid Build Coastguard Worker                       cupsEncryption(), 1, 30000, NULL);
45*5e7646d2SAndroid Build Coastguard Worker 
46*5e7646d2SAndroid Build Coastguard Worker  /*
47*5e7646d2SAndroid Build Coastguard Worker   * Set the current configuration if we have anything on the command-line...
48*5e7646d2SAndroid Build Coastguard Worker   */
49*5e7646d2SAndroid Build Coastguard Worker 
50*5e7646d2SAndroid Build Coastguard Worker   if (argc > 1)
51*5e7646d2SAndroid Build Coastguard Worker   {
52*5e7646d2SAndroid Build Coastguard Worker     for (i = 1, num_settings = 0, settings = NULL; i < argc; i ++)
53*5e7646d2SAndroid Build Coastguard Worker       num_settings = cupsParseOptions(argv[i], num_settings, &settings);
54*5e7646d2SAndroid Build Coastguard Worker 
55*5e7646d2SAndroid Build Coastguard Worker     if (cupsAdminSetServerSettings(http, num_settings, settings))
56*5e7646d2SAndroid Build Coastguard Worker     {
57*5e7646d2SAndroid Build Coastguard Worker       puts("New server settings:");
58*5e7646d2SAndroid Build Coastguard Worker       cupsFreeOptions(num_settings, settings);
59*5e7646d2SAndroid Build Coastguard Worker     }
60*5e7646d2SAndroid Build Coastguard Worker     else
61*5e7646d2SAndroid Build Coastguard Worker     {
62*5e7646d2SAndroid Build Coastguard Worker       printf("Server settings not changed: %s\n", cupsLastErrorString());
63*5e7646d2SAndroid Build Coastguard Worker       return (1);
64*5e7646d2SAndroid Build Coastguard Worker     }
65*5e7646d2SAndroid Build Coastguard Worker   }
66*5e7646d2SAndroid Build Coastguard Worker   else
67*5e7646d2SAndroid Build Coastguard Worker     puts("Current server settings:");
68*5e7646d2SAndroid Build Coastguard Worker 
69*5e7646d2SAndroid Build Coastguard Worker  /*
70*5e7646d2SAndroid Build Coastguard Worker   * Get the current configuration...
71*5e7646d2SAndroid Build Coastguard Worker   */
72*5e7646d2SAndroid Build Coastguard Worker 
73*5e7646d2SAndroid Build Coastguard Worker   if (cupsAdminGetServerSettings(http, &num_settings, &settings))
74*5e7646d2SAndroid Build Coastguard Worker   {
75*5e7646d2SAndroid Build Coastguard Worker     show_settings(num_settings, settings);
76*5e7646d2SAndroid Build Coastguard Worker     cupsFreeOptions(num_settings, settings);
77*5e7646d2SAndroid Build Coastguard Worker     return (0);
78*5e7646d2SAndroid Build Coastguard Worker   }
79*5e7646d2SAndroid Build Coastguard Worker   else
80*5e7646d2SAndroid Build Coastguard Worker   {
81*5e7646d2SAndroid Build Coastguard Worker     printf("    %s\n", cupsLastErrorString());
82*5e7646d2SAndroid Build Coastguard Worker     return (1);
83*5e7646d2SAndroid Build Coastguard Worker   }
84*5e7646d2SAndroid Build Coastguard Worker }
85*5e7646d2SAndroid Build Coastguard Worker 
86*5e7646d2SAndroid Build Coastguard Worker 
87*5e7646d2SAndroid Build Coastguard Worker /*
88*5e7646d2SAndroid Build Coastguard Worker  * 'show_settings()' - Show settings in the array...
89*5e7646d2SAndroid Build Coastguard Worker  */
90*5e7646d2SAndroid Build Coastguard Worker 
91*5e7646d2SAndroid Build Coastguard Worker static void
show_settings(int num_settings,cups_option_t * settings)92*5e7646d2SAndroid Build Coastguard Worker show_settings(
93*5e7646d2SAndroid Build Coastguard Worker     int           num_settings,		/* I - Number of settings */
94*5e7646d2SAndroid Build Coastguard Worker     cups_option_t *settings)		/* I - Settings */
95*5e7646d2SAndroid Build Coastguard Worker {
96*5e7646d2SAndroid Build Coastguard Worker   while (num_settings > 0)
97*5e7646d2SAndroid Build Coastguard Worker   {
98*5e7646d2SAndroid Build Coastguard Worker     printf("    %s=%s\n", settings->name, settings->value);
99*5e7646d2SAndroid Build Coastguard Worker 
100*5e7646d2SAndroid Build Coastguard Worker     settings ++;
101*5e7646d2SAndroid Build Coastguard Worker     num_settings --;
102*5e7646d2SAndroid Build Coastguard Worker   }
103*5e7646d2SAndroid Build Coastguard Worker }
104