|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Alex'a X Spirit 2:5020/400 01 Dec 2005 01:26:06 To : Andriy Gapon Subject : Re: calendar problem -------------------------------------------------------------------------------- Wed Nov 30 2005 12:37:52 +0000, Andriy Gapon wrote: > че-то у меня subject слетел. > могу подсказать правильные слова для PR: > calendar doesn't properly handle weekday specifications when specified > weekday falls on tomorrow and tomorrow is the first day of the next month: > 1) calendar may internally treat first <weekday> of the next month as > fifth <weekday> of this month and thus fail to match it > 2) calendar may "invent" "extra" days in month if <weekday> falls onto > next month > > How to reproduce: > > $ cat > /tmp/calendar.test <<CALENDAR > Thu test entry for every Thursday > Thu+1 test entry for first Thursday > CALENDAR > > $ calendar -f /tmp/calendar.test -t 30.11.2005 > 31 Nov* test entry for every Thursday > $ calendar -f /tmp/calendar.test -t 01.12.2005 > 1 Dec* test entry for every Thursday > 1 Dec* test entry for first Thursday That's nice. BTW, я тут поковырялся немного, так может им лучше патч всобачить? Указанный баг он (вроде) справляет, какие приносит новые - проверять лень. Исходники для хакания я брал с ftp.freebsd.org/pub/FreeBSD/development/FreeBSD-CVS/src/usr.bin/calendar -----------begin of patch------------- - --- day.c.orig Wed Nov 30 22:48:21 2005 +++ day.c Wed Nov 30 22:48:54 2005 @@ -223,6 +223,8 @@ int *varp; { int day, flags, month = 0, v1, v2; + int days_in_mon[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; + if (isleap(tp->tm_year)) days_in_mon[1]++; /* * CONVENTION @@ -338,7 +340,16 @@ day = day % 10; /* day, eg '22th' */ - v2 = tp->tm_mday + (((day - 1) - tp->tm_wday + 7) % 7); + if (tp->tm_mday == days_in_mon[tp->tm_mon]) { + /* last day in month */ +#ifdef DEBUG + fprintf(stderr, "day1: %d - last day in month\n", tp->tm_mday); +#endif + v2 = v1; + if (month != 12) month++; else month = 1; + } else v2 = tp->tm_mday + (((day - 1) - tp->tm_wday + 7) % 7); + +/* fprintf(stderr, "-1-> day=%d, v1=%d, v2=%d\n", day, v1, v2); */ /* Hurrah! matched */ if ( ((v2 - 1 + 7) / 7) == v1 ) @@ -355,7 +366,16 @@ /* wired */ else { - day = tp->tm_mday + (((day - 1) - tp->tm_wday + 7) % 7); + /* last day in month */ + if (tp->tm_mday == days_in_mon[tp->tm_mon]) { + day = ((day - 1) - tp->tm_wday + 7) % 7; +#ifdef DEBUG + fprintf(stderr, "day1: %d - last day in month\n"); +#endif + if (month != 12) month++; else month = 1; + } else { + day = tp->tm_mday + (((day - 1) - tp->tm_wday + 7) % 7); + } *varp = 1; } } -----------end of patch------------- ЗЫ Все помнят, что завтра день независимости Central African Republic? Я тоже (страшно подумать) был в совершенном неведении. Крепитесь, если что. -- Alex'a X Spirit --- ifmail v.2.15dev5.3 * Origin: Ora pro nobis (2:5020/400) /ЗCmos. n1f DEйarp; { s on tм1om:еt2 2013 23 2020 2142 2238 2590 2871 SEEN-5022/128 5025/3 004/75 1111 5005/1 77 275 5013/227/16 SEE 5030/266 282 325 5022/128 5025/3 207 2192 473 507256 580 5695 731 SEEN-B BY: 5030/966 1014 1023 1063 1082 1115 1171 1763 1900 19EN-BY: 5031/47 70 5032/141 5034/13 5035/ 5033/1 21 50036/1 34 5038/9 S-BY: 5080/1003 5083/218 113 5094/7 5095/20 5096/18 Д echo from /603 (2:5030/529.51) ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД RU.UNIX.BSD Д Msg : 182562 of 220991 Scn From : Sergey Kolesnikov 2:5006/17.33 30 Nov 05 08:18:55 To : Alexey M. Kosorotov 03 Dec 05 11:41:16 Subj : RE:подсчёт трафика ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД .MSGID: 2:5006/17.33 438dc2df .REPLY: host.talk.ru 53a69af1 .PID: FIPS/32 v1.0r[M0000] .RFC-References: <1403427569@host.talk.ru> Am 29 Nov 05 10:39:50 schrieb Alexey M. Kosorotov an All zum Thema < R бзсв ва дЁ > AMK> From: "Alexey M. Kosorotov" <kam@telesib.ru> AMK> AMK> Добрый день всем! AMK> AMK> Решил проверить своего провайдера, правильно ли он трафик считает. AMK> Для этого написал следующие правила в ipfw: AMK> AMK> 00100 check-state AMK> 00200 allow ip from any to any via lo0 AMK> 00300 skipto 65530 ip from me to any via fxp0 keep-state AMK> 65529 deny log logamount 500 ip from any to any AMK> 65530 count ip from me to any out xmit fxp0 Count надо в самый верх писать, чтобы ловил все пакеты, ведь они до тебя доходят, значит провайдер их считает. А то 65529 у тебя много обрубает то что нужно считать. AMK> 65531 count ip from any to me in recv fxp0 AMK> 65532 allow ip from any to any via fxp0 AMK> 65535 deny ip from any to any AMK> AMK> Подскажите пожалуйста, правильно ли я написал правила? А то у меня AMK> трафик за сутки больше получается, особенно исходящий Зачем заморачиваешься , если он тебе меньше насчитывает? Hу пока! Сергей (kolesnikovs@mail.ru) --- F.I.P.S./32 v1.0r W95/NT [M] * Origin: В день один, ну два подвига. 0Е БОЛЬШЕ!!! (2:5006/17.33) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/9347dfcd260e.html, оценка из 5, голосов 10
|