diff options
Diffstat (limited to 'scheduler/testdirsvc.c')
-rw-r--r-- | scheduler/testdirsvc.c | 324 |
1 files changed, 0 insertions, 324 deletions
diff --git a/scheduler/testdirsvc.c b/scheduler/testdirsvc.c deleted file mode 100644 index 3ffaf3bf..00000000 --- a/scheduler/testdirsvc.c +++ /dev/null @@ -1,324 +0,0 @@ -/* - * "$Id: testdirsvc.c 9691 2011-04-15 23:38:13Z mike $" - * - * Browsing test program for CUPS. - * - * Copyright 2007-2011 by Apple Inc. - * Copyright 1997-2007 by Easy Software Products, all rights reserved. - * - * These coded instructions, statements, and computer programs are the - * property of Apple Inc. and are protected by Federal copyright - * law. Distribution and use rights are outlined in the file "LICENSE.txt" - * which should have been included with this file. If this file is - * file is missing or damaged, see the license at "http://www.cups.org/". - * - * Contents: - * - * main() - Simulate one or more remote printers. - * usage() - Show program usage... - */ - -/* - * Include necessary headers... - */ - -#include <cups/cups.h> -#include <cups/string-private.h> - - -/* - * Local functions... - */ - -static void usage(void); - - -/* - * 'main()' - Simulate one or more remote printers. - */ - -int /* O - Exit status */ -main(int argc, /* I - Number of command-line arguments */ - char *argv[]) /* I - Command-line arguments */ -{ - int i, /* Looping var */ - printer, /* Current printer */ - num_printers, /* Number of printers */ - pclass, /* Current printer class */ - num_pclasses, /* Number of printer classes */ - server, /* Current server */ - num_servers, /* Number of servers */ - count, /* Number of printers sent this cycle */ - interval, /* Browse Interval */ - lease, /* Browse lease-duration */ - continuous, /* Run continuously? */ - port, /* Browse port */ - sock, /* Browse socket */ - val, /* Socket option value */ - seconds, /* Seconds until next cycle */ - verbose; /* Verbose output? */ - const char *options; /* Options for URIs */ - time_t curtime; /* Current UNIX time */ - struct tm *curdate; /* Current date and time */ - struct sockaddr_in addr; /* Broadcast address */ - char packet[1540]; /* Data packet */ - static const char * const names[26] = /* Printer names */ - { - "alpha", - "bravo", - "charlie", - "delta", - "echo", - "foxtrot", - "golf", - "hotel", - "india", - "juliet", - "kilo", - "lima", - "mike", - "november", - "oscar", - "papa", - "quebec", - "romeo", - "sierra", - "tango", - "uniform", - "victor", - "wiskey", - "x-ray", - "yankee", - "zulu" - }; - - - /* - * Process command-line arguments... - */ - - num_printers = 10; - num_pclasses = 5; - num_servers = 1; - interval = 30; - lease = 60; - port = 0; - verbose = 0; - continuous = 0; - options = NULL; - - for (i = 1; i < argc; i ++) - { - if (!strcmp(argv[i], "-c")) - continuous = 1; - else if (!strcmp(argv[i], "-i")) - { - i ++; - if (i < argc) - interval = atoi(argv[i]); - else - usage(); - - continuous = 1; - } - else if (!strcmp(argv[i], "-l")) - { - i ++; - if (i < argc) - lease = atoi(argv[i]); - else - usage(); - } - else if (!strcmp(argv[i], "-o")) - { - i ++; - if (i < argc) - options = argv[i]; - else - usage(); - } - else if (!strcmp(argv[i], "-C")) - { - i ++; - if (i < argc) - num_pclasses = atoi(argv[i]); - else - usage(); - } - else if (!strcmp(argv[i], "-p")) - { - i ++; - if (i < argc) - num_printers = atoi(argv[i]); - else - usage(); - } - else if (!strcmp(argv[i], "-s")) - { - i ++; - if (i < argc) - num_servers = atoi(argv[i]); - else - usage(); - } - else if (!strcmp(argv[i], "-v")) - verbose = 1; - else if (isdigit(argv[i][0] & 255)) - { - port = atoi(argv[i]); - } - else - usage(); - } - - if ((num_printers <= 0 && num_pclasses <= 0) || num_servers <= 0 || - interval <= 0 || lease < 1 || port <= 0) - usage(); - - /* - * Open a broadcast socket... - */ - - if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) < 0) - { - perror("Unable to open broadcast socket"); - return (1); - } - - /* - * Set the "broadcast" flag... - */ - - val = 1; - if (setsockopt(sock, SOL_SOCKET, SO_BROADCAST, &val, sizeof(val))) - { - perror("Unable to put socket in broadcast mode"); - - close(sock); - return (1); - } - - /* - * Broadcast to 127.0.0.1 (localhost) - */ - - memset(&addr, 0, sizeof(addr)); - addr.sin_addr.s_addr = htonl(0x7f000001); - addr.sin_family = AF_INET; - addr.sin_port = htons(port); - - /* - * Send virtual printers continuously until we are stopped. - */ - - for (;;) - { - /* - * Start a new cycle of N printers... - */ - - printf("Sending %d printers from %d servers...\n", num_printers, - num_servers); - - count = num_servers * (num_printers + num_pclasses) / interval + 1; - curtime = time(NULL); - curdate = localtime(&curtime); - seconds = interval; - - for (i = 0, printer = 0; printer < num_printers; printer ++) - { - for (server = 0; server < num_servers; server ++, i ++) - { - if (i == count) - { - seconds --; - i = 0; - sleep(1); - curtime = time(NULL); - curdate = localtime(&curtime); - } - - snprintf(packet, sizeof(packet), - "%x %x ipp://testserver-%d/printers/%s-%d \"Server Room %d\" " - "\"Test Printer %d\" \"Acme Blazer 2000\"%s%s " - "lease-duration=%d\n", - CUPS_PRINTER_REMOTE, IPP_PRINTER_IDLE, server + 1, - names[printer % 26], printer / 26 + 1, server + 1, - printer + 1, options ? " ipp-options=" : "", - options ? options : "", lease); - - if (verbose) - printf("[%02d:%02d:%02d] %s", curdate->tm_hour, curdate->tm_min, - curdate->tm_sec, packet); - - if (sendto(sock, packet, strlen(packet), 0, - (struct sockaddr *)&addr, sizeof(addr)) < 0) - perror("Unabled to send packet"); - } - } - - - for (i = 0, pclass = 0; pclass < num_pclasses; pclass ++) - { - for (server = 0; server < num_servers; server ++, i ++) - { - if (i == count) - { - seconds --; - i = 0; - sleep(1); - curtime = time(NULL); - curdate = localtime(&curtime); - } - - snprintf(packet, sizeof(packet), - "%x %x ipp://testserver-%d/classes/class-%s-%d \"Server Room %d\" " - "\"Test Class %d\" \"Acme Blazer 2000\"%s%s " - "lease-duration=%d\n", - CUPS_PRINTER_REMOTE | CUPS_PRINTER_CLASS, IPP_PRINTER_IDLE, - server + 1, names[pclass % 26], pclass / 26 + 1, server + 1, - pclass + 1, options ? " ipp-options=" : "", - options ? options : "", lease); - - if (verbose) - printf("[%02d:%02d:%02d] %s", curdate->tm_hour, curdate->tm_min, - curdate->tm_sec, packet); - - if (sendto(sock, packet, strlen(packet), 0, - (struct sockaddr *)&addr, sizeof(addr)) < 0) - perror("Unabled to send packet"); - } - } - - if (!continuous) - break; - - /* - * Sleep for any remaining time... - */ - - if (seconds > 0) - sleep(seconds); - } - - return (0); -} - - -/* - * 'usage()' - Show program usage... - */ - -static void -usage(void) -{ - puts("Usage: testdirsvc [-c] [-i interval] [-l lease-duration] " - "[-o ipp-options] [-p printers] " - "[-C classes] [-s servers] [-v] port"); - exit(0); -} - - -/* - * End of "$Id: testdirsvc.c 9691 2011-04-15 23:38:13Z mike $". - */ |