4743e10
diff -up cups-1.5b1/backend/dnssd.c.dnssd-deviceid cups-1.5b1/backend/dnssd.c
4743e10
--- cups-1.5b1/backend/dnssd.c.dnssd-deviceid	2011-05-20 05:49:49.000000000 +0200
4743e10
+++ cups-1.5b1/backend/dnssd.c	2011-05-24 17:28:18.000000000 +0200
4743e10
@@ -817,15 +817,22 @@ query_callback(
f0558cd
       if (device->device_id)
f0558cd
         free(device->device_id);
f0558cd
 
f0558cd
+      if (device_id[0])
f0558cd
+      {
f0558cd
+	  /* Mark this as the real device ID. */
f0558cd
+	  ptr = device_id + strlen(device_id);
f0558cd
+	  snprintf(ptr, sizeof(device_id) - (ptr - device_id), "FZY:0;");
f0558cd
+      }
f0558cd
+
f0558cd
       if (!device_id[0] && strcmp(model, "Unknown"))
f0558cd
       {
f0558cd
         if (make_and_model[0])
f0558cd
-	  snprintf(device_id, sizeof(device_id), "MFG:%s;MDL:%s;",
f0558cd
+	  snprintf(device_id, sizeof(device_id), "MFG:%s;MDL:%s;FZY:1;",
f0558cd
 	           make_and_model, model);
4743e10
         else if (!_cups_strncasecmp(model, "designjet ", 10))
f0558cd
-	  snprintf(device_id, sizeof(device_id), "MFG:HP;MDL:%s", model + 10);
f0558cd
+	  snprintf(device_id, sizeof(device_id), "MFG:HP;MDL:%s;FZY:1;", model + 10);
4743e10
         else if (!_cups_strncasecmp(model, "stylus ", 7))
f0558cd
-	  snprintf(device_id, sizeof(device_id), "MFG:EPSON;MDL:%s", model + 7);
f0558cd
+	  snprintf(device_id, sizeof(device_id), "MFG:EPSON;MDL:%s;FZY:1;", model + 7);
f0558cd
         else if ((ptr = strchr(model, ' ')) != NULL)
f0558cd
 	{
f0558cd
 	 /*
4743e10
@@ -835,7 +842,7 @@ query_callback(
f0558cd
           memcpy(make_and_model, model, ptr - model);
f0558cd
 	  make_and_model[ptr - model] = '\0';
f0558cd
 
f0558cd
-	  snprintf(device_id, sizeof(device_id), "MFG:%s;MDL:%s",
f0558cd
+	  snprintf(device_id, sizeof(device_id), "MFG:%s;MDL:%s;FZY:1;",
f0558cd
 		   make_and_model, ptr + 1);
f0558cd
         }
f0558cd
       }