• Клиент-серверное приложение?

    @res2001
    maaGames, Проще всего сразу после установки соединения стартовать вычислительный процесс и ему передавать новый клиентский сокет. А серверный процесс продолжает дальше принимать соединения.
  • Как удалить из текстового файла структуру?

    @res2001
    Если структура бинарная можно вычислить смещения начала структуры и писать туда данные, считанные после структуры. В конце надо будет сделать уменьшение размера файла на размер удаляемой структуры.
  • В IDE qt creater выходят ошибки при запуске кода, хотя в DEV-C++ код нормально компилируется. Как исправить?

    @res2001
    Если ваш проект состоит из 1 файла исходного кода, то проще собрать его в командной строке.
    Но конечно, для более сложных проектов, придется познакомится как минимум с одной системой сборки типа qmake или cmake (их еще целая пачка есть, наиболее известная это make и ее makefile)
  • В IDE qt creater выходят ошибки при запуске кода, хотя в DEV-C++ код нормально компилируется. Как исправить?

    @res2001
    Добавлю.
    qtcreator прекрасно работает и с cmake проектами. Т.к. у вас код не использует Qt то можно использовать cmake для сборки.
  • OpenVPN не работает по TCP?

    @res2001
    Temp-User_0000,
    Видимо WSL - это виндовая пародия на openvz.

    Нет.
    А аутентификация по LDAP или pam MySQL на виндовс работает?!

    А что может помешать? Это чисто программные userspace решения.
  • OpenVPN не работает по TCP?

    @res2001
    Temp-User_0000,
    Options error: --explicit-exit-notify can only be used with --proto udp

    Как написано в логе этот параметр не совместим с TCP и используется только для UDP.
    На счет WSL: у меня не было опыта запуска openvpn под wsl. Из того, что удалось нагуглить - WSL не поддерживает интерфейсы tun/tap для виртуальных сетевых адаптеров, которые использует openvpn. Поэтому, похоже, под wsl это не будет работать.
    Но openvpn прекрасно работает под виндой без wsl, как клиент так и сервер.
  • Что не так в #define?

    @res2001
    Илья, Прекрасно ссылки вставляются.
  • Что не так в #define?

    @res2001
    Илья, Уберите запуск программы из строки компиляции, возможно при компиляции происходит ошибка и исполняется старый исполняемый файл. Из-за того, что вы стразу стартуете программу, то ошибку компиляции просто не видите.
    Как вариант удалите исполняемый файл руками, потом компилируйте.
  • Можно ли это считать авторизацией по RDP?

    @res2001
    На сколько помню, при подключении RDP генерируется целая пачка событий, в каких-то указан и IP и USERNAME.
    Зайди сам по RDP и посмотри, что на эту сессию упало в журнал.
    Приведенное событие абсолютно не информативное.
  • Как мне правильно соединить три строки и сделать системный вызов?

    @res2001
    Что-то я замудрил. На самом деле всю команду не нужно заключать в кавычки.

    В общем мне удалось заставить работать эту конструкцию после выполнения п.1
    Рабочий код:
    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
    #include <unistd.h>
    
    int main(int argc, char **argv)
    {
            char filenames[1000];
            memset(filenames, 0, 1000);
            printf("Enter filenames:\n");
            read(0, filenames, 1000);
            filenames[strlen(filenames) - 1] = 0;
            const char part1[] = "file ";
            const char part2[] = " | grep 'C source' | wc -l";
            char* result = malloc(strlen(part1) + strlen(filenames) + strlen(part2) + 1);
            memset(result, 0, strlen(part1) + strlen(filenames) + strlen(part2) + 1);
            strcpy(result, part1);
            printf("len filenames = %d\n", strlen(filenames));
            strcat(result, filenames);
            strcat(result, part2);
            printf("Command line: %s\n", result);
            fflush(stdout);
            system(result);
    }
  • Как мне правильно соединить три строки и сделать системный вызов?

    @res2001
    Ирина, Поизучал немного вопрос.
    1.Функция read возвращает введеную строку вместе с символом перевода строки (вы ведь нажимаете Enter когда вводите файл, этот Enter попадает в filenames то же). Нужно вручную устанавливать в 0 последний символ в filenames после ввода.
    2.Функция system() выполняет /bin/sh -c <command>.
    Что бы в этой конструкции ваш конвеер отработал правильно все команды нужно заключить в кавычки (двойные или одинарные). Строку 'C source' лучше привести к виду \"C source\" экранировав внутренние двойные кавычки
    3.Даже все поправив мне не удалось заставить system выполнить конвеер. Одиночную команду он выполняет, конвеер не хочет. По уму нужно посмотреть как реализован system в glibc, но на это сейчас нет времени.
    Немного погуглив нашел, что народ реализует подобную схему не используя system, а организуя конвеер с помощью fork и execlp. Пример реализации можно посмотреть тут
  • Что делать, если Windows 10 работает ТОЛЬКО в безопасном режиме?

    @res2001
    Pavel_Qantorium, может
    Смотрите виндовые журналы, там может быть зацепка.
  • Как создать правильный бат-файл для архивации с условиями?

    @res2001
    У меня почему то не полностью отображается код первого батника.
    Для пропуска нескольких первых строк в for /f можно использовать опцию skip и не вести счетчик. Смотрите for /?
    Во втором батнике вам нужна только первая строка в выводе dir отсортированном от большей даты к меньшей, поэтому после set можно сразу сделать goto за цикл (или запуск winrar проводить внутри цикла и на первой же итерации завершать выполнение батника). В целом во втором батнике нет комакнды вывода, так что не понятна ваша фраза
    только выводит как "текст" название последнего созданного каталога с архивом.

    Не отрабатывает start, что ли?
  • Как фильтровать ip address в windows server?

    @res2001
    Судя по вопросу нужно разрешить доступ только к одному файлу. Правила брандмауэра не имеют такой избирательности - они ограничивают/разрешают доступ ко всему компу (службе).
  • Не вижу сеть за сервером openvpn?

    @res2001
    dsslesarev,
    Если свой роутер подключаю ключем к впн, начинаю видеть сеть 10.15.17.0 с других клиентов.

    Вот это не понял. Какой "свой" роутер, откуда начинаете видеть?
  • Не вижу сеть за сервером openvpn?

    @res2001
    dsslesarev,
    но сети 192 не видят сеть 10.15.17

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

    @res2001
    dsslesarev, С чего вы взяли?
    Пинги с хостов внутри сети 10.15.17.0 доходят до хосто за ВПН клитами?
    Если ответы на пинги приходят, то и с обратной связью все нормально.

    На каком роутере вы прописали маршруты? Похоже на шлюзе по умолчанию? Тем самым вы удлинили путь пакетов - они теперь у вас по 2 раза будут внутри сети проходить. Оно вам надо?
  • Не вижу сеть за сервером openvpn?

    @res2001
    dsslesarev, Вы не правильно видите!
    Ваши клиенты ВПН и сервер ВПН прекрасно знают где находится сеть 10.15.17.0 и как туда слать пакеты (об этом говорит наличие соответствующих маршрутов в их таблице маршрутизации).
    Но вашы компы в сети 10.15.17.0 не знают куда слать ответы клиентам ВПН, поэтому они шлют эти ответы на шлюз по умолчанию, а шлюз по умолчанию то же ничего не знает о сетях за ВПН клиентами, таким образом ответы просто теряются.
    Поэтому смотри мой второй абзац в ответе!
    На каждом компе нужно выдать команду
    route -p add 192.168.1.0 mask 255.255.255.0 10.15.17.1
    что б он мог отправлять пакеты в сеть за клиентом.
    Прописать маршруты можно разными способами, например, если у вас используется DHCP для раздачи адресов, то можно настроить соответствующую опцию в DHCP сервере и маршрут будет прописываться автоматически при получении адреса.

    Проблема не имеет отношения к ВПН - это чисто проблема IP маршрутизации.
  • Не вижу сеть за сервером openvpn?

    @res2001
    dsslesarev,
    tls-auth ta.key 0 стоит.

    Что бы это работало в клиентских конфигах нужна аналогичная директива, только с 1 на конце. И файл ключа на клиенте то же нужен, тот же что и на сервере. https://openvpn.net/community-resources/reference-...
    Впрочем это к вопросу отношения не имеет.

    Не понял данного вопроса?

    Вы не знаете, что такое "шлюз по умолчанию"?
    Ну загляните в настройки IP в винде, увидите.
    На сколько я понимаю адрес роутера (ВПН сервер) внутри сети 10.15.17.1 - он и должен быть шлюзом по умолчанию.

    Сам с любого устройства могу попасть на любую сеть где сервер в винде просто прописал:

    route -p add 192.168.1.0 mask 255.255.255.0 10.15.17.1 и все норм

    Исходя из этого прихожу к выводу, что роутер (ВПН сервер) не является шлюзом по умолчанию для сети 10.15.17.0. А значит вам нужно выдать эту команду на компах внутри сети, что бы был доступ к клиентам ВПН.
  • Не вижу сеть за сервером openvpn?

    @res2001
    dsslesarev,
    Сам с любого устройства могу попасть на любую сеть

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

    Фаерволы как один из участников сетевого обмена вполне могут быть при делах. Я не утверждаю, что в вашем случае это именно так, но это вполне возможный вариант.
    Кстати, я не увидел в клиентском конфиге директиву:
    tls-auth ta.key 1
    Она должна быть, раз вы на сервере ее прописываете.

    На мой вопрос вы принципиально, видимо, не отвечаете?
    Роутер (он же ВПН сервер) является шлюзом по умолчанию для сети 10.15.17.0?