Юрий, эти команды надо поместить в один bat файл вместе с командой запуска искомого приложения, перед запуском. Тогда все должно быть нормально.
Если нет, то, возможно, приложению не только TEMP каталоги нужны, а еще что-то.
Попробуйте отследить, какие каталоги требуются приложению. Сделать это можно с помощью утилиты diskmon из состава Sysinternal suite взять можно бесплатно на сайте микрософта Ну или просто посмотреть какие файлы/каталоги создает приложение в профиле пользователя.
CityCat4, zionkv, На сколько я знаю OpenVPN не использует виндовую службу сертификатов, у него собственная реализация и она, по идее, должна быть одинаковой, что в микротике, что в винде.
Параметры сервера, отвечающие за проверку сертификата клиента:
#verify-client-cert none
client-cert-not-required
auth-user-pass-verify scripts/login.sh via-env
PS: в мануале пишут, что параметр client-cert-not-required уже deprecated, заменен параметром verify-client-cert. Возможно вам стоит использовать новый параметр.
В микротике, видимо, по умолчанию отключена проверка сертификата клиента. Полагаю, ее можно и включить правкой конфига.
Василий Дёмин, Очень просто - отправить по адресу запрос, если не отвечает адрес удалить или блокировать так чтоб он не участвовал в собственной рассылке.
Василий Дёмин, Как уже писали выше, любой IP - это узел. Узел - это устройство, подключенное к сети (это может быть компьютер/роутер/принтер ...).
1.Не давайте пользователям менять список узлов.
2.Обратитесь к разработчикам приложения, чтоб они ввели проверку на правильность введенного адреса.
Вы то сами отличаете обычное соединение от узла?
Поясните, что имеете ввиду под обычным соединением и как по вашему они должны отличаться от узлов?
Как по мне - это совершенно разные вещи и их не нужно сравнивать и тем более отличать.
jcmvbkbc, В общем согласен, но не для случая предложенного ТС - для однобайтного хэша слишком много коллизий на каждый хэш.
Если подобрать подходящую хэш функцию, возвращающую двух-байтные хэши, то будет достаточно не плохо. В этом случае для каждого хэша будет по 2-3 коллизии.
Массив структур ничем особым не отличается от массива, например, intов, только по указателю становятся доступны все члены текущей структуры.
Читать про массивы и указатели У K&R или у Страуструпа.
Возможно конфликт мастер-браузеров, это в принципе лечится ручным назначением мастер-браузера в сети. Гуглите.
Если по простому - воспользуйтесь советом АртемЪ и пропишите все имена компов (или только нужного) в файл hosts на всех компах в сети.
romajke, Операция
arr[k]=word;
Не приводит к копированию строки из одного буфера в другой - этим вы сохраняете адрес буфера word в массив. Поэтому у вас все элементы массива будут ссылаться на один и тот же буфер. Кроме того, что при этом вы получаете не правильный результат, у вас еще образуется утечка памяти, т.к. указатели, на выделенную с помощью malloc память, потеряны и во free вы передаете указатель на word, что при этом освобождается ... не известно и поведение не предсказуемо.
Вы правильно решили проблему, явно копируя строку с помощью strcpy. Аналогично нужно делать и с любыми другими массивами только использовать функцию memcpy (с помощью memcpy можно копировать и строки то же, она в этом плане универсальнее чем strcpy).
Ну и на последок - в Си как таковых строк нет, строка - это массив байт, оканчивающийся байтом со значением 0 (нулевой байт то же является частью массива/строки), поэтому и думать нужно о них как о массивах. Различие в том, что под строкой вы понимаете какую-то самостоятельную единую сущность, а это не так - это набор сущностей (байт).
romajke, Проверка
if (arr[i])
в вашем случае не срабатывает.
Потому что, чтоб в arr[i] были нули (т.е. условие ложно) их нужно туда присвоить, а у вас этого нет.
Перед чтением из файла, присвойте всем значениям arr нули.
Потом, когда будете выделять память для строк значащие элементы примут значения !=0, а пустые строки так и останутся нулями и условие отработает как надо.
John, можно, только не с оригинальным PuTTY (она настройки сохраняет в реестре), есть клоны, которые работают с конфигурационными файлами, например KiTTY :)
Артем Филимонов, Типы данных из inttypes.h более информативны.
Размер long long и long может быть разным в зависимости от платформы, а uintX_t - всегда заданного размера. А вам тут важно соблюсти размер. Так что лучше оставить эти типы.
RJ94, Не достаточно ясно, да.
RDP файл - это не ярлык Windows,
RDP файл можно сделать, запустив mstsc, сделав необходимые настройки и нажав на кнопку "Сохранить как" - сохраняйте в файл на рабочем столе. Вот там, в настройках, есть вкладка Программы там можно настроить запуск вложенного mstsc. Для вложенного подключения так же можно на удаленном сервере сделать свой RDP файл, который указать в параметрах запуска вложенного mstsc.
На счет ошибки при запуске вложенного mstsc:
1. %PC-name% - это вы так и указываете в команде? У вас есть переменная окружения PC-name?
2.Попробуйте для вложенного mstsc написать полный путь (относительно удаленного сервера) или создайте на сервере батник, в который запишите команду mstsc с необходимыми параметрами.
Вообще потренируйтесь на чем-нибудь попроще - запустите для начала блокнот или командную строку, если с этим все будет удачно, то можно перейти и к mstsc.
Схема точно рабочая сам много лет использовал подобную для подключения к консоли удаленных компьютеров через промежуточный терминальный сервер. Правда я запускал не mstsc, а shadow.
Если нет, то, возможно, приложению не только TEMP каталоги нужны, а еще что-то.
Попробуйте отследить, какие каталоги требуются приложению. Сделать это можно с помощью утилиты diskmon из состава Sysinternal suite взять можно бесплатно на сайте микрософта Ну или просто посмотреть какие файлы/каталоги создает приложение в профиле пользователя.