*
* Client routines for the CUPS scheduler.
*
- * Copyright 2007-2010 by Apple Inc.
+ * Copyright 2007-2011 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* This file contains Kerberos support code, copyright 2006 by
break;
}
}
-
- if (!WebInterface)
+ else if (!WebInterface)
{
/*
* Web interface is disabled. Show an appropriate message...
break;
}
- else if ((!strncmp(con->uri, "/admin", 6) &&
- strncmp(con->uri, "/admin/conf/", 12) &&
- strncmp(con->uri, "/admin/log/", 11)) ||
- !strncmp(con->uri, "/printers", 9) ||
- !strncmp(con->uri, "/classes", 8) ||
- !strncmp(con->uri, "/help", 5) ||
- !strncmp(con->uri, "/jobs", 5))
+
+ if ((!strncmp(con->uri, "/admin", 6) &&
+ strncmp(con->uri, "/admin/conf/", 12) &&
+ strncmp(con->uri, "/admin/log/", 11)) ||
+ !strncmp(con->uri, "/printers", 9) ||
+ !strncmp(con->uri, "/classes", 8) ||
+ !strncmp(con->uri, "/help", 5) ||
+ !strncmp(con->uri, "/jobs", 5))
{
/*
* Send CGI output...
sprintf(server_port, "SERVER_PORT=%d", con->serverport);
- snprintf(server_name, sizeof(server_name), "SERVER_NAME=%s",
- con->servername);
+ if (con->http.fields[HTTP_FIELD_HOST][0])
+ {
+ char *nameptr; /* Pointer to ":port" */
+
+ snprintf(server_name, sizeof(server_name), "SERVER_NAME=%s",
+ con->http.fields[HTTP_FIELD_HOST]);
+ if ((nameptr = strrchr(server_name, ':')) != NULL && !strchr(nameptr, ']'))
+ *nameptr = '\0'; /* Strip trailing ":port" */
+ }
+ else
+ snprintf(server_name, sizeof(server_name), "SERVER_NAME=%s",
+ con->servername);
envc = cupsdLoadEnv(envp, (int)(sizeof(envp) / sizeof(envp[0])));