]> git.ipfire.org Git - thirdparty/cups.git/blobdiff - scheduler/client.c
The scheduler did not return non-shared printers to local clients unless
[thirdparty/cups.git] / scheduler / client.c
index ec5d780447107287315fde4cc0657eb32299e1ea..d5611147c3ae34b117123b91f25b1f86e71be09c 100644 (file)
@@ -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...