~AreEnn
                        
                        
                            ~R4SAS
                        
                        
                            ~acetone
                        
                        
                            ~orignal
                        
                        
                            ~villain
                        
                        
                            &N00B
                        
                        
                            +Xeha
                        
                        
                            GFW
                        
                        
                            Nobody
                        
                        
                            Opax
                        
                        
                            WebClient95
                        
                        
                            anon
                        
                        
                            anontor
                        
                        
                            b3t4f4c3
                        
                        
                            deserving-stegosaur
                        
                        
                            duanin2
                        
                        
                            fidoid
                        
                        
                            fujifilm
                        
                        
                            halloy1341
                        
                        
                            iiii
                        
                        
                            karamba_i2p
                        
                        
                            leopold
                        
                        
                            mareki2p
                        
                        
                            negative_rock127
                        
                        
                            nik0tr
                        
                        
                            not_bob_afk
                        
                        
                            ntty
                        
                        
                            osoznayka
                        
                        
                            poriori
                        
                        
                            profetikla
                        
                        
                            rc13
                        
                        
                            shaye
                        
                        
                            slfd
                        
                        
                            teeth
                        
                        
                            un
                        
                        
                            weko_
                        
                        
                            КрутыеЖиды]]]]]]]]]]]]]_Z
                        
                    
                    
                        orignal
                    
                    
                        weko объясни как получается что оба клиента с одного порта идут?
                    
                
                
                    
                        weko
                    
                    
                        Хороший вопрос, игра mindustry, был один тунель - мы могли оба зайти, но только первый кто зашёл мог строить. Стало 2 туннеля- всё стало норм. Конфиги надо у reloaded спрашивать
                    
                
                
                    
                        weko
                    
                    
                        Похоже на то, что с TCP всё адекватно, а с UDP нет
                    
                
                
                    
                        weko
                    
                    
                        Возможно проблема не конкретно в портах, а в реализации, но факт - 2 туннеля ситуацию исправили
                    
                
                
                    
                        orignal
                    
                    
                        weko понимаешь в чем дело
                    
                
                
                    
                        orignal
                    
                    
                        там соединяется с того порта который приходит от клинта
                    
                
                
                    
                        orignal
                    
                    
                        дурость конечно и я это переделаю
                    
                
                
                    
                        orignal
                    
                    
                        но вопрос почему с двух клиентов один порт приходит
                    
                
                
                    
                        weko
                    
                    
                        orignal: пытаюсь найти что нибудь в исходниках игры
                    
                
                
                    
                        orignal
                    
                    
                        да пока не надо я это поправлю
                    
                
                
                    
                        orignal
                    
                    
                        я еще в коде посмотрю может на клиенской стороне бага
                    
                
                
                    
                        orignal
                    
                    
                        я просто пытаюсь разобраться в коде психа ))
                    
                
                
                    
                        weko
                    
                    
                        ))
                    
                
                
                    
                        weko
                    
                    
                        Окей
                    
                
                
                    
                        orignal
                    
                    
                        в лююом случае это надо переделывать
                    
                
                
                    
                        orignal
                    
                    
                        потому что порты на клиенте и на сервере имеют мало связи
                    
                
                
                    
                        reloaded
                    
                    
                        orignal: На счет ошибки, суть что игра использует и TCP и UDP,  TCP для подключения к серверу и чата,  UDP непосредственно для игры.  И как можно было понять, подключение приходит, чат работает, но тот кто зашел
                    
                
                
                    
                        reloaded
                    
                    
                        вторым не может ничего сделать, действия не отображаются на сервере. Что приводит к мысли что что-то не так с UDP, и так и произашло, когда я продублировал тоннель, и один из играков заменил b32 адрес в
                    
                
                
                    
                        reloaded
                    
                    
                        тоннеле на новый (а второй остался со старым) - все заработало. Единственное обяснение к которому мы пришли это то что UDP тоннель слал пакеты обоих клиентов с одного клиентского порта, можно
                    
                
                
                    
                        reloaded
                    
                    
                        попробовать это протестировать, но код в любом случае нужно исправлять, так что думаю логичнее будет протестировать оригинальный конфиг после внесения изменений в i2pd, заработает - предположения
                    
                
                
                    
                        reloaded
                    
                    
                        подтвердятся 
                    
                
                
                    
                        orignal
                    
                    
                        так вот этот клинский порт приходит от клиенского приложения
                    
                
                
                    
                        reloaded
                    
                    
                        Тоесть это тот же клиентский порт который используется самим приложением? (Игрой на компютере клиента)
                    
                
                
                    
                        orignal
                    
                    
                        смотри по коду получается так что клиентсий тоннель передает порт клиента серерву
                    
                
                
                    
                        orignal
                    
                    
                        а серверный тоннель соединяется имнно  этого порта
                    
                
                
                    
                        orignal
                    
                    
                        что конечно же неправильно
                    
                
                
                    
                        orignal
                    
                    
                        но вот почему клиенский порт с разных экземляров приложения один и тот же это непотнятно
                    
                
                
                    
                        orignal
                    
                    
                        в любом случае я это переделаю
                    
                
                
                    
                        weko
                    
                    
                        orignal: reloaded вроде тестировал с одного адреса и всё работало у него
                    
                
                
                    
                        orignal
                    
                    
                        а как работало? через разные тоннели?
                    
                
                
                    
                        orignal
                    
                    
                        клинтские или серверные?
                    
                
                
                    
                        reloaded
                    
                    
                        orignal: Как работало:    Создал серверный TCP и UDP тоннели   два человека подключаются - играть не могут        при этом если я на одной и той же VM запускаю 4 клиента и подключаюсь локально с одного IP - работает
                    
                
                
                    
                        reloaded
                    
                    
                        По идее клиентские порты выдаются ОС, так что не думаю что это проблема с клиентом
                    
                
                
                    
                        acetone
                    
                    
                        i2pd падает, если "crypto.tagsToSend = 20" добавить в i2pd.conf (в секцию httpproxy)
                    
                
                
                    
                        acetone
                    
                    
                        i2pd падает, если "crypto.tagsToSend = 20" добавить в i2pd.conf (в секцию httpproxy) * только что пришлось проверить)))
                    
                
                
                    
                        orignal
                    
                    
                        а оно там вообще есть?
                    
                
                
                    
                        orignal
                    
                    
                        reloaded серверный тоннель делает явную привязку
                    
                
                
                
                    
                        orignal
                    
                    
                        потому и падает
                    
                
                
                    
                        orignal
                    
                    
                        reloaded ладно я разберуюсь в чем дело
                    
                
                
                    
                        weko
                    
                    
                        orignal: если смогу, я потестерую и скажу что вышло, чтобы точно понимать
                    
                
                
                    
                        orignal
                    
                    
                        спс
                    
                
                
                    
                        R4SAS
                    
                    
                        о, порнография
                    
                
                
                    
                        R4SAS
                    
                    
                        polistern:  github.com/PurpleBote/pboted/commit/1be1844b45a81954bd57a052297f21df26880fb6#diff-889c5495b68d2a0c0d1f238818716a71939918499efbc0fc6d2994319624fc67R9     
                    
                
                
                    
                        R4SAS
                    
                    
                        нинада так делОть
                    
                
                
                    
                        polistern
                    
                    
                        пОчему?)
                    
                
                
                    
                        polistern
                    
                    
                        Они что-то не то оптимизируют?
                    
                
                
                    
                        R4SAS
                    
                    
                        по умолчанию уже -O2 используется
                    
                
                
                    
                        R4SAS
                    
                    
                        у нас так убунта 21.04+ сломалась
                    
                
                
                    
                        R4SAS
                    
                    
                        далее
                    
                
                
                    
                        R4SAS
                    
                    
                         github.com/PurpleBote/pboted/commit/1be1844b45a81954bd57a052297f21df26880fb6#diff-2a13f1344504379e877324d3a0375adcbcb4cb27d7e575ad8f4618a52d6a00e0L10     
                    
                
                
                    
                        R4SAS
                    
                    
                        поднимать надо версии. GCC 8+ умеет filesystem
                    
                
                
                    
                        R4SAS
                    
                    
                        если я правильно помню
                    
                
                
                    
                        polistern
                    
                    
                        Ага, ну ок, убрала оптимизацию. Версии подняла, ещё не отправила. У меня вопрос, как билду DEB пакета передать control для другой?
                    
                
                
                    
                        R4SAS
                    
                    
                        другой чего?
                    
                
                
                    
                        polistern
                    
                    
                        Версии ОС
                    
                
                
                    
                        R4SAS
                    
                    
                        туда надо минимальные писать
                    
                
                
                    
                        R4SAS
                    
                    
                        т.е. сейчас это deb 10
                    
                
                
                    
                        polistern
                    
                    
                        Ну смотри, сек
                    
                
                
                    
                        R4SAS
                    
                    
                        для генерации пакетов под другие релизы делается changelog с указанием релиза
                    
                
                
                    
                        R4SAS
                    
                    
                        у меня для этого скрипт присутствует
                    
                
                
                    
                        polistern
                    
                    
                        А если зависимость в новой версии ОС отпадает, т.к. не нужна?
                    
                
                
                    
                        R4SAS
                    
                    
                        например?
                    
                
                
                    
                        R4SAS
                    
                    
                        тогда универсальный пакет
                    
                
                
                    
                        R4SAS
                    
                    
                        но я сомневаюсь что так будет
                    
                
                
                    
                        R4SAS
                    
                    
                        у тебя openssl везде разный
                    
                
                
                    
                        polistern
                    
                    
                        Например на старой GCC нужно будет с бустом filesystem делать, а в новой, с С++17, можно без него.
                    
                
                
                    
                        orignal
                    
                    
                        а зачем тебе старый?
                    
                
                
                    
                        orignal
                    
                    
                        делай сразу под 17
                    
                
                
                    
                        R4SAS
                    
                    
                        а ты все таки собираешься тянуть старые системы?
                    
                
                
                    
                        orignal
                    
                    
                        кому надо те gcc7 везде поставят
                    
                
                
                    
                        R4SAS
                    
                    
                        псс8
                    
                
                
                    
                        orignal
                    
                    
                        правда для filesystem надо 8
                    
                
                
                    
                        orignal
                    
                    
                        короче забей на старые
                    
                
                
                    
                        orignal
                    
                    
                        это же не i2pd где "дань традициям"
                    
                
                
                    
                        polistern
                    
                    
                        Да не знаю, пока поддержка выглядит как пара if-else то почему бы и нет. Я сейчас проверила, собирается у меня и с С++11 и с 17
                    
                
                
                    
                        orignal
                    
                    
                        до сих пор 4.8 поддерживается
                    
                
                
                    
                        orignal
                    
                    
                        так не нужен 11
                    
                
                
                    
                        orignal
                    
                    
                        у меня 11 потому что я начинал когда был 11
                    
                
                
                    
                        R4SAS
                    
                    
                        polistern: у тебя на stretch врядли соберется
                    
                
                
                    
                        R4SAS
                    
                    
                        это 9й
                    
                
                
                    
                        R4SAS
                    
                    
                        там псс 6.3 вроде
                    
                
                
                    
                        orignal
                    
                    
                        так я думаю можно и 8 поставить из репы
                    
                
                
                    
                        R4SAS
                    
                    
                        нет
                    
                
                
                    
                        R4SAS
                    
                    
                        откуда он там возьмется?
                    
                
                
                    
                        orignal
                    
                    
                        тады ой
                    
                
                
                    
                        orignal
                    
                    
                        полключить репу gcc
                    
                
                
                    
                        R4SAS
                    
                    
                        стретч уже как бы всё
                    
                
                
                    
                        orignal
                    
                    
                        отдельную
                    
                
                
                    
                        R4SAS
                    
                    
                        еще в июле
                    
                
                
                    
                        orignal
                    
                    
                        а ну тогда зачем тянуть eol?
                    
                
                
                    
                        R4SAS
                    
                    
                        даже LTS закончился
                    
                
                
                    
                        R4SAS
                    
                    
                        незачем
                    
                
                
                    
                        orignal
                    
                    
                        единственная стоящая вещь это сентос 7
                    
                
                
                    
                        R4SAS
                    
                    
                        его тоже в топку)))
                    
                
                
                    
                        orignal
                    
                    
                        я не согласен
                    
                
                
                    
                        R4SAS
                    
                    
                        сколько можно это говно мамонта тянуть
                    
                
                
                    
                        orignal
                    
                    
                        он до сих пор поддерживается
                    
                
                
                    
                        R4SAS
                    
                    
                        знаю, но он поддерживается не в офф ветке
                    
                
                
                    
                        R4SAS
                    
                    
                        а так же LTS
                    
                
                
                    
                        orignal
                    
                    
                        официально поддреживается вообще то
                    
                
                
                    
                        orignal
                    
                    
                        именно сентос 7
                    
                
                
                    
                        orignal
                    
                    
                        не 8
                    
                
                
                    
                        polistern
                    
                    
                        Должен собраться на стретч, там нужный буст есть и GCC норм.
                    
                
                
                    
                        orignal
                    
                    
                        а нафиге тебе стретч?
                    
                
                
                    
                        orignal
                    
                    
                        обнови уже до 10
                    
                
                
                    
                        orignal
                    
                    
                        хотя бы
                    
                
                
                    
                        polistern
                    
                    
                        Да у меня то 11))
                    
                
                
                    
                        polistern
                    
                    
                        И BSD
                    
                
                
                    
                        orignal
                    
                    
                        ну так а тогда зачем?
                    
                
                
                    
                        orignal
                    
                    
                        а у меня распбиан а он 10 ))
                    
                
                
                    
                        polistern
                    
                    
                        Так R4SAS сказал, что не соберётся, я говорю нет причин не собраться))
                    
                
                
                    
                        R4SAS
                    
                    
                        polistern: попробую попозже
                    
                
                
                    
                        orignal
                    
                    
                        так если ты передйешь на std::filesystem
                    
                
                
                    
                        polistern
                    
                    
                        Я ifdef налепила и хитрый cmake
                    
                
                
                    
                        orignal
                    
                    
                        ну вот тебе и гвоорят что старое за борт современности ))
                    
                
                
                
                    
                        polistern
                    
                    
                        Понятно если весь код нужно так обмазывать, то ну его. А так то не сложно.
                    
                
                
                    
                        R4SAS
                    
                    
                        ну так весь и придется
                    
                
                
                
                    
                        R4SAS
                    
                    
                        а это точно так нужно подключать?
                    
                
                
                    
                        R4SAS
                    
                    
                        и да, "lib" не нужно писать
                    
                
                
                    
                        R4SAS
                    
                    
                        -lstdc++fs
                    
                
                
                    
                        polistern
                    
                    
                        На 8 да, на 9 нет.
                    
                
                
                    
                        polistern
                    
                    
                        В общем есть у меня одна центось 7, если с её пакетами без плясок соберётся, то едут изменения мои с поддержкой. Как вам вариант?
                    
                
                
                    
                        R4SAS
                    
                    
                        попробуй
                    
                
                
                    
                        polistern
                    
                    
                        Если нет, то С++17 минимум тогда.
                    
                
                
                
                    
                        R4SAS
                    
                    
                        сразу в мастер
                    
                
                
                    
                        R4SAS
                    
                    
                        лол мелкомягкие на гх прилепили vscode
                    
                
                
                    
                        polistern
                    
                    
                        Блин, Cmake подвёл на CentOS, там 2.8 ))
                    
                
                
                    
                        polistern
                    
                    
                        Но на stretch 3.7 как раз) Ладно, едем на C++17
                    
                
                
                    
                        R4SAS
                    
                    
                        бугагага
                    
                
                
                    
                        R4SAS
                    
                    
                        поэтому мы ставим туда 3й
                    
                
                
                    
                        R4SAS
                    
                    
                        там он есть в репах
                    
                
                
                    
                        R4SAS
                    
                    
                        yum install cmake3
                    
                
                
                    
                        R4SAS
                    
                    
                        polistern: 
                    
                
                
                    
                        polistern
                    
                    
                        Сейчас гляну тогда
                    
                
                
                
                    
                        polistern
                    
                    
                        Обычная OpenSSL у них старовата, а которая openssl11 не линкуется. По итогу мои EVP* всякие не работаю ((
                    
                
                
                    
                        polistern
                    
                    
                        Хз ковырять дальше или забить уже
                    
                
                
                    
                        R4SAS
                    
                    
                        всм не линкуется?
                    
                
                
                    
                        R4SAS
                    
                    
                        EVP да, не будут
                    
                
                
                    
                        orignal
                    
                    
                        на сентос?
                    
                
                
                    
                        orignal
                    
                    
                        собери вручную 
                    
                
                
                    
                        orignal
                    
                    
                        и поставь
                    
                
                
                    
                        orignal
                    
                    
                        я так сделал
                    
                
                
                    
                        R4SAS
                    
                    
                        orignal: и че
                    
                
                
                    
                        orignal
                    
                    
                        ну у меня там openssl 1.1.1 счас
                    
                
                
                    
                        R4SAS
                    
                    
                        ты будешь всех заставлять руками собирать?
                    
                
                
                    
                        R4SAS
                    
                    
                        она пакет слепить хочет
                    
                
                
                    
                        orignal
                    
                    
                        ну у кого centos 7 да ))
                    
                
                
                    
                        orignal
                    
                    
                        а в пакет его нельзя добавить?
                    
                
                
                    
                        R4SAS
                    
                    
                        нет
                    
                
                
                    
                        orignal
                    
                    
                        или статически слинковать?
                    
                
                
                    
                        R4SAS
                    
                    
                        нет [2]
                    
                
                
                    
                        orignal
                    
                    
                        не надо пакет под сентос 7 
                    
                
                
                    
                        R4SAS
                    
                    
                        ты лучше ей объясни как EVP у нас работает
                    
                
                
                    
                        R4SAS
                    
                    
                        там
                    
                
                
                    
                        polistern
                    
                    
                        Так, ну он собрался и даже работает.
                    
                
                
                    
                        polistern
                    
                    
                        Сейчас подкину ему почтовый адрес, пусть запросы поделает, на всякий.
                    
                
                
                    
                        weko
                    
                    
                        как обновить туннели без рестарта роутера?
                    
                
                
                    
                        orignal
                    
                    
                        kill -s HUP
                    
                
                
                    
                        orignal
                    
                    
                        но работет не всегда
                    
                
                
                    
                        weko
                    
                    
                        пишет не хватает аргументов
                    
                
                
                    
                        orignal
                    
                    
                        так номер процесса разумеется
                    
                
                
                    
                        weko
                    
                    
                        угу
                    
                
                
                    
                        weko_
                    
                    
                        orignal точно не работает с udp
                    
                
                
                    
                        orignal
                    
                    
                        R4SAS
                    
                
                
                    
                        orignal
                    
                    
                        чинил вроде
                    
                
                
                    
                        weko_
                    
                    
                        не, tcp обновляет, udp нет
                    
                
                
                    
                        weko_
                    
                    
                        не сервер, ни клиент
                    
                
                
                    
                        orignal
                    
                    
                        я в курсе
                    
                
                
                    
                        orignal
                    
                    
                        вот R4SAS  udp и чинил
                    
                
                
                    
                        weko_
                    
                    
                        ну вот я и говорю, что теперь не работает
                    
                
                
                    
                        orignal
                    
                    
                        ну а спрорю что ли? ))
                    
                
                
                    
                        weko_
                    
                    
                        ладно, хер с ним
                    
                
                
                    
                        R4SAS
                    
                    
                        логи видать не умеем читать
                    
                
                
                    
                        R4SAS
                    
                    
                        без логов даже изучать не буду
                    
                
                
                    
                        polistern
                    
                    
                        Получается на CentOS 7 только clang может билдить. GCC староват. А так всё работает. Сама придумала проблему, сама решила)
                    
                
                
                    
                        orignal
                    
                    
                        polistern там можно 7 поставить
                    
                
                
                    
                        polistern
                    
                    
                        Мне бы ещё понять как не так кустарно линковать openssl11
                    
                
                
                    
                        orignal
                    
                    
                        не знаю
                    
                
                
                    
                        orignal
                    
                    
                        как я сказал я просто его там собрал и поставил
                    
                
                
                    
                        R4SAS
                    
                    
                        polistern: while (client_sockfd != -1)
                    
                
                
                    
                        R4SAS
                    
                    
                        а незя нормально написать состояние? не -1 ?
                    
                
                
                    
                        R4SAS
                    
                    
                        а то я не понимаю например чего тут ожидать
                    
                
                
                    
                        polistern
                    
                    
                        Пропустила
                    
                
                
                    
                        R4SAS
                    
                    
                        там должно быть INVALID_SOCKET?
                    
                
                
                    
                        R4SAS
                    
                    
                        или чего?
                    
                
                
                    
                        orignal
                    
                    
                        ну да чтобы константой
                    
                
                
                    
                        R4SAS
                    
                    
                        client_sockfd < 0
                    
                
                
                    
                        orignal
                    
                    
                        или все таки  >= 0 ?
                    
                
                
                    
                        R4SAS
                    
                    
                        вот это вообще меня убивает если честно
                    
                
                
                    
                        R4SAS
                    
                    
                        как сокет можно с числом сравнивать
                    
                
                
                    
                        R4SAS
                    
                    
                        if(fds[sid].fd >= 0)
                    
                
                
                    
                        R4SAS
                    
                    
                        а тут как понимать?
                    
                
                
                    
                        R4SAS
                    
                    
                        если он есть, или пуст?
                    
                
                
                    
                        R4SAS
                    
                    
                        крч не ясно
                    
                
                
                    
                        R4SAS
                    
                    
                        if (tcp_fd == (int)INVALID_SOCKET)
                    
                
                
                    
                        R4SAS
                    
                    
                        а зачем приводить к int?
                    
                
                
                    
                        R4SAS
                    
                    
                        он же все равно int
                    
                
                
                    
                        R4SAS
                    
                    
                        или нет?
                    
                
                
                    
                        orignal
                    
                    
                        там можнт unsigned
                    
                
                
                    
                        R4SAS
                    
                    
                        в таком месте я вообще ловлю подобное:
                    
                
                
                    
                        R4SAS
                    
                    
                        warning: comparison of integer expressions of different signedness: 'SOCKET' {aka 'long long unsigned int'} and 'int' [-Wsign-compare]
                    
                
                
                    
                        R4SAS
                    
                    
                        мне приходится у сокета менять тип с int на SOCKER
                    
                
                
                    
                        R4SAS
                    
                    
                        SOCKET*
                    
                
                
                    
                        R4SAS
                    
                    
                        иначе не хочет
                    
                
                
                    
                        R4SAS
                    
                    
                        #ifndef INVALID_SOCKET
                    
                
                
                    
                        R4SAS
                    
                    
                        а такое бывает?
                    
                
                
                    
                        polistern
                    
                    
                        По поводу if(fds[sid].fd >= 0 - по сути всё, что валидный сокет. Ну а в остальном я опиралась на то, что socket() возвращает int. Получается нужен define, где для линуха будет int, а для винды как есть подставит.
                    
                
                
                    
                        polistern
                    
                    
                        В i2psam есть, равен ~0
                    
                
                
                    
                        R4SAS
                    
                    
                        ну так под это условие тогда достаточно != INVALID_SOCKET
                    
                
                
                    
                        polistern
                    
                    
                        Я вообще думаю вынести все эти ОС зависимые вещи в отдельный заголовок, по крайней мере константы. Ну и сделать их всё-таки константами.
                    
                
                
                    
                        polistern
                    
                    
                        А то их собирать по всему коду приходится.
                    
                
                
                
                    
                        R4SAS
                    
                    
                        да, я видал этот файл
                    
                
                
                    
                        weko
                    
                    
                        orignal: я затестил вчерашнюю проблему, всё точно так же
                    
                
                
                    
                        orignal
                    
                    
                        weko рассказывай конфигурацию
                    
                
                
                    
                        weko
                    
                    
                        при чём это не проблема игры, так как если зайти с одного адреса не через i2p (в данном случае через локальную сеть), то всё работает
                    
                
                
                    
                        weko
                    
                    
                        щас скину конфиг
                    
                
                
                    
                        orignal
                    
                    
                        не надо
                    
                
                
                    
                        orignal
                    
                    
                        объясни так
                    
                
                
                    
                        orignal
                    
                    
                        у тебя есть серверный udp тоннель
                    
                
                
                    
                        orignal
                    
                    
                        и как к нему происходит подключение клиентов
                    
                
                
                
                    
                        weko
                    
                    
                        UDP работает адекватно, только если сделать туннель для каждого юзера отдельный
                    
                
                
                    
                        `
                    
                    
                        weko, minetest гоняешь по udp?
                    
                
                
                    
                        orignal
                    
                    
                        мне лень i2p запускать
                    
                
                
                    
                        weko
                    
                    
                        нет, mindustry
                    
                
                
                    
                        `
                    
                    
                        а, ок
                    
                
                
                    
                        orignal
                    
                    
                        weko так отдельный тоннель клиентский или серверный?
                    
                
                
                    
                        weko
                    
                    
                        серверный
                    
                
                
                    
                        R4SAS
                    
                    
                        poll поддерживается в винде с 8.1
                    
                
                
                    
                        weko
                    
                    
                        два клиентских там для меня, чтобы я затестил как будто я два юзера 
                    
                
                
                    
                        R4SAS
                    
                    
                        хотя может и на 7 будет
                    
                
                
                    
                        R4SAS
                    
                    
                        хз
                    
                
                
                    
                        orignal
                    
                    
                        weko теперь давай объясняй проблему
                    
                
                
                    
                        orignal
                    
                    
                        значит два клиента обращаются к одному и тому же i2p адресу и порту. так?
                    
                
                
                    
                        polistern
                    
                    
                        R4SAS, ну значит на 7 без POP3, SMTP и Control должно работать. Основная сеть на select()
                    
                
                
                    
                        weko
                    
                    
                        1. один серверный туннель. подключаюсь с разных адресов i2p - с одного не работает строительство (не работает udp)
                    
                
                
                    
                        weko
                    
                    
                        2. дублирую серверный туннель как в конфиге - всё работает нормально
                    
                
                
                    
                        weko
                    
                    
                        3. без i2p с одного адреса игра работает адеватно
                    
                
                
                    
                        orignal
                    
                    
                        так а что происходит?
                    
                
                
                    
                        polistern
                    
                    
                        R4SAS, Minimum supported client: Windows 8.1, Windows Vista [desktop apps | UWP apps]
                    
                
                
                    
                        orignal
                    
                    
                        когда второй
                    
                
                
                    
                        orignal
                    
                    
                        не приходя пакеты на клиента?
                    
                
                
                    
                        polistern
                    
                    
                        Это для select()
                    
                
                
                    
                        orignal
                    
                    
                        я хочу понять на какой стороне затык
                    
                
                
                    
                        weko
                    
                    
                        при переходе с 1 на 2 у клиента меняется только адрес и серверный порт
                    
                
                
                    
                        R4SAS
                    
                    
                        polistern: вот меня смущает эта запятая
                    
                
                
                    
                        weko
                    
                    
                        так что проблема с серверным udp
                    
                
                
                    
                        polistern
                    
                    
                        Возможно как сервис нельзя. Надо пробовать. Так конечно нифига не понятно)
                    
                
                
                    
                        R4SAS
                    
                    
                        orignal: я думаю затык в том что для новых пакетов с нового адреса не открывается новый сокет для отправки
                    
                
                
                    
                        orignal
                    
                    
                        проверю
                    
                
                
                    
                        R4SAS
                    
                    
                        ш2зв шлет все udp с одного и того же порта
                    
                
                
                    
                        weko
                    
                    
                        я щас
                    
                
                
                    
                        R4SAS
                    
                    
                        ответы соответственно прилетают туда же и ш2зв не знает кому отослать
                    
                
                
                    
                        R4SAS
                    
                    
                        либо шлет первому кто открыл соединение
                    
                
                
                    
                        R4SAS
                    
                    
                        я так это понимаю
                    
                
                
                    
                        R4SAS
                    
                    
                        хз честно
                    
                
                
                    
                        R4SAS
                    
                    
                        придется курить этот poll
                    
                
                
                    
                        R4SAS
                    
                    
                        а точнее wsapoll
                    
                
                
                    
                        R4SAS
                    
                    
                         github.com/microsoft/Windows-classic-samples/blob/main/Samples/Win7Samples/netds/winsock/wsapoll/poll.cpp   
                    
                
                
                    
                        orignal
                    
                    
                        а как же мамбл тогда работает?
                    
                
                
                    
                        polistern
                    
                    
                        nginx for windows через poll и select работает пишут, но не нашла пока минимально поддерживаемую.
                    
                
                
                    
                        orignal
                    
                    
                        std::make_shared<UDPSession>(ep, 
                     
                
                
                    
                        orignal
                    
                    
                        boost::asio::ip::udp::endpoint ep(addr, 0);
                    
                
                
                    
                        orignal
                    
                    
                        очевидно что это не так
                    
                
                
                    
                        orignal
                    
                    
                        должке быть порт разный
                    
                
                
                    
                        orignal
                    
                    
                        но возможно он сессию находит старую
                    
                
                
                    
                        orignal
                    
                    
                        if (s->Identity.GetLL()[0] == ih.GetLL()[0] && remotePort == s->RemotePort)
                    
                
                
                    
                        orignal
                    
                    
                        все ясно
                    
                
                
                    
                        orignal
                    
                    
                        weko_ признавайся что у тебя клинтский тоннель тот же самый
                    
                
                
                    
                        weko_
                    
                    
                        а?
                    
                
                
                    
                        weko_
                    
                    
                        всм
                    
                
                
                    
                        R4SAS
                    
                    
                        weko_: ты к одному туннелю клиентскому пытаешься цепляться двумя копиями игры?
                    
                
                
                    
                        orignal
                    
                    
                        или у тебя два разных клиентских
                    
                
                
                    
                        weko_
                    
                    
                        два разных клиентских, с рахных устройста в случае 2
                    
                
                
                    
                        R4SAS
                    
                    
                        так... расковырял BoteControl
                    
                
                
                    
                        weko_
                    
                    
                        я же кинул конфиг, там 2 клиентских
                    
                
                
                    
                        R4SAS
                    
                    
                        это ад
                    
                
                
                    
                        weko_
                    
                    
                        ))
                    
                
                
                    
                        orignal
                    
                    
                        ну я спрашиваю
                    
                
                
                    
                        orignal
                    
                    
                        ты же видишь по коду
                    
                
                
                    
                        polistern
                    
                    
                        R4SAS, в SMTP и POP3 такой же ад, только без POSIX сокета
                    
                
                
                    
                        orignal
                    
                    
                        у тебя два клиенских точно не с одним и тем же адресом.
                    
                
                
                    
                        R4SAS
                    
                    
                        polistern: дойду - узнаю )))
                    
                
                
                    
                        R4SAS
                    
                    
                        теперь надо узнать вот что
                    
                
                
                    
                        weko_
                    
                    
                        orignal: разные
                    
                
                
                    
                        R4SAS
                    
                    
                        для boost::filesystem::wpath есть замена или нет
                    
                
                
                    
                        weko_
                    
                    
                        mindustry.dat и mindustry-t2.dat
                    
                
                
                    
                        orignal
                    
                    
                        тогда проблема в чем то другом
                    
                
                
                    
                        orignal
                    
                    
                        weko_ откуда ты знаешл что приходят с одного порта?
                    
                
                
                    
                        weko_
                    
                    
                        я предполагаю
                    
                
                
                    
                        weko_
                    
                    
                        проблема два раза повторилась у меня и reloaded
                    
                
                
                    
                        orignal
                    
                    
                        а надо убедиться
                    
                
                
                    
                        orignal
                    
                    
                        запусти сниффер
                    
                
                
                    
                        polistern
                    
                    
                        R4SAS, wpath deprecated since boost 1.60; Removed; use class path instead. Workaround provides typedef path wpath
                    
                
                
                    
                        polistern
                    
                    
                        Возможно он в std уже так и переехал
                    
                
                
                    
                        weko_
                    
                    
                        я уже стёр эти конфиги, завтра могу убедится
                    
                
                
                    
                        orignal
                    
                    
                        потому что там порты должны быть разные
                    
                
                
                    
                        weko_
                    
                    
                        логично)
                    
                
                
                    
                        R4SAS
                    
                    
                        polistern: посмотрим. там могут быть проблемы если юзернейм или в путях не ASCII
                    
                
                
                    
                        weko_
                    
                    
                        или ты про код?
                    
                
                
                    
                        weko_
                    
                    
                        завтра проверю, скажи только чем
                    
                
                
                    
                        orignal
                    
                    
                        я по коду вижу что будут разные
                    
                
                
                    
                        orignal
                    
                    
                        потому и гвоорю что думаю что проблема не в этом
                    
                
                
                    
                        weko_
                    
                    
                        скажи какой утилитой проверять
                    
                
                
                    
                        orignal
                    
                    
                        wireshark
                    
                
                
                    
                        orignal
                    
                    
                        дамп снимай и смотрти заголовки
                    
                
                
                    
                        R4SAS
                    
                    
                        polistern: посмотрим. там могут быть проблемы если юзернейм или в путях не ASCII
                    
                
                
                    
                        R4SAS
                    
                    
                        ой
                    
                
                
                    
                        polistern
                    
                    
                        Бывает)
                    
                
                
                    
                        R4SAS
                    
                    
                        weko_: а с чем либо другим проверить можешь?
                    
                
                
                    
                        R4SAS
                    
                    
                        (случайно вверх нажал перед отправкой)
                    
                
                
                    
                        R4SAS
                    
                    
                        weko_: мамл же пашет как то
                    
                
                
                    
                        orignal
                    
                    
                        то то и оно там явно причина в другом
                    
                
                
                    
                        R4SAS
                    
                    
                        polistern: memset(sessions, 0, sizeof(sessions));
                    
                
                
                    
                        polistern
                    
                    
                        {0} ?
                    
                
                
                    
                        R4SAS
                    
                    
                        'void* memset(void*, int, size_t)' clearing an object of type 'struct bote::pop3::pop3_session'
                    
                
                
                    
                        R4SAS
                    
                    
                        хз почему оно так думает конечно
                    
                
                
                    
                        polistern
                    
                    
                        Ааа, ну так то он и должен очищать нулями. Это как варнинг или прям ошибка?
                    
                
                
                    
                        R4SAS
                    
                    
                        варн
                    
                
                
                    
                        polistern
                    
                    
                        Действительно хз почему они думают, что я тут что-то другое хочу. Это что за компилятор?
                    
                
                
                    
                        R4SAS
                    
                    
                        gcc 12.1.0
                    
                
                
                
                    
                        orignal
                    
                    
                        sizeof(sessions) будет равен 8
                    
                
                
                    
                        orignal
                    
                    
                        вы чего?
                    
                
                
                    
                        orignal
                    
                    
                        это же размер указателя
                    
                
                
                    
                        polistern
                    
                    
                        (sizeof(*sessions)) * (sizeof(sessions)) получается?
                    
                
                
                    
                        orignal
                    
                    
                        я не знаю что это
                    
                
                
                    
                        orignal
                    
                    
                        это массив или указатель или что?
                    
                
                
                    
                        polistern
                    
                    
                        Массив структур
                    
                
                
                    
                        polistern
                    
                    
                        Взято из доки IBM))
                    
                
                
                    
                        orignal
                    
                    
                        так надо длину его знать
                    
                
                
                    
                        orignal
                    
                    
                        а ну если прямо там массив объявлен тогда можно
                    
                
                
                    
                        polistern
                    
                    
                        Грубо говоря sessions[5], не указатель.
                    
                
                
                    
                        orignal
                    
                    
                        да там будет полный размер
                    
                
                
                    
                        orignal
                    
                    
                        но только если он объявлен именно там
                    
                
                
                    
                        polistern
                    
                    
                        Именно так
                    
                
                
                    
                        R4SAS
                    
                    
                        крч че делать то?
                    
                
                
                    
                        R4SAS
                    
                    
                        в SMTP такого нет
                    
                
                
                    
                        R4SAS
                    
                    
                        либо есть... сейчас перепроверю
                    
                
                
                    
                        R4SAS
                    
                    
                        да, там тишина
                    
                
                
                    
                        polistern
                    
                    
                        Есть, там одинакого сессии сделаны. Надо кстати оптимизировать будет их потом, много памяти жрут.
                    
                
                
                    
                        polistern
                    
                    
                        А если нет, то странно.
                    
                
                
                    
                        R4SAS
                    
                    
                        крч э
                    
                
                
                    
                        R4SAS
                    
                    
                        это хрень в конпеляторе
                    
                
                
                
                    
                        R4SAS
                    
                    
                        а это уже в имеющемся коде
                    
                
                
                    
                        R4SAS
                    
                    
                        тоже int и SOCKET ))
                    
                
                
                    
                        R4SAS
                    
                    
                        свой я сейчас в PR залил (дважды), собирается уже
                    
                
                
                    
                        polistern
                    
                    
                        Круто)