52d8cca
diff -up cups-1.4.2/backend/ipp.c.str3458 cups-1.4.2/backend/ipp.c
52d8cca
--- cups-1.4.2/backend/ipp.c.str3458	2009-12-22 13:04:25.021208333 +0000
52d8cca
+++ cups-1.4.2/backend/ipp.c	2009-12-22 13:04:26.570082893 +0000
52d8cca
@@ -802,6 +802,15 @@ main(int  argc,				/* I - Number of comm
52d8cca
 
52d8cca
 	return (CUPS_BACKEND_STOP);
52d8cca
       }
52d8cca
+      else if (ipp_status == IPP_NOT_AUTHORIZED || ipp_status == IPP_FORBIDDEN)
52d8cca
+      {
52d8cca
+	if (!strncmp(httpGetField(http, HTTP_FIELD_WWW_AUTHENTICATE),
52d8cca
+		     "Negotiate", 9))
52d8cca
+	  auth_info_required = "negotiate";
52d8cca
+
52d8cca
+	fprintf(stderr, "ATTR: auth-info-required=%s\n", auth_info_required);
52d8cca
+	return (CUPS_BACKEND_AUTH_REQUIRED);
52d8cca
+      }
52d8cca
       else
52d8cca
       {
52d8cca
 	_cupsLangPrintf(stderr,