• На собеседовании сказали, что не все функции - замыкания. Так ли это?

    @res2001
    Кто-нибудь тут выдаст, наконец, цитату из стандарта с определением замыкания?
    Все источники, кроме стандарта, дают свою интерпретацию стандарта. Последней инстанцией является стандарт языка.

    PS: я то же мимо проходил.
    Подпишусь, интересно, чем дело закончится :)
    У нас, в плюсах, чуть что, сразу цитатами из стандарта сыпят :-)
  • OpenVPN как шлюз не работает почему?

    @res2001
    dobromin, В разных экземплярах должны быть разные конфиги, а в них разные порты. Это как минимум, чтоб была принципиальная возможность запуститься хотя бы.
    Ну и ошибки при запуске давайте сюда.
    В случае ручного запуска, openvpn не становится сервисом, она работает как обычное консольное приложение, занимая консоль.
    Просто на мобильных устройствах работает и я пошел дальше.

    На винде то не работает. Но тут, похоже, виновата больше винда, а не openvpn. Но пока не увидим ошибку - трудно сказать что-то конкретнее.
    Кстати, на винде то же можно запускать руками, а не через GUI. Возможно так будет проще.
  • OpenVPN как шлюз не работает почему?

    @res2001
    dobromin, На сколько помню, log и log-append взаимоисключающие опции. Возможно будет работать последняя из них. В своих конфигах использую чаще всего log-append, чтоб логи не чистились при перезапусках.
    Options error: In [CMD-LINE]:1: Error opening configuration file: server.conf

    Ошибка явно говорит о том, что конфиг не найден.
    Рекомендую пока не парится с сервисами, на этом этапе можно запускать руками: openvpn --config <путь к конфигу>
    Запуск сервиса отладите потом, когда основной функционал заработает.
    Не уверен, что "full debug show" что-то даст применительно к openvpn.

    Вообще больше интересует лог клиента, а не сервера. У вас же на клиенте не добавляется маршурт.
  • Проблема с ядром и звуковыми картами?

    @res2001
    Ядро 6.15.0-2

    Что это за ядро у вас такое? На kernel.org все еще 5.17 не могут релизнуть, а в дебиане уже давно 6.15 и то не самое свежее :)
    SOTVM, pulsaudio работает поверх alsa, на сколько я знаю. В alsa содержатся драйвера для поддержки железа, а puls - обвязка над alsa для высокоуровневых сервисов.

    Жаль по теме добавить не чего :(
  • OpenVPN как шлюз не работает почему?

    @res2001
    dobromin, Совсем пусто в логе? Там хоть что-то должно быть. Хотя бы какие-то дежурные фразы после подключения. Добейтесь того, что бы журнал писался.
    Можно поднять уровень verb. Там до 11, кажется, но после 5 или 6 он уже каждый пакет логирует - куча не нужной сейчас информации.
    На сколько помню, в виндовом логе явно видно, что openvpn запускает route.

    openpvn connect - это родной GUI? Я уже давно не пользовался под виндой. Помнится были какие-то проблемы с несовместимостью сторонних GUI (есть и такие) в определенных случаях. Но родной у меня работал нормально.

    В винде можно запросто не дать права на файл/каталог для админа. Админ, конечно, эти права сможет себе сам потом дать, но операции чтения/записи файла, пока прав нет, будут отвергнуты с ошибкой. Кроме того в винде есть еще UAC. Так что убедитесь, что у пользователя под которым работает openvpn.exe есть права на лог файл. Смотреть в менеджере задач при поднятом соединении.
  • OpenVPN как шлюз не работает почему?

    @res2001
    dobromin, Да. log-append обычно удобнее. Слеши в пути переверните, винде все равно, а openvpn - фиг знает.
    Как у вас стартует openvpn на клиенте?
    Он может работать через службу, а может запускаться от пользователя. Служба может стартовать от своего пользователя. Посмотрите в мендежере задач от какого пользователя работает openvpn.exe после подключения.
  • OpenVPN как шлюз не работает почему?

    @res2001
    dobromin,
    какая то специфика работы у виндовс с опен впн с адресами

    Нет никакой специфики именно у винды. У openvpn есть несколько вариантов топологий внутренней сети.
    Самая "правильная" и простая на мой взгляд topology subnet. Ее вы и используете.
    Разве, что драйвер tun/tap в винде ставится отдельно, а в никсах он встроен в ядре. Иногда драйвер криво устанавливается, помогает переустановка. Но у вас ВПН поднимается, так что с драйвером все нормально.

    Ошибка в том, что не устанавливается маршрут по умолчанию. Надо с этим и разбираться.

    Опция push "redirect–gateway def1 bypass–dhcp" должна быть в конфиге сервера. push - говорит о том, что сервер прокидывает ее клиенту. На клиенте должен появляться маршрут по умолчанию через ВПН сервер после подключения.
    В логе есть ошибки?
  • OpenVPN как шлюз не работает почему?

    @res2001
    dobromin,
    заметил такую картину, как только подключается в таблице появляется шлюз по умолчанию с маршрутом но буквально на доли секунды

    Встречал такое поведение, не помню как лечилось :)
    За логи отвечают опции конфига: log, log-append, verb
    И смотрите, чтоб у процесса openvpn был доступ к логам на запись. В винде это актуально.
    https://openvpn.net/community-resources/reference-...
    Чтоб изменять таблицу маршрутизации penvpn просто запускает route с соответствующими параметрами.
  • Как написать код в c++ который будет писать сообщения в документ?

    @res2001
    ygg_71, Работа с файлами на С++ описана в любом учебнике по плюсам. В русском интернете информации то же достаточно, просто этим сайтом я сам регулярно пользуюсь и мне там проще что-то найти, чем гуглить.
    cppstudio.com/post/446
    С++ один из самых популярных языков программирования, информации по нему в интернете вагон.
  • Как написать код в c++ который будет писать сообщения в документ?

    @res2001
    ygg_71,
    в интернете ничего нет

    Серьезно? Вас в гугле забанили?
    https://en.cppreference.com/w/cpp/io/basic_ofstream
    можно будет реализовать

    Можно. АНК ведь на чем то написан :)
  • Как написать код в c++ который будет писать сообщения в документ?

    @res2001
    Все есть в стандартной библиотеке. Просто используете классы стандартной библиотеки для работы с файлами.
    Обладать нужно: текстовым редактором для написания исходного кода (редактор должен сохранять код в обычные текстовые файлы) и компилятором С++, в составе которого будет стандартная библиотека. На винде в качестве компилятора проще всего использовать MSVC или msys2+mingw, на линуксе - ставите из пакетов стандартный компилятор, обычно это gcc.
  • OpenVPN как шлюз не работает почему?

    @res2001
    dobromin, Если трафик ходит нормально между ВПН клиентом и ВПН сервером (т.е. когда это конечные точки трафика), значит с самим ВПН соединением все нормально.

    Посмотрел таблицу маршрутизации на винде (я так понял это клиент) - там маршрут по умолчанию - не через ВПН сервер. Соответственно, трафик в инет идет в обход ВПНа.

    Опция push "redirect–gateway def1 bypass–dhcp" на ВПН сервере включает маршрут по умолчанию на клиенте через ВПН. Опция push "route-gateway 10.10.0.1" лишняя, имхо.
    Если маршрут по умолчанию на клиенте не срабатывает, включайте лог на клиенте и смотрите какие сообщения туда сыпятся.
  • OpenVPN как шлюз не работает почему?

    @res2001
    dobromin, Тогда смотрите правила фаерволов на всех участниках цепочки прохождения пакетов, они могут блокировать. Может помочь tcpdump для определения того, что куда уходит и от куда не возвращается.
  • Как проверить если ли буква в массиве?

    @res2001
    KIberWarriorJs,
    я не могу понять как мне написать такой код

    Два вложенных цикла. В верхнем цикле меняешь индекс myString, во внутреннем цикле меняешь индекс letters. Индексы, естественно, разные.
  • OpenVPN как шлюз не работает почему?

    @res2001
    С ВПН сервера трафик от клиента куда должен идти? На роутер, а дальше в инет?
    Роутер что-нибудь знает о ВПН подсети? Надо на роутере добавить маршрут для ВПН подсети через ВПН сервер.
  • Как на обычном ПК сделать доступ по ссылке?

    @res2001
    Предложили как-то сделать адрес сайта через какой-то сервис

    Какой-то сервис называется, видимо, DDNS. Нужна поддержка DDNS на вашем сервере/роутере. Смысл в том, что при смене адреса, роутер сообщает об этом DDNS серверу, а тот уже, соответственно, начинает возвращать на DNS запросы обновленный адрес. Обычно в роутерах поддержка DDNS есть, в линукс/винду надо ставить какой-то дополнительный софт, не знаю какой. Поддержка DDNS нужна именно на устройстве, которое подключается к провайдеру и на котором меняется внешний адрес, обычно это роутер.
  • Как зациклить выполнение команды в bat если процесс отпадает?

    @res2001
    Что значит "процесс отпадает"?
    Судя по коду у вас все зациклено навечно. Оно вам точно надо?
    Я бы запускал через шедулер, там и расписание можно настроить.
    На вид в коде ошибок нет. Если путь, указанный в cd существует, то будет запускаться скрипт. Питон должен быть доступен для запуска из командной строки (путь к питону должен быть указан в PATH) под пользователем из-под которого запускается батник. В шедулере по умолчанию задания запускаются из-под LocalSystem, настройки PATH у него могут не совпадать с настройками пользователя под которым работаете вы.
  • Имитация ООП в C, где ошибка?

    @res2001
    При вызове виртуальных функций через макрос надо указатель приводить к нужному типу функции, т.к. в vtable будут лежать не типизированные указатели (void*).
    Так что типы для каждой виртуальной функции должны быть определены с помощью typedef.
    Так как имена виртуальных функций реально будут у макросов, сами виртуальные функции должны называться как-то по другому, ну там подчеркивание добавлять или еще что.

    В общем кода получается слишком много, чтоб этим серьезно заниматься :-)
    Обычно хватает легкого приближения к стилю ООП, без этих наворотов с наследованием и т.п.
  • Имитация ООП в C, где ошибка?

    @res2001
    Wataru, Не согласен:
    1. vtable нужен только для виртуальных функций, для обычных, не виртуальных, она не используется. Автор, по моему, еще не дошел до реализации наследования и полиморфизма, так что явно не думал об этом.
    2. таблица виртуальных функций создается в единственном экземпляре, она одна для всех экземпляров класса. В структуре класса хранится только указатель на нее.
    Вызовы виртуальных функций можно завернуть в макросы с тем же именем, что я предложил в прошлом сообщении, в макросе вызывать нужный метод через vtable.
    Как-то так вижу.