switch (con->http.state)
{
case HTTP_GET_SEND :
- if (!strncmp(con->uri, "/printers/", 10) &&
+ if ((!strncmp(con->uri, "/ppd/", 5) ||
+ !strncmp(con->uri, "/printers/", 10)) &&
!strcmp(con->uri + strlen(con->uri) - 4, ".ppd"))
{
/*
con->uri[strlen(con->uri) - 4] = '\0'; /* Drop ".ppd" */
- if ((p = cupsdFindPrinter(con->uri + 10)) != NULL)
+ if (!strncmp(con->uri, "/ppd/", 5))
+ p = cupsdFindPrinter(con->uri + 5);
+ else
+ p = cupsdFindPrinter(con->uri + 10);
+
+ if (p)
+ {
snprintf(con->uri, sizeof(con->uri), "/ppd/%s.ppd", p->name);
+ }
else
{
if (!cupsdSendError(con, HTTP_NOT_FOUND, CUPSD_AUTH_NONE))
break;
}
}
- else if ((!strncmp(con->uri, "/printers/", 10) ||
+ else if ((!strncmp(con->uri, "/icons/", 7) ||
+ !strncmp(con->uri, "/printers/", 10) ||
!strncmp(con->uri, "/classes/", 9)) &&
!strcmp(con->uri + strlen(con->uri) - 4, ".png"))
{
con->uri[strlen(con->uri) - 4] = '\0'; /* Drop ".png" */
- if (!strncmp(con->uri, "/printers/", 10))
+ if (!strncmp(con->uri, "/icons/", 7))
+ p = cupsdFindPrinter(con->uri + 7);
+ else if (!strncmp(con->uri, "/printers/", 10))
p = cupsdFindPrinter(con->uri + 10);
else
p = cupsdFindClass(con->uri + 9);