dminster94, stunnel.service - это файл конфигурации службы для systemd.
Что выдает команда: systemctl status stunnel?
В убунту эти файлы лежат кажется тут: /lib/systemd/system.
Проверьте там наличие этого файла. Если файл есть, то может быть служба не включена. Включить ее так:
sudo systemctl enable stunnel
Если файл есть, а все предыдущие команды выдают ошибки, то можно перечитать конфиги:
sudo systemctl daemon-reload
Евгений Шатунов, Вот чорт, давно не брал в руки плюсы. Спасибо за подсказку.
Уточняю для классов объявленных как class наследование по умолчанию приватное, для классов объявленных как struct - публичное. Некит Медведев, отметь ответ Александр Ананьев решением. И читай первоисточники.
Вы не обрабатываете ни одного возврата из системных функций, поэтому не знаете какая и где ошибка.
После каждого вызова системной функции проверяйте возвращаемое значение и если ошибка - выводите ее. Тогда у вас будет информация к размышлению, а сейчас ничего нет.
dminster94, Давайте уже больше конкретики.
Выложите конфиги openvpn клиента и сервера, выложите оба конфига stunnel. Реальные адреса можете заменить чем-нибудь. Напишите ошибку при запуске stunnel. На какой стороне происходит ошибка (или на обеих)? Проверьте с помощью netstat слушает ли openvpn сервер локальный адрес (127.0.0.1). И напишите какая у вас ОС на обеих сторонах.
Lnkova, Ну потому что все ваши строковые константы ("dir", "cd", ...) типа char*,а используя wstring, вы должны использовать в константах широкие символы то же.
На сколько помню, в MSVS работал макрос TEXT("dir"), который преобразовывал параметр либо в char* либо в wchar* в зависимости от настроек проекта (если используем Unicode, то результат будет wchar*, если нет, то char*. Используйте этот макрос в константах.
И не помешало бы разобраться в отличия char и wchar_t, как эти типы связаны с настройками проекта и с WinAPI.
dminster94, Давно уже не использовал stunnel. Но когда использовал - никаких проблем с настройкой не было. Правда я его использовал не с OpenVPN. В инете куча мануалов по его настройке, вот например: https://help.ubuntu.ru/wiki/stunnel
OpenVPN при этом должен быть настроен на TCP протокол.
вычесляется фингером
Вам это так принципиально? Даже если протокол чем-то может быть опознан, это не значит, что его расшифруют.
Если SIDы пользователей игровой и рабочей винды не совпадают, то попробуйте дать доступ только конкретному пользователю игровой винды (доступ давать из игровой винды, конечно же), права на каталог остальным пользователям и группам убрать. Т.к. такого пользователя в рабочей винде нет, то доступа в каталог не будет (если не менять права).
Если обе винды установлены в разные разделы диска, то можно просто убрать из рабочей винды букву диска игровой (или вообще отключить монтирование раздела, не уверен возможно ли это на винде).
Вынесите этот параметр в реестр или конфиг файл. exe пусть будет универсальный и включает в себя все темы, еще лучше - настройки тем так же вынести вне exe в какие-то файлы описания тем. В этом случае никакого специального билдера не нужно.
stunnel это не HTTPS, это только S от него, HTTP там нет. Это и не ВПН, он просто связывает 2 TCP порта защищенным соединением.
Если вам достаточно SSL, то можете просто использовать голый OpenVPN, т.к. его шифрование так же основано на SSL (OpenSSL), так же как и stunnel.
Возможно, вам может понадобиться перевести OpenVPN на TCP (это делается правкой 1 параметра в конфиге) и перенастроить его на порт 443 (еще один параметр).
Рекомендованный для OpenVPN протокол - UDP. На TCP есть определенные проблемы на плохих каналах связи.
Что конкретно не работает? Приведите пример команды и ее результат.
Подозреваю, что у вас просто нет нужных путей в переменной окружения PATH. А OpenServer добавляет эти пути.
В этом случае при запуске команды будет сообщение что "команда не является внутренней или внешней командой ..."
Если мое предположение верно, просто добавьте нужные пути вручную в переменную окружения PATH.
Все правильно, т.к. func принимает параметром экземпляр класса myclass, при этом при вызове func(a) внутри func создается локальная копия класса a. Для создания локальной копии вызывается конструктор копирования. Обычно, что бы не клонировать экземпляры классов без необходимости в функции передаются ссылки. Но нужно иметь ввиду, что изменяя экземпляр класса переданный по ссылке вы изменяете внешний экземпляр класса. А если вы изменяете копию, то изменения не коснуться внешнего экземпляра класса из которого сделана копия, а локальная копия будет уничтожена при выходе из функции.
А почему выше при объявлении пишется ob, а тут obj?
Скорее всего это просто опечатка.
На самом деле "в паблик" это не экземпляр класса, а описание класса и описание методов. В описании так может содержаться и определение, но не обязательно. В вашем примере - только описание, а определение вынесено ниже за пределы описания. Ну так вот, в описании и определении методов (и обычных функций), могут не совпадать имена аргументов (параметров), главное, чтоб совпадали их типы. Более того в описании допускается вообще не указывать имена аргументов, а только типы. Например вот такое описание будет корректным: myclass(const myclass&);
А экземпляр класса у вас находится в main(): myclass a;
a - это экземпляр класса myclass.
Если вы там же в main объявите еще один экземпляр класса myclass следующим образом: myclass b(a);
То будет вызван конструктор копирования, который должен будет проинициализированть свой класс на основе класса переданного в параметре.
У вас описана еще более сложная ситуация, чем "простое" множественное наследование: у вас ромбовидное наследование. Это когда классы предки сами наследуются от одного класса. Это порождает дополнительные проблемы и, в принципе, если такая ситуация возникает, есть смысл пересмотреть архитектуру наследования.
В вашем случае, возможно, лучший вариант наследование заменить агрегированием. Тогда в классе человек вы можете организовать вектор классов профессия и ваш человек сможет обладать несколькими профессиями.
Что выдает команда: systemctl status stunnel?
В убунту эти файлы лежат кажется тут: /lib/systemd/system.
Проверьте там наличие этого файла. Если файл есть, то может быть служба не включена. Включить ее так:
sudo systemctl enable stunnel
Если файл есть, а все предыдущие команды выдают ошибки, то можно перечитать конфиги:
sudo systemctl daemon-reload