Index: squid/src/acl.c diff -c squid/src/acl.c:1.270.2.27 squid/src/acl.c:1.270.2.28 *** squid/src/acl.c:1.270.2.27 Fri Feb 27 09:36:35 2004 --- squid/src/acl.c Wed Sep 1 06:21:49 2004 *************** *** 503,538 **** acl_time_data **Tail; int h1, m1, h2, m2; char *t = NULL; for (Tail = curlist; *Tail; Tail = &((*Tail)->next)); - q = memAllocate(MEM_ACL_TIME_DATA); while ((t = strtokFile())) { if (*t < '0' || *t> '9') { /* assume its day-of-week spec */ while (*t) { switch (*t++) { case 'S': ! q->weekbits |= ACL_SUNDAY; break; case 'M': ! q->weekbits |= ACL_MONDAY; break; case 'T': ! q->weekbits |= ACL_TUESDAY; break; case 'W': ! q->weekbits |= ACL_WEDNESDAY; break; case 'H': ! q->weekbits |= ACL_THURSDAY; break; case 'F': ! q->weekbits |= ACL_FRIDAY; break; case 'A': ! q->weekbits |= ACL_SATURDAY; break; case 'D': ! q->weekbits |= ACL_WEEKDAYS; break; case '-': /* ignore placeholder */ --- 503,538 ---- acl_time_data **Tail; int h1, m1, h2, m2; char *t = NULL; + long weekbits = 0; for (Tail = curlist; *Tail; Tail = &((*Tail)->next)); while ((t = strtokFile())) { if (*t < '0' || *t> '9') { /* assume its day-of-week spec */ while (*t) { switch (*t++) { case 'S': ! weekbits |= ACL_SUNDAY; break; case 'M': ! weekbits |= ACL_MONDAY; break; case 'T': ! weekbits |= ACL_TUESDAY; break; case 'W': ! weekbits |= ACL_WEDNESDAY; break; case 'H': ! weekbits |= ACL_THURSDAY; break; case 'F': ! weekbits |= ACL_FRIDAY; break; case 'A': ! weekbits |= ACL_SATURDAY; break; case 'D': ! weekbits |= ACL_WEEKDAYS; break; case '-': /* ignore placeholder */ *************** *** 553,560 **** --- 553,563 ---- memFree(q, MEM_ACL_TIME_DATA); return; } + q = memAllocate(MEM_ACL_TIME_DATA); q->start = h1 * 60 + m1; q->stop = h2 * 60 + m2; + q->weekbits = weekbits; + weekbits = 0; if (q->start> q->stop) { debug(28, 0) ("%s line %d: %s\n", cfg_filename, config_lineno, config_input_line); *************** *** 562,575 **** memFree(q, MEM_ACL_TIME_DATA); return; } } } ! if (q->start == 0 && q->stop == 0) ! q->stop = 23 * 60 + 59; ! if (q->weekbits == 0) ! q->weekbits = ACL_ALLWEEK; ! *(Tail) = q; ! Tail = &q->next; } void --- 565,584 ---- memFree(q, MEM_ACL_TIME_DATA); return; } + if (q->weekbits == 0) + q->weekbits = ACL_ALLWEEK; + *(Tail) = q; + Tail = &q->next; } } ! if (weekbits) { ! q = memAllocate(MEM_ACL_TIME_DATA); ! q->start = 0 * 60 + 0; ! q->stop = 24 * 60 + 0; ! q->weekbits = weekbits; ! *(Tail) = q; ! Tail = &q->next; ! } } void