-CHANGES.txt - 01/28/2003
+CHANGES.txt - 01/31/2003
------------------------
CHANGES IN CUPS V1.1.19
+ - The scheduler did not properly parse the SystemGroup
+ directive, so only the first group would be used.
- Revamped how strings are stored in the scheduler,
providing a substantial improvement in memory usage
for systems with large numbers of printers.
/*
- * "$Id: auth.c,v 1.67 2003/01/24 20:39:43 mike Exp $"
+ * "$Id: auth.c,v 1.68 2003/01/31 17:48:23 mike Exp $"
*
* Authorization routines for the Common UNIX Printing System (CUPS).
*
tempgroup[33]; /* Group from file */
+ LogMessage(L_DEBUG2, "GetMD5Passwd(username=\"%s\", group=\"%s\", passwd=%p)",
+ username, group ? group : "(null)", passwd);
+
snprintf(filename, sizeof(filename), "%s/passwd.md5", ServerRoot);
if ((fp = fopen(filename, "r")) == NULL)
+ {
+ LogMessage(L_ERROR, "Unable to open %s - %s", filename, strerror(errno));
return (NULL);
+ }
while (fgets(line, sizeof(line), fp) != NULL)
{
if (sscanf(line, "%32[^:]:%32[^:]:%32s", tempuser, tempgroup, passwd) != 3)
+ {
+ LogMessage(L_ERROR, "Bad MD5 password line: %s", line);
continue;
+ }
if (strcmp(username, tempuser) == 0 &&
(group == NULL || strcmp(group, tempgroup) == 0))
* Found the password entry!
*/
+ LogMessage(L_DEBUG2, "Found MD5 user %s, group %s...", username,
+ tempgroup);
+
fclose(fp);
return (passwd);
}
if (best->num_names && best->level == AUTH_GROUP)
{
+ LogMessage(L_DEBUG2, "IsAuthorized: num_names = %d", best->num_names);
+
for (i = 0; i < best->num_names; i ++)
if (GetMD5Passwd(con->username, best->names[i], md5))
break;
if (best->num_names && best->level == AUTH_GROUP)
{
+ LogMessage(L_DEBUG2, "IsAuthorized: num_names = %d", best->num_names);
+
for (i = 0; i < best->num_names; i ++)
if (GetMD5Passwd(con->username, best->names[i], md5))
break;
/*
- * End of "$Id: auth.c,v 1.67 2003/01/24 20:39:43 mike Exp $".
+ * End of "$Id: auth.c,v 1.68 2003/01/31 17:48:23 mike Exp $".
*/
/*
- * "$Id: conf.c,v 1.120 2003/01/31 17:20:02 mike Exp $"
+ * "$Id: conf.c,v 1.121 2003/01/31 17:48:23 mike Exp $"
*
* Configuration routines for the Common UNIX Printing System (CUPS).
*
char *valueptr; /* Pointer into value */
- for (i = NumSystemGroups; i < MAX_SYSTEM_GROUPS; i ++)
+ for (i = NumSystemGroups; *value && i < MAX_SYSTEM_GROUPS; i ++)
{
for (valueptr = value; *valueptr; valueptr ++)
if (isspace(*valueptr) || *valueptr == ',')
SetString(SystemGroups + i, value);
+ value = valueptr;
+
while (*value == ',' || isspace(*value))
value ++;
}
/*
- * End of "$Id: conf.c,v 1.120 2003/01/31 17:20:02 mike Exp $".
+ * End of "$Id: conf.c,v 1.121 2003/01/31 17:48:23 mike Exp $".
*/
/*
- * "$Id: ipp.c,v 1.185 2003/01/31 01:26:31 mike Exp $"
+ * "$Id: ipp.c,v 1.186 2003/01/31 17:48:23 mike Exp $"
*
* IPP routines for the Common UNIX Printing System (CUPS) scheduler.
*
* No, return an error...
*/
+ LogMessage(L_ERROR, "add_printer: bad printer URI \"%s\"!",
+ uri->values[0].string.text);
send_ipp_error(con, IPP_BAD_REQUEST);
return;
}
* Yes, return an error...
*/
+ LogMessage(L_ERROR, "add_printer: \"%s\" already exists as a class!",
+ resource + 10);
send_ipp_error(con, IPP_NOT_POSSIBLE);
return;
}
/*
- * End of "$Id: ipp.c,v 1.185 2003/01/31 01:26:31 mike Exp $".
+ * End of "$Id: ipp.c,v 1.186 2003/01/31 17:48:23 mike Exp $".
*/