.\" EMail: cups-info@cups.org
.\" WWW: http://www.cups.org
.\"
-.TH cupsd.conf 5 "Common UNIX Printing System" "17 September 2005" "Easy Software Products"
+.TH cupsd.conf 5 "Common UNIX Printing System" "30 September 2005" "Easy Software Products"
.SH NAME
cupsd.conf \- server configuration file for cups
.SH DESCRIPTION
.br
Specifies the page log filename.
.TP 5
+PassEnv variable [... variable]
+.br
+Passes the specified environment variable(s) to child processes.
+.TP 5
<Policy name> ... </Policy>
.br
Specifies access control for the named policy.
Specifies what information is included in the Server header of HTTP
responses.
.TP 5
+SetEnv variable value
+.br
+Set the specified environment variable to be passed to child processes.
+.TP 5
SSLListen
.br
Listens on the specified address and port for encrypted connections.
temp2[HTTP_MAX_BUFFER],
/* Temporary buffer 2 for value */
*ptr, /* Pointer into line/temp */
- *value; /* Pointer to value */
+ *value, /* Pointer to value */
+ *valueptr, /* Pointer into value */
+ quote; /* Quote character */
int valuelen; /* Length of value */
cupsd_var_t *var; /* Current variable */
unsigned ip[4], /* Address value */
* System (admin) group(s)...
*/
- char *valueptr, /* Pointer into value */
- quote; /* Quote character */
-
-
for (i = NumSystemGroups; *value && i < MAX_SYSTEM_GROUPS;)
{
if (*value == '\'' || *value == '\"')
cupsdLogMessage(CUPSD_LOG_WARN, "Unknown ServerTokens %s on line %d.",
value, linenum);
}
+ else if (!strcasecmp(line, "PassEnv"))
+ {
+ /*
+ * PassEnv variable [... variable]
+ */
+
+ for (; *value;)
+ {
+ for (valuelen = 0; value[valuelen]; valuelen ++)
+ if (isspace(value[valuelen]) || value[valuelen] == ',')
+ break;
+
+ if (value[valuelen])
+ {
+ value[valuelen] = '\0';
+ valuelen ++;
+ }
+
+ cupsdSetEnv(value, NULL);
+
+ for (value += valuelen; *value; value ++)
+ if (!isspace(*value) || *value != ',')
+ break;
+ }
+ }
+ else if (!strcasecmp(line, "SetEnv"))
+ {
+ /*
+ * SetEnv variable value
+ */
+
+ for (valueptr = value; *valueptr && !isspace(*valueptr & 255); valueptr ++);
+
+ if (*valueptr)
+ {
+ /*
+ * Found a value...
+ */
+
+ while (isspace(*valueptr & 255))
+ *valueptr++ = '\0';
+
+ cupsdSetEnv(value, valueptr);
+ }
+ else
+ cupsdLogMessage(CUPSD_LOG_ERROR,
+ "Missing value for SetEnv directive on line %d.",
+ linenum);
+ }
else
{
/*