summaryrefslogtreecommitdiff
path: root/usr/src/lib/print/libpapi-dynamic
diff options
context:
space:
mode:
authorjacobs <none@none>2006-07-21 10:47:26 -0700
committerjacobs <none@none>2006-07-21 10:47:26 -0700
commit9c378f4b0cc67a2a16a7fb13a45776402e0d25e6 (patch)
tree4ea7fbd86574c543bce4fedfaf00ac9e493d1080 /usr/src/lib/print/libpapi-dynamic
parent60425338a8e9a5ded7e559e227eedd42d30c8967 (diff)
downloadillumos-gate-9c378f4b0cc67a2a16a7fb13a45776402e0d25e6.tar.gz
6450430 lpstat dumps core
Diffstat (limited to 'usr/src/lib/print/libpapi-dynamic')
-rw-r--r--usr/src/lib/print/libpapi-dynamic/common/nss.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/usr/src/lib/print/libpapi-dynamic/common/nss.c b/usr/src/lib/print/libpapi-dynamic/common/nss.c
index afa06b89a5..0e072e0dcc 100644
--- a/usr/src/lib/print/libpapi-dynamic/common/nss.c
+++ b/usr/src/lib/print/libpapi-dynamic/common/nss.c
@@ -25,7 +25,7 @@
*
*/
-/* $Id: nss.c 166 2006-05-20 05:48:55Z njacobs $ */
+/* Id: nss.c 180 2006-07-20 17:33:02Z njacobs $ */
#pragma ident "%Z%%M% %I% %E% SMI"
@@ -51,7 +51,7 @@
static char *
-bsdaddr_to_uri(char *bsdaddr)
+bsdaddr_to_uri(papi_attribute_t **list, char *bsdaddr)
{
char *result = NULL;
@@ -62,10 +62,13 @@ bsdaddr_to_uri(char *bsdaddr)
tmp = strdup(bsdaddr);
bsd[0] = strtok_r(tmp, ":,", &iter);
- bsd[1] = strtok_r(NULL, ":,", &iter);
+ if ((bsd[1] = strtok_r(NULL, ":,", &iter)) == NULL)
+ papiAttributeListGetString(list, NULL,
+ "printer-name", &bsd[1]);
bsd[2] = strtok_r(NULL, ":,", &iter);
- snprintf(buf, sizeof (buf), "lpd://%s/%s%s%s", bsd[0], bsd[1],
+ snprintf(buf, sizeof (buf), "lpd://%s/printers/%s%s%s", bsd[0],
+ (bsd[1] != NULL) ? bsd[1] : "",
(bsd[2] != NULL) ? "#" : "",
(bsd[2] != NULL) ? bsd[2] : "");
@@ -276,7 +279,7 @@ fill_printer_uri_supported(papi_attribute_t ***list)
/* do we have a printers.conf(4) "bsdaddr" to convert */
papiAttributeListGetString(*list, NULL, "bsdaddr", &string);
if (string != NULL) { /* parse it, convert it, add it */
- char *uri = bsdaddr_to_uri(string);
+ char *uri = bsdaddr_to_uri(*list, string);
if (uri != NULL) {
papiAttributeListAddString(list, PAPI_ATTR_APPEND,
@@ -574,7 +577,7 @@ getprinterbyname(char *name, char *ns)
papiAttributeListAddString(&result, PAPI_ATTR_APPEND,
"printer-uri-supported", name);
} else if (strchr(name, ':') != NULL) { /* shortcut for POSIX form */
- char *uri = bsdaddr_to_uri(name);
+ char *uri = bsdaddr_to_uri(result, name);
papiAttributeListAddString(&result, PAPI_ATTR_APPEND,
"printer-name", name);