|
|
|
Опции темы | Опции просмотра |
#1
|
|||
|
|||
src/pktwrite.c: openPktForAppending - race condition
Nil A написал(а) к All в Nov 21 20:03:20 по местному времени:
Нello, All! Race condition в функции openPktForAppending() if(fexist(fileName)) { if((pkt = fopen(fileName, "r+b")) == NULL) ... Правильнее всего сделать цикл, попытаться открыть с OCREATE|O_EXCL, если вернулся EEXIST, то открывать на чтение, если чтение вернуло ENOENT, значит надо снова пытвться O_CREATE|OEXCL, любые другие ошибки походу - выход с ошибкой. Геморой в том, что похожие проверки нужно написать и не для POSIX систем, например, винды с её похожими API. К сожаление fopen() из libc такой гибкостью не обладает. Best Regards, Nil --- GoldED+/LNX 1.1.5 |
#2
|
|||
|
|||
src/pktwrite.c: openPktForAppending - race condition
Michael Dukelsky написал(а) к Nil A в Nov 21 21:21:20 по местному времени:
Привет, Nil! 06 November 2021 20:03, Nil A послал(а) письмо к All: NA> Race condition в функции openPktForAppending() NA> if(fexist(fileName)) NA> { NA> if((pkt = fopen(fileName, "r+b")) == NULL) NA> ... NA> Правильнее всего сделать цикл, попытаться открыть с OCREATE|OEXCL, NA> если вернулся EEXIST, то открывать на чтение, если чтение вернуло NA> ENOENT, значит надо снова пытвться OCREATE|OEXCL, любые другие NA> ошибки походу - выход с ошибкой. NA> Геморой в том, что похожие проверки нужно написать и не для POSIX NA> систем, например, винды с её похожими API. К сожаление fopen() из libc NA> такой гибкостью не обладает. Пиши pull request. Желаю успехов, Nil! За сим откланиваюсь, Michael. ... node (at) f1042 (dot) ru --- GoldED+/LNX 1.1.5-b20180707 |
#3
|
|||
|
|||
src/pktwrite.c: openPktForAppending - race condition
Nil A написал(а) к Michael Dukelsky в Nov 21 21:41:58 по местному времени:
Нello, Michael! Saturday November 06 2021 21:21, from Michael Dukelsky -> Nil A: NA>> Race condition в функции openPktForAppending() MD> Пиши pull request. Дык лениво же. Я иногда, по желанию, что-то беру и пишу для фидошки. Обычно просто FTSC документов не хватает для понимания, и я иду читать референсную имплементацию в husky, binkd, etc. Ответ на свой вопрос из сорцов я получаю, а вот ещё походу могу код ревтьюировать. Есть ли у меня желание его ковырять? Так себе код, выправлять его мне не хочется, по эстетическим соображениям. Best Regards, Nil --- GoldED+/LNX 1.1.5 |
#4
|
|||
|
|||
src/pktwrite.c: openPktForAppending - race condition
Sergey Anohin написал(а) к Nil A в Nov 21 23:37:15 по местному времени:
Нello, Nil! NA> Дык лениво же. Я иногда, по желанию, что-то беру и пишу для фидошки. Обычно просто FTSC документов не хватает для понимания, и я иду читать референсную имплементацию в husky, binkd, etc. Ответ на свой вопрос из сорцов я получаю, а вот ещё походу могу код ревтьюировать. Есть ли у меня желание его ковырять? Так себе код, выправлять его мне не хочется, по эстетическим соображениям. Можно ещё юзать hpt post и не юзать txt2pkt С наилучшими пожеланиями, Sergey Anohin. --- wfido |
#5
|
|||
|
|||
src/pktwrite.c: openPktForAppending - race condition
Nil A написал(а) к Sergey Anohin в Nov 21 00:56:50 по местному времени:
Нello, Sergey! Saturday November 06 2021 23:37, from Sergey Anohin -> Nil A: SA> Можно ещё юзать hpt post и не юзать txt2pkt Кстати, интересная мысль. Посмотрел, отличия hpt post в том, что он не делает промежуточной .pkt, а сразу обрабатывает, как будто это он тоссит, т.е. сразу в базу положит и на линков раскидает (-x опция). Best Regards, Nil --- GoldED+/LNX 1.1.5 |
#6
|
|||
|
|||
src/pktwrite.c: openPktForAppending - race condition
Sergey Anohin написал(а) к Nil A в Nov 21 01:25:40 по местному времени:
Нello, Nil! NA> Кстати, интересная мысль. NA> Посмотрел, отличия hpt post в том, что он не делает промежуточной .pkt, а сразу обрабатывает, как будто это он тоссит, т.е. сразу в базу положит и на линков раскидает (-x опция). У меня роботы спамят так по крону, работает вроде без нареканий, скармливается текст из файла С наилучшими пожеланиями, Sergey Anohin. --- wfido |
#7
|
|||
|
|||
src/pktwrite.c: openPktForAppending - race condition
Nil A написал(а) к Sergey Anohin в Nov 21 01:46:40 по местному времени:
Нello, Sergey! Sunday November 07 2021 01:25, from Sergey Anohin -> Nil A: NA>> Посмотрел, отличия hpt post в том, что он не делает промежуточной NA>> .pkt, а сразу обрабатывает, как будто это он тоссит, т.е. сразу в NA>> базу положит и на линков раскидает (-x опция). SA> У меня роботы спамят так по крону, работает вроде без нареканий, SA> скармливается текст из файла Интересно, почему традиционно все эти fido.dayly и fido.monthly скрипты, из fidoip, за копирайтом 2007-2012 Maxim Sokolsky, 2:5020/828.777 работают через txt2pkt ? Best Regards, Nil --- GoldED+/LNX 1.1.5 |
#8
|
|||
|
|||
src/pktwrite.c: openPktForAppending - race condition
Alexey Vissarionov написал(а) к Nil A в Nov 21 02:51:20 по местному времени:
Доброго времени суток, Nil! 06 Nov 2021 20:03:20, ты -> All: NA> Race condition в функции openPktForAppending() NA> if(fexist(fileName)) NA> { NA> if((pkt = fopen(fileName, "r+b")) == NULL) NA> ... NA> Правильнее всего сделать цикл, попытаться открыть с OCREATE|OEXCL, NA> если вернулся EEXIST, то открывать на чтение, если чтение вернуло NA> ENOENT, значит надо снова пытвться OCREATE|OEXCL, любые другие NA> ошибки походу - выход с ошибкой. NA> Геморой в том, что похожие проверки нужно написать и не для POSIX NA> систем, например, винды с её похожими API. К сожаление fopen() из NA> libc такой гибкостью не обладает. man fdopen Если, конечно, он там действительно нужен. -- Alexey V. Vissarionov aka Gremlin from Kremlin gremlin ПРИ gremlin ТЧК ru; +vii-cmiii-ccxxix-lxxix-xlii ... Лотерея (сущ.): форма налога на незнание теории вероятности --- /bin/vi |
#9
|
|||
|
|||
src/pktwrite.c: openPktForAppending - race condition
Alexey Vissarionov написал(а) к Nil A в Nov 21 02:56:56 по местному времени:
Доброго времени суток, Nil! 07 Nov 2021 01:46:40, ты -> Sergey Anohin: NA>>> Посмотрел, отличия hpt post в том, что он не делает промежуточной NA>>> .pkt, а сразу обрабатывает, как будто это он тоссит, т.е. сразу в NA>>> базу положит и на линков раскидает (-x опция). SA>> У меня роботы спамят так по крону, работает вроде без нареканий, SA>> скармливается текст из файла NA> Интересно, почему традиционно все эти fido.dayly и fido.monthly NA> скрипты, из fidoip, за копирайтом 2007-2012 Maxim Sokolsky, NA> 2:5020/828.777 работают через txt2pkt ? Потому что автор этих скриптов - дурак, и не думал, когда копировал методы использования txt2pkt из скриптов тех людей, которые действительно умеют им пользоваться. -- Alexey V. Vissarionov aka Gremlin from Kremlin gremlin ПРИ gremlin ТЧК ru; +vii-cmiii-ccxxix-lxxix-xlii ... Время выхода из лабиринта зависит от количества извилин --- /bin/vi |
#10
|
|||
|
|||
src/pktwrite.c: openPktForAppending - race condition
Nil A написал(а) к Alexey Vissarionov в Nov 21 08:21:20 по местному времени:
Нello, Alexey! Sunday November 07 2021 02:56, from Alexey Vissarionov -> Nil A: NA>> Интересно, почему традиционно все эти fido.dayly и fido.monthly NA>> скрипты, из fidoip, за копирайтом 2007-2012 Maxim Sokolsky, NA>> 2:5020/828.777 работают через txt2pkt ? AV> Потому что автор этих скриптов - дурак, и не думал, когда копировал AV> методы использования txt2pkt из скриптов тех людей, которые AV> действительно умеют им пользоваться. Самое смешное, что если посмотреть на TID/PID писем, например, фидонет.тудей ежедневный робот постит и прочие, то можно там везде увидить txt2pkt. Короче, это какой-то стандарт-де-факто уже для постинья в эхи, а не hpt post. Best Regards, Nil --- GoldED+/LNX 1.1.5 |