diff options
author | jlovell <jlovell@a1ca3aef-8c08-0410-bb20-df032aa958be> | 2006-04-04 20:09:25 +0000 |
---|---|---|
committer | jlovell <jlovell@a1ca3aef-8c08-0410-bb20-df032aa958be> | 2006-04-04 20:09:25 +0000 |
commit | d6ae789d922e30aa25c55e01e1523d451be2016b (patch) | |
tree | 8476ccd34262b03c12bf786a2b8f01f6cf48ea8c /berkeley | |
parent | 80ca45929e4a37c300b602b7d444a2e8f2263bf6 (diff) | |
download | cups-d6ae789d922e30aa25c55e01e1523d451be2016b.tar.gz |
Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@113 a1ca3aef-8c08-0410-bb20-df032aa958be
Diffstat (limited to 'berkeley')
-rw-r--r-- | berkeley/lpq.c | 66 |
1 files changed, 46 insertions, 20 deletions
diff --git a/berkeley/lpq.c b/berkeley/lpq.c index d1d06db1d..8040340a7 100644 --- a/berkeley/lpq.c +++ b/berkeley/lpq.c @@ -1,5 +1,5 @@ /* - * "$Id: lpq.c 5023 2006-01-29 14:39:44Z mike $" + * "$Id: lpq.c 5345 2006-03-28 16:00:17Z mike $" * * "lpq" command for the Common UNIX Printing System (CUPS). * @@ -49,6 +49,7 @@ * Local functions... */ +static http_t *connect_server(const char *, http_t *); static int show_jobs(const char *, http_t *, const char *, const char *, const int, const int); static void show_printer(const char *, http_t *, const char *); @@ -76,35 +77,23 @@ main(int argc, /* I - Number of command-line arguments */ int num_dests; /* Number of destinations */ cups_dest_t *dests; /* Destinations */ cups_lang_t *language; /* Language */ -#ifdef HAVE_SSL - http_encryption_t encryption; /* Encryption? */ -#endif /* HAVE_SSL */ - language = cupsLangDefault(); - /* - * Connect to the scheduler... - */ - - if ((http = httpConnectEncrypt(cupsServer(), ippPort(), - cupsEncryption())) == NULL) - { - _cupsLangPrintf(stderr, _("%s: Unable to contact server!\n"), argv[0]); - return (1); - } /* * Check for command-line options... */ + http = NULL; dest = NULL; user = NULL; id = 0; interval = 0; longstatus = 0; all = 0; - num_dests = cupsGetDests(&dests); + language = cupsLangDefault(); + num_dests = 0; for (i = 1; i < argc; i ++) if (argv[i][0] == '+') @@ -115,10 +104,10 @@ main(int argc, /* I - Number of command-line arguments */ { case 'E' : /* Encrypt */ #ifdef HAVE_SSL - encryption = HTTP_ENCRYPT_REQUIRED; + cupsSetEncryption(HTTP_ENCRYPT_REQUIRED); if (http) - httpEncryption(http, encryption); + httpEncryption(http, HTTP_ENCRYPT_REQUIRED); #else _cupsLangPrintf(stderr, _("%s: Sorry, no encryption support compiled in!\n"), @@ -166,6 +155,11 @@ main(int argc, /* I - Number of command-line arguments */ if ((instance = strchr(dest, '/')) != NULL) *instance++ = '\0'; + http = connect_server(argv[0], http); + + if (num_dests == 0) + num_dests = cupsGetDests2(http, &dests); + if (cupsGetDest(dest, instance, num_dests, dests) == NULL) { if (instance) @@ -186,8 +180,11 @@ main(int argc, /* I - Number of command-line arguments */ break; case 'h' : /* Connect to host */ - if (http != NULL) + if (http) + { httpClose(http); + http = NULL; + } if (argv[i][2] != '\0') cupsSetServer(argv[i] + 2); @@ -225,8 +222,13 @@ main(int argc, /* I - Number of command-line arguments */ else user = argv[i]; + http = connect_server(argv[0], http); + if (dest == NULL && !all) { + if (num_dests == 0) + num_dests = cupsGetDests2(http, &dests); + for (i = 0; i < num_dests; i ++) if (dests[i].is_default) dest = dests[i].name; @@ -295,6 +297,30 @@ main(int argc, /* I - Number of command-line arguments */ /* + * 'connect_server()' - Connect to the server as necessary... + */ + +static http_t * /* O - New HTTP connection */ +connect_server(const char *command, /* I - Command name */ + http_t *http) /* I - Current HTTP connection */ +{ + if (!http) + { + http = httpConnectEncrypt(cupsServer(), ippPort(), + cupsEncryption()); + + if (http == NULL) + { + _cupsLangPrintf(stderr, _("%s: Unable to connect to server\n"), command); + exit(1); + } + } + + return (http); +} + + +/* * 'show_jobs()' - Show jobs. */ @@ -651,5 +677,5 @@ usage(void) /* - * End of "$Id: lpq.c 5023 2006-01-29 14:39:44Z mike $". + * End of "$Id: lpq.c 5345 2006-03-28 16:00:17Z mike $". */ |