• RAW-сокеты и API сетевых устройств в Linux. Какая есть литература?

    @res2001
    RST001, Сам по себе MDIO - это стандартизированный интерфейс/протокол обмена запросами/ответами ЦПУ и PHY.
    Запросы это просто прочитать/записать регистр PHY для некоторого порта.
    Но возможности у разных реализаций PHY разные. Регистры PHY стандартизированы лишь частично. Поэтому в зависимости от PHY возможности программного управления могут быть разными.
    При этом API MDIO меняться не будет, будут меняться только номера регистров и поля в этих регистрах.
  • Почему можно назначить значение полю структурного временного объекта?

    @res2001
    Тут еще замешалось что-то связанное с тем, что struct test.i - это массив. Если убрать массив из структуры и сделать просто int, например, то поведение изменится.
  • Какие есть способы установки приложения в тихую\автоматически?

    @res2001
    ettaluni,
    Там столько труда нужно приложить чтобы все сделать какой то упаковщик

    Так и есть. Если производитель не позаботился, то сделать свой собственный repack с возможностью тихой установки для сколько-нибудь сложного ПО - это может быть достаточно не тривиальная задача.
    Другое дело, что обычно для сложного ПО есть подобные возможности.
  • Заинклудить из Windows.h только Sleep()?

    @res2001
    kaktak255,
    но у меня и без него работает эта функция из synchapi.h

    Я и писал, что можно инклудить synchapi.h или выдернуть оттуда объявление функции.
    Собственно, зачем ты инклудишь какие-то заголовки - затем, что там содержаться предварительные объявления функций (не только они естественно). Ты запросто можешь не использовать заголовочный файл, а сам в собственном коде сделать это предварительное объявление.
    Ты может спросишь: "Зачем компилятору нужны эти предварительные объявления"? Они нужны потому что компилятор должен сформировать правильный код вызова функции: положить в стек в правильном порядке нужного типа аргументы функции, возможно, с предварительным приведением типов, а так же получить возвращаемое значение функции правильного типа.
    Тут стоит понимать, что компилятор С++ при компиляции файла исходного кода никогда не заглядывает вперед по файлу (или проекту), поэтому все сигнатуры функций (и типы данных) должны быть известны до первого использования в коде. Так же при компиляции проекта, состоящего из нескольких файлов, каждый файл компилируется отдельно и в этом процессе компилятору не известно, что у тебя там в соседних файлах.

    Кстати, в языке Си существует такой странный анахронизм - если для функции нет предварительного объявления, то компилятор считает, что эта функция принимает один параметр типа int и возвращает то же int. Т.е. там можно вызывать любую функцию без предварительного объявления. Но это не значит, что это будет правильно работать, если реальная сигнатура функции отличается от "умолчальной". Но вызвать можно. Интересно, эту баго-фичу случаем не пофиксили в последних стандартах?
  • Как на VPN сделать чтобы при переключении провайдера - сохранялся коннект и ip?

    @res2001
    samokiller, В дополнении ко второму варианту - QUIK можно запустить под Linux под wine. В этом случае не придется платить еще и за аренду винды. Работает вполне нормально. Правда местами шрифты криво отображаются кракозябрами - в окне со всплывиющими сообщениями. Но в остальном все нормально.
  • Как на VPN сделать чтобы при переключении провайдера - сохранялся коннект и ip?

    @res2001
    ComodoHacker,
    TCP сессия будет разорвана в любом случае.

    Не разорвется, если ВПН клиентом будет роутер, а не компьютер с QUIKом.
    Может разорваться только по таймауту.

    Кстати, второе предложение (QUIK на VPS) годится. Только надо продумать схему, чтоб ключи не хранить на VPS. И стоить аренда такого VPS будет больше, скорее всего.
  • Linux IDE eclipse c++. Как открыть и скомпилировать данный пример?

    @res2001
    dR2nrWs5TC, Зря ты кипятишься. Ссылка нормальная, все для создания нового проекта там написано. Если у тебя что-то не выходит - задавай более конкретные вопросы.
    Сначала я написал ответ, а потом посмотрел ссылку. Если бы раньше посмотрел, то ответ, пожалуй, и не писал бы.
  • Для чего эта команда?

    @res2001
    JTester,
    а он не запускается

    Опишите как вы запускаете скрипт.
    Вообще start.cmd - плохое название для батника, т.к. в cmd.exe есть команда start. Имеет смысл переименовать скрипт.
  • Настройка доступа к локальной сети Openvpn?

    @res2001
    Evgeniy Garkov, В конфиге сервера у вас используется опция client-config-dir, следовательно в /etc/openvpn/ccd должны быть файлы конфигурации клиентов. В этом случае для конфигурации сети за клиентом А нужно добавить в его файл конфигурации (в каталоге /etc/openvpn/ccd) опцию:
    iroute 192.168.1.0 255.255.255.0
    Эта опция добавит маршрут на ВПН сервер до сети за клиентом А при подключении клиента.
    push "route 192.168.31.0 255.255.255.0"
    Эта опция добавит маршрут клиенту А до сети за клиентом В.
    По идее тут же должна быть опция для назначения статического адреса клиенту А:
    ifconfig-push 10.8.0.2 255.255.255.0
    Без постоянных адресов, настраивать маршрутизацию в других сетях проблематично.
    Аналогичные настройки надо сделать и для клиента В.

    После добавления этих опций и перезагрузке ВПН в таблицах маршрутизации клиентов и сервера должны добавиться соответствующие маршруты.

    Следующий этап - настройка клиентских сетей.
    Если клиент А или В каждый в своей сети является шлюзом по умолчанию, то никакой дополнительной настройки сети не нужно.
    Если же клиент А или В в своей сети не является шлюзом по умолчанию, то нужно любым доступным способом на все компы сети добавить маршрут к сети соседа через своего клиента. Конечно этот маршрут на самого клиента добавлять не надо. Например для компов в сети за клиентом А нужно добавить маршрут до сети 192.168.31.0/24 шлюзом будет выступать клиент А. Аналогично для сети за клиентом В.
    Массово раздать маршрут можно несколькими способами, например: как опция при раздаче IP адресов в DHCP сервере, другой вариант - с помощью GPO, если в сети развернута AD, и т.п.
    Кроме того, стоит аналогичным образом добавить маршрут для ВПН (10.8.0.0/24) сети в обоих сетях.

    После подобных настроек доступ из одной сети в другую должен работать. Так же должен быть доступ с ВПН сервера в обе сети.

    Не забываем про настройку фаерволов как локальных на каждом компе в клиентских подсетях так и на клиенте А/В и на ВПН сервере. Для тестов есть смысл выбрать пару компов внутри сетей и отключить фаерволы на них. После того как маршрутизация заработает, включаем фаерволы и настраиваем правила так, что бы ВПН трафик не блокировался.
  • Как модифицировать обновляемый клон чужого проекта?

    @res2001
    Руслан, Да, у вас в локальной репе будет клон оригинального мастера.
    Да, в локальной репе будет хранится и ваша ветка.
    Локальный репозиторий можно связать с кучей разных удаленных репозиториев. По сути это просто означает, что в конфиг локального репозитория вы добавляете записи о других удаленных репозиториях. И их можно использовать в командах git.
    В локальном репозитории настраивается несколько удаленных репозиториев с которыми он может синхронизироваться:
    git remote --help
    При клонировании оригинального репозитория у вас автоматически добавится запись origin с соответствующим URLом. Свой удаленный репозиторий вы должны будете добавить сами через git remote add. Когда на github создаете новый репозиторий, то он там предлагает несколько вариантов инициализации локального репозитория с этим, один из вариантов - команда git remote add, используйте эту подсказку github (если вы его используете).
    При обновлении мастера будете указывать origin, при пуше своей ветки - свой удаленный репозиторий.
  • Как модифицировать обновляемый клон чужого проекта?

    @res2001
    pfemidi, Можно и merge, главное не менять master.
    Но я бы делал интерактивный rebase. Как мне кажется, rebase, в данном случае, выглядит более простым и логичным вариантом.
  • Настройка доступа к локальной сети Openvpn?

    @res2001
    Evgeniy Garkov, Вариант добавления маршрутов в конфиги зависит от типа конфигурирования клиентов.
    Вы используете опцию client-config-dir в конфиге сервера и есть ли у вас файлы конфигурации клиентов в каталоге, указанном в этой опции?
  • Настройка доступа к локальной сети Openvpn?

    @res2001
    mureevms, Это лишь настройка по умолчанию, которую можно и нужно изменить.
    Я обычно использую topology subnet - это создает "обычную" ВПН подсеть, при этом ВПН серверу присваивается первый адрес из этой подсети, а клиентам распределяются остальные. У автора, возможно, настроено так же.
    К слову топология по умолчанию объявлена deprecated с версии OpenVPN 2.3.
  • Как подтянуть С++ до современного уровня?

    @res2001
    Михаил Макаров,
    Так то мне куда интереснее C++17 и выше.

    Вы видите это обилие книг по С++11/14, которые вам накидали тут? Это много говорит о том как быстро выходят книги на русском языке.
    К слову книга по моей ссылке в последнем издании 2020 года содержит изменения и С++17. Но их там не много - у меня оба издания есть, могу сравнивать.

    Лично мое мнение - самое главное изменение произошло в С++11 - это введение rvalue ссылок и семантика перемещения (это одно изменение) - это описано у Скотта Мейерса хорошо. С++14 только немного дополняет и доводит до ума некоторые вещи из С++11. У Мейерса описаны и другие изменения в С++11/14.

    17 и 20 стандарты придется изучать из статей в интернете или из англоязычных книг. В любом случае последние стандарты строятся на предыдущих и они никуда не делись. Тот же С++03 никуда не делся - большая часть языка вполне соответствует С++03.
  • Почему некорректно находит произведение чисел?

    @res2001
    HoShik, По идее и с указателями должно работать. Возможно указатель надо уменьшать, а не увеличивать. Стек растет в сторону уменьшения адресов (от старших адресов к младшим). Но на какой-то другой платформе (ОС, ЦПУ) это может быть не так, поэтому стоит использовать промежуточную библиотечную прослойку, которая будет реализована правильно для любой платформы.
    Но с int и float - это вам надо вернуть как было. Это правильно. В таком виде как сейчас, возможно, будет работать в отдельно взятом примере, но не как общий случай.
    Числа с плавающей запятой это всегда приближение, а в вашем случае это приближение может сказаться на том, что вы возьмете лишний аргумент (или наоборот не доберете).
  • Постоянно отваливается RDP через vpn?

    @res2001
    sirota,
    И кто интересно пытается подключиться к этой учетке?

    Теоретически, кто-то может пытаться зайти с консоли. Вы же своим подключением его выгнали.
    Но, видимо, это не ваш случай.
    Ради спортивного интереса, при случае, можете посмотреть, что происходит в это время на консоли сервера, к которому вы таким образом подключаетесь. Если мне память не изменяет винда выдает сообщение о попытке подключиться и там что-то еще о своих действиях, даже если на компе никто не залогинен.
    Рад, что удалось натолкнуть на правильную мысль!
  • Как вывести кирилицу в консоль?

    @res2001
    Mag1str, Менять кодировку консоли с помощью chcp из программы - это ВОООТ ТАКОЙ КОСТЫЛЬ.
    В реальных приложениях для людей так не делают. Имейте ввиду.
  • Постоянно отваливается RDP через vpn?

    @res2001
    sirota, Судя по тому, что вы писали, проблема именно в RDP. Со связью похоже все нормально.
    Смотрите журналы винды на события от RDP. На клиенте и на сервере.
  • Постоянно отваливается RDP через vpn?

    @res2001
    sirota, На счет бета-версии прошивки - зря вы так сразу отмахнулись. Стоит проверить - у вас все равно других вариантов пока нет.

    У других клиентов RDP такие же проблемы с этими серверами или это только у вас так? Стоит проверить.
    Если только у вас, то проблема явно на вашей стороне. Вряд ли все сервера имеют одну и ту же проблему.

    Вообще смотрите журналы винды на клиенте и сервере. RDP там что-то должен оставлять в случае сбоя.