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