Pull to refresh
45
0.1

C++ разработчик

Send message
К сожалению, официальный I2P тоже не миновала эта участь.
И, разумеется, i2pd подобной глупостью заниматься не собирается.
Причем в даркнете, потому что пиндосские доброходы завалят хостера жалобами.
Все именно так. Создаются исходящие соединение, но по UDP все равно делается hole punch чтобы получать ответы от той стороны.
Можно также соединить два адреса позади NAT если оба знают третий с публичным IP.
Короче это работает давно и успешно у всех.
I2P работает без проблем. Принцип: делается временный hole punch для UDP пакетов на маршрутизаторе опсоса и трафик ходит
Транзитные тоннели ничего не знают о данном протоколе: это протокол более высокого уровня и его сообщения передаются в зашифрованном виде внутри I2NP сообщений Tunnel и TunnelGateway.
>Как отмечает блогер, не все его удаленные видео были связаны с криптографией.

Все таки криптография и криптовалюты это не одно и то же.
А еще, пользуясь случаем, напомню про I2P
Ну чтобы расплатиться в волмарте наличными кредитный рейтинг действительно не нужен. А купить сотовый телефон с контрактом уже не получится. Не говоря уже о том, чтобы застраховать машину и снять жилье. Заметьте, ни о каком кредите речь пока даже не идет.
А если я захожу в онлайн банк исключительно с компьютера? :)
Значит вы никогда не были в пиндостане. Там с вами без кредитного рейтинга никто даже разговаривать не станет.
>CallbackData *callback = g_hash_table_lookup(reactor->table, &fd);

Не лучше ли сразу держать указатель на коллбэк в events[i].data.ptr и обойтись без лишнего поиска в хэше?
Например возвращать не void, а некоторую сущность, дающую доступ к этому асинхронному процессу. Главное, чтобы была возможность контроля над этим асинхронным процессом. В противном случае любой асинхронный процесс рискует стать зомби.
Так метод тогда должен называться не runOnce а типа invoke...., и соответствующими методами класса для контроля над асинхронными процессами. У вас же претензия в том, что чтение продолжает работать после завершения runOnce.
Ну так надо метод сделать для его закрытия.
Антипаттерн здесь вовсе не в shared_from_this, а использовании асинхронного чтения в runOnce. Тут надо или читать синхронно или дожидаться завершения и уж потом выходить.
>Можно остановить зомби, уничтожив экземпляр boost::asio::io_context!

Или просто закрыть стрим, тогда async_read вызовет коллбэк с ошибкой и все остановится корректно.
Потому что остальной код принимает в качестве параметра shared_ptr, чтобы было можно передавать туда.
достаточно найти кого-то, кто взглянет на спосок сотрудников и выяснит — есть там имярек или нет.

Не подскажете, где взять такой список законным способом?

Вы собираетесь при смене работы менять имя, фамилию, пол, менять место жительства и делать пластическую операцию? Боюсь не окупится…

Я просто не стану облегчать им жизнь, распространяя информацию о себе. Основная масса сразу отсеется, ибо иные методы уже слишком затратны.

Information

Rating
4,828-th
Registered
Activity