1 /* 2 * Admin function test program for CUPS. 3 * 4 * Copyright 2007-2013 by Apple Inc. 5 * Copyright 2006 by Easy Software Products. 6 * 7 * These coded instructions, statements, and computer programs are the 8 * property of Apple Inc. and are protected by Federal copyright 9 * law. Distribution and use rights are outlined in the file "LICENSE.txt" 10 * which should have been included with this file. If this file is 11 * missing or damaged, see the license at "http://www.cups.org/". 12 * 13 * This file is subject to the Apple OS-Developed Software exception. 14 */ 15 16 /* 17 * Include necessary headers... 18 */ 19 20 #include "adminutil.h" 21 #include "string-private.h" 22 23 24 /* 25 * Local functions... 26 */ 27 28 static void show_settings(int num_settings, cups_option_t *settings); 29 30 31 /* 32 * 'main()' - Main entry. 33 */ 34 35 int /* O - Exit status */ 36 main(int argc, /* I - Number of command-line args */ 37 char *argv[]) /* I - Command-line arguments */ 38 { 39 int i, /* Looping var */ 40 num_settings; /* Number of settings */ 41 cups_option_t *settings; /* Settings */ 42 http_t *http; /* Connection to server */ 43 44 45 /* 46 * Connect to the server using the defaults... 47 */ 48 49 http = httpConnect2(cupsServer(), ippPort(), NULL, AF_UNSPEC, 50 cupsEncryption(), 1, 30000, NULL); 51 52 /* 53 * Set the current configuration if we have anything on the command-line... 54 */ 55 56 if (argc > 1) 57 { 58 for (i = 1, num_settings = 0, settings = NULL; i < argc; i ++) 59 num_settings = cupsParseOptions(argv[i], num_settings, &settings); 60 61 if (cupsAdminSetServerSettings(http, num_settings, settings)) 62 { 63 puts("New server settings:"); 64 cupsFreeOptions(num_settings, settings); 65 } 66 else 67 { 68 printf("Server settings not changed: %s\n", cupsLastErrorString()); 69 return (1); 70 } 71 } 72 else 73 puts("Current server settings:"); 74 75 /* 76 * Get the current configuration... 77 */ 78 79 if (cupsAdminGetServerSettings(http, &num_settings, &settings)) 80 { 81 show_settings(num_settings, settings); 82 cupsFreeOptions(num_settings, settings); 83 return (0); 84 } 85 else 86 { 87 printf(" %s\n", cupsLastErrorString()); 88 return (1); 89 } 90 } 91 92 93 /* 94 * 'show_settings()' - Show settings in the array... 95 */ 96 97 static void 98 show_settings( 99 int num_settings, /* I - Number of settings */ 100 cups_option_t *settings) /* I - Settings */ 101 { 102 while (num_settings > 0) 103 { 104 printf(" %s=%s\n", settings->name, settings->value); 105 106 settings ++; 107 num_settings --; 108 } 109 } 110