Index: ipp.c =================================================================== --- ipp.c (revision 6617) +++ ipp.c (working copy) @@ -1296,11 +1296,16 @@ return (NULL); } - if (!check_quotas(con, printer)) + if ((i = check_quotas(con, printer)) < 0) { send_ipp_status(con, IPP_NOT_POSSIBLE, _("Quota limit reached.")); return (NULL); } + else if (i == 0) + { + send_ipp_status(con, IPP_NOT_AUTHORIZED, _("Not allowed to print.")); + return (NULL); + } /* * Create the job and set things up... @@ -3240,7 +3245,7 @@ cupsdLogMessage(CUPSD_LOG_ERROR, "Unable to allocate quota data for user \"%s\"!", username); - return (0); + return (-1); } if ((q->k_count >= p->k_limit && p->k_limit) || @@ -3248,7 +3253,7 @@ { cupsdLogMessage(CUPSD_LOG_INFO, "User \"%s\" is over the quota limit...", username); - return (0); + return (-1); } }