--- cups-lpd.c 2008-04-09 16:43:33.000000000 +0100 +++ cups-lpd.c.new 2008-04-09 17:34:38.000000000 +0100 @@ -148,6 +148,19 @@ main(int argc, /* I - Number of comm { switch (argv[i][1]) { + case 'H' : /* server[:port] */ + if (argv[i][2] != '\0') + cupsSetServer(argv[i] + 2); + else + { + i ++; + + if (i >= argc) + syslog(LOG_WARNING, "Expected hostname after -H option!"); + else + cupsSetServer(argv[i]); + } + break; case 'o' : /* Option */ if (argv[i][2]) num_defaults = cupsParseOptions(argv[i] + 2, num_defaults, @@ -338,7 +351,7 @@ create_job(http_t *http, /* I - request = ippNewRequest(IPP_CREATE_JOB); httpAssembleURIf(HTTP_URI_CODING_ALL, uri, sizeof(uri), "ipp", NULL, - "localhost", 0, "/printers/%s", dest); + cupsServer(), ippPort(), "/printers/%s", dest); ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", NULL, uri); @@ -455,7 +468,7 @@ get_printer(http_t *http, /* I - request = ippNewRequest(IPP_GET_PRINTER_ATTRIBUTES); httpAssembleURIf(HTTP_URI_CODING_ALL, uri, sizeof(uri), "ipp", NULL, - "localhost", 0, "/printers/%s", dest); + cupsServer(), ippPort(), "/printers/%s", dest); ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", NULL, uri); @@ -815,7 +828,7 @@ print_file(http_t *http, /* I - HTT request = ippNewRequest(IPP_SEND_DOCUMENT); - snprintf(uri, sizeof(uri), "ipp://localhost/jobs/%d", id); + snprintf(uri, sizeof(uri), "ipp://%s:%d/jobs/%d", cupsServer(), ippPort(), id); ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "job-uri", NULL, uri); ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME, @@ -1353,7 +1366,7 @@ remove_jobs(const char *dest, /* I - De request = ippNewRequest(IPP_CANCEL_JOB); - sprintf(uri, "ipp://localhost/jobs/%d", id); + sprintf(uri, "ipp://%s:%d/jobs/%d", cupsServer(), ippPort(), id); ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "job-uri", NULL, uri); ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME, @@ -1491,7 +1504,7 @@ send_state(const char *queue, /* I - De request = ippNewRequest(id ? IPP_GET_JOB_ATTRIBUTES : IPP_GET_JOBS); httpAssembleURIf(HTTP_URI_CODING_ALL, uri, sizeof(uri), "ipp", NULL, - "localhost", 0, "/printers/%s", dest); + cupsServer(), ippPort(), "/printers/%s", dest); ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", NULL, uri); @@ -1625,7 +1638,7 @@ send_state(const char *queue, /* I - De else strlcpy(namestr, jobname, sizeof(namestr)); - printf("%s: %-33.33s [job %d localhost]\n", jobuser, rankstr, jobid); + printf("%s: %-33.33s [job %d %s]\n", jobuser, rankstr, jobid, cupsServer()); printf(" %-39.39s %.0f bytes\n", namestr, 1024.0 * jobsize); } else