summaryrefslogtreecommitdiff
path: root/scheduler/client.c
diff options
context:
space:
mode:
authormsweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be>2016-03-09 15:45:21 +0000
committermsweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be>2016-03-09 15:45:21 +0000
commitcd1a83eac87d93aa5d825445ee0a6cc0858abe2b (patch)
treee76b4a89bc1fd94f0f009c1f54b4dd2466fef0e4 /scheduler/client.c
parent8ddb0f601e46c9c3c42cb1871f7e558d546d35f4 (diff)
downloadcups-cd1a83eac87d93aa5d825445ee0a6cc0858abe2b.tar.gz
The scheduler did not return non-shared printers to local clients unless
they connected to the domain socket (<rdar://problem/24566996>) git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@13128 a1ca3aef-8c08-0410-bb20-df032aa958be
Diffstat (limited to 'scheduler/client.c')
-rw-r--r--scheduler/client.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/scheduler/client.c b/scheduler/client.c
index ec5d78044..d5611147c 100644
--- a/scheduler/client.c
+++ b/scheduler/client.c
@@ -143,7 +143,12 @@ cupsdAcceptClient(cupsd_listener_t *lis)/* I - Listener socket */
* Save the connected address and port number...
*/
- con->clientaddr = lis->address;
+ addrlen = sizeof(con->clientaddr);
+
+ if (getsockname(httpGetFd(con->http), (struct sockaddr *)&con->clientaddr, &addrlen) || addrlen == 0)
+ con->clientaddr = lis->address;
+
+ cupsdLogClient(con, CUPSD_LOG_DEBUG, "Server address is \"%s\".", httpAddrString(&con->clientaddr, name, sizeof(name)));
/*
* Check the number of clients on the same address...