Jorik_Wa, в том то и дело что не увидел слова "авторизация", а должен был бы, т.к. с помощью токенов обычно производится авторизация, а не аутентификация. Т.е. вы два раза использовали слово "аутентификация" не правильно - куки сеансовые, а не аутентификационные, а токен авторизации а не аутентификации.
P.S. Если конечно вы имеете не имеете ввиду аппаратные токены.
Jorik_Wa, у вас формулировка вопроса некорректна, т.к. вы смешиваете аутентификацию, авторизацию и создание сеанса. Если ответ не устраивает - уточните вопрос.
dableproger, почему не используется DNS это отдельный вопрос и я на него ответа знать не могу. SRVFAIL скорей всего происходит потому, что вы не разрешили клиенту делать рекурсивные запросы. Надо либо использовать set norecursion в nslookup, либо разрешить рекурсивные запросы с вашего IP в bind. Если это не поможет - загляните сначала в логи.
Qubc, Не совсем, может отличаться порядок экспорта внешних функций, соглашения об их наименовании, соглашения о вызовах функций, формат call frame.
Код тоже не будет одинаковым и может отличаться в зависимости от компилятора, его версии, применяемых оптимизаций, использованию расширенных инструкций, которые так же могут по умолчанию отличаться в разных системах.
Андрей Буров, в TCP-соединении есть состояние соединения, которое поддерживается через номера последовательностей (sequence number). При этом каждая из сторон подтверждает получение пакета с определенным sequence number используя acknowledgment. Поэтому его не возможно установить в одну сторону, необходим трафик в две стороны. Начальный sequence number генерируются каждой и сторон в ходе трехшагового хенжшейка (3-way handshake) и является уникальным.
При подобном зеркалировании, трафик приходящий от клиента к серверу с точки зрения того сервера, куда вы зеркалите, всегда будет out of order, что приведет к сбросу соединения.
Зеркалировать запросы в данном случае можно только путем установки двух независимых TCP-соединений с разными хостами.
Дмитрий Королев, это о чем вопрос?
По-умолчанию используется буферизующий режим, printf кладет данные в буфер в памяти, fflush() делает write() этих данных из памяти в файловый дискриптор.
Если отключить буферизацию, printf() сразу будет вызывать write().
Дмитрий Королев, все хитрей, это задает не состояние буфера, а режим буферизации входящего потока, состояние буфера скорей всего не меняется. Буфер при этом все равно может быть, он используется для ungetc(), а ungetc() используется в том же scanf(), например scanf("%d",...) оставит символ в буфере даже в небуферизирующем режиме.
У вас, скорей всего, немного неверные ожидания. Вы считаете что буферизация синхронизована с действиями пользователя, а это в общем случае не так и сильно зависит от системы и устройства, которое используется для stdin. stdin это не обязательно консоль и не имеет смысла ждать от него консольного поведения. C не предоставляет стандартных методов работы с консолью, работа с консолью очень сильно системозависима.
Дмитрий Королев,
Можно отключить буферизацию через setbuf(stdin, NULL), но я бы просто не стал использовать scanf(), а сделал бы fgets() + sscanf().
Можно попробовать поиграть с форматом сканирования, что-нибудь типа
scanf("%с%*[^\n]%*c", &ch1)
Антон, то что в тестовом письме нормально показывается, не значит, что проблема не выстрелит, когда вы запустите в продакшн, т.к. любое нарушение стандартов письма сказывается на доставляемости.
Здесь: https://habrahabr.ru/company/mailru/blog/239963/
есть на что еще обратить внимание.
If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version:
a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or
b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy.
...
4. Combined Works.
...
d) Do one of the following:
0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.
1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version.
В кратце: LGPL позволяет делать изменения в рамках GPL или в рамках LGPL (раздел 2 LGPL). В GPL надо раскрывать код. В рамках LGPL надо либо раскрывать код (4.0) либо давать возможность заменять на исходную библиотеку без потери функционала, что означает невозможность расширения функционала.
Или за пределами США.
в пределах Бернской конвенции, в т.ч. на территории России (за исключением произведений, перешедших в народное достояние по более раннему законодательству СССР/РФ до 1995го года).
StynuBlizz, если у вас есть предварительная договоренность - вы можете действовать в рамках предварительной договоренности сколько угодно, законодательство это не запрещает. Только лучше эту "предварительную договоренность" оформлять как договор.
Если у вас нет предварительной договоренности и вы ищете уязвимости на сайте - это уже может быть расценено как несанционированный доступ(статья 272).
Если вы нашли уязвимость без договоренности и сообщаете о ней владельцу сайта - последствия могут быть самые разные - вам могу заплатить, а могут затаскать по судам, были прецеденты. Обычно в таких случаях пишут что-нибудь типа "случайно обнаружил". По опыту, платят в таких случаях крайне редко.
Если вы нашли такую уязвимость без договоренности и предлагаете владельцу сайта заплатить за нее деньги - это статья 163.
LebedevStr, я не понимаю чем вы занимаетесь. Чтобы подключиться к входным нодам тора нужен tor. Скачайте tor, запустите tor, дальше пользуйтесь им как локальным прокси.
P.S. Если конечно вы имеете не имеете ввиду аппаратные токены.