• Как реализовать строковой тип данных в Си?

    @res2001
    voproser45654, Любому программисту на Си запись char x[] = "ddd" или char *x = "ddd" одинаково привычна и читабельна. А вот если вы начнете это заменять на самопальный string, то читающему сначала придется выяснить что это за тип и как с ним работать. Вот он будет удивлен, когда узнает, что это псевдоним для Сишных строк, оканчивающихся нулем.
    Обычно, когда вводится дополнительный тип, то к нему нужен и некоторый API для работы с типом. У вас же предполагается использовать API стандартной библиотеки, видимо. Программисту, читающему код, каждый раз когда он встретит подобный вызов с параметром типа string, придется вспоминать что это тот же самый char*.
    Короче, на мой взгляд, эта замена не добавляет читаемости коду.
  • Как реализовать строковой тип данных в Си?

    @res2001
    Какой смысл в подобной замене? Только то что вместо char будете писать string? Но все операции остаются прежними - это не будет строковым типом данных.

    Если хотите строки подобные плюсовым, то нужно объявлять структуру с хранением указателя на выделенную под строку память и возможно длиной текущей сохраненной строки и длиной текущего буфера. К структуре дописать пачку функций, реализующий работу с вашей строкой. За пример интерфейса можно взять тот же std::string из плюсов.
  • Как windows получает настройки proxy?

    @res2001
    LAG_LAGbI4, Вы можете пойти "от противного" - сделайте pac скрипт, в котором отменяйте использование прокси, разместите его раздачу в DHCP (скрипт можно положить на какой-то общедоступный сетевой ресурс, а в DHCP опциях задать путь к нему), как сказано в статье.
  • Как работает дизассемблирование в С++?

    @res2001
    Stalker_RED, Тема написания первого ассемблера по ссылке не раскрыта, я считаю :)
    Собственно, вопрос риторический.
  • Как работает дизассемблирование в С++?

    @res2001
    Василий Банников,
    Так никогда не писали. ...
    Когда появились нормальные терминалы - стали писать на ассемблере

    Как же написали первый ассемблер? :-)
  • Инструменты для визуализации mongodb?

    @res2001
    На сколько помню, в монге можно задать некоторые правила проверки при заполнении контейнеров, некий аналог схемы в реляционных БД. Если эти правила есть, то теоретически можно что-то построить, основываясь на этих правилах, если нет - каждая запись может быть произвольным объектом.
  • Ubuntu. Какой сервис или процесс пишет данные строки в syslog?

    @res2001
    Константин, На сколько я понимаю эти сообщения появляются при загрузке ОС. Видимо systemd сообщает об этапах загрузки системы. Это не ошибки, а просто информационные сообщения.
  • Ubuntu. Какой сервис или процесс пишет данные строки в syslog?

    @res2001
    Константин, В данном случае это пишет именно systemd. Если что это не "только программа" - как вы можете увидеть местами у systemd PID == 1.
    systemd - этот тот самый первый демон, который стартует самым первым сразу после ядра и управляет всей системой. И он то же может писать логи.
  • Ubuntu. Какой сервис или процесс пишет данные строки в syslog?

    @res2001
    Видимо это systemd.
    В логах, как правило, указывается имя сервиса, который записал это конкретное сообщение, в скобках указан PID.
  • Как сделать проброс по порту для другой сети?

    @res2001
    m4son,
    Я думал создать порт от сети vpn

    Вы не правильно думаете.
    На сколько я понял виртуальная машина имеет доступ к вашей локальной сети.
    Тогда вам достаточно в настройках openvpn сервера добавить маршрут для своей локальной сети, который будет добавляться при подключении на стороне клиента. Делается это с помощью опции в конфиге ВПН сервера:
    push "route <IP адрес локальной подсети> <маска подсети>"

    Если у вас локальная сеть за ВПН сервером имеет адрес 192.168.1.0 и маску 255.255.255.0, то опция будет выглядеть так:
    push "route 192.168.1.0 255.255.255.0"
    Кавычки являются частью опции.
    После добавления опции в конфиг сервера, перезапустите сервер, подключитесь клиентом. На стороне клиента должен появится маршрут к подсети за сервером. Проверить это можно командой route print.
    Но это еще не все - на вашей виртуалке вы должны добавить маршрут до ВПН подсети, иначе все ответы будут отправлятся на шлюз по умолчанию (это скорее всего ваш домашний роутер), а это не то что надо. Добавить маршрут можно командой: route add. В команде шлюзом указать IP адрес в локальной сети вашего реального компьютера.

    Чтоб вся эта конструкция не слетела после смены адреса компа (он же скорее всего получает адрес динамически), нужно как-то зафиксировать адрес на компе, чтоб он не менялся со временем. Это можно сделать двумя способами: 1. Указать статический адрес не из диапазона, раздаваемого DHCP сервером. 2. Настроить DHCP сервер, чтоб он МАС адресу вашего компа всегда отдавал какой-то определенный IP адрес.
  • Маршрутизация 2 eth с перенаправлением?

    @res2001
    Обычно приложения отправляют запросы без привязки к конкретному IP адресу и уж тем более сетевому адаптеру. Ядро само определяет через какой интерфейс нужно отправлять запрос. Делается это с помощью таблицы маршрутизации. Если у вас не так, то возможно таблица маршрутизации не правильно настроена.
    Видимо "основной" - это адрес, принадлежащий локальной сети. А eth2 - это внешний адрес для выхода в интернет. Если так, то маршрут по умолчанию должен быть прописан через eth2, а значит все должно работать так как вы и описали.
    Адрес 79.79.79.9 - это адрес в интернете?
    Приведите вывод команд:
    1. ip address show
    2. ip route show
    Реальные белые адреса в выводе можете заменить. Лишние сетевые адаптеры, если есть, можете удалить из вывода.
  • Как сделать проброс по порту для другой сети?

    @res2001
    Ничего не понял.
    Пробросив 1 порт вы предоставите доступ только к одному порту удаленного компьютера.
    Но может вам не нужен проброс портов. Думаю достаточно настроить маршрутизацию.
    Но нужна дополнительная информация:
    1. Нужна схема сети, можно на словах. С указанием адресов сетей и адресов ВПН сервера и клиента в них.
    2. конфиг файлы ВПН сервера и клиента.
    3. Я так понял ВПН у вас работает. Пинг с ВПН клиента на ВПН сервер и наоборот проходит по внутренним ВПН адресам?
  • Как настроить Zyxel Zywall 310?

    @res2001
    Alexx136, И тестируйте сначала пинг - это быстрее. Если ответ по пингу будет, то и прокси должен заработать.
  • Как настроить Zyxel Zywall 310?

    @res2001
    Alexx136, Ну тогда проведите эксперимент без изменений на прокси, если будет работать, значит на прокси какая-то подходящая маска.
  • Как настроить Zyxel Zywall 310?

    @res2001
    Alexx136,
    3. В windows 10: настройки -> Сеть и интернет -> Прокси сервер (в принципе можно и в internet explorer)

    Это и есть настройки Internet Explorer, вынесенные в системные настройки. Для других браузеров, требуется настраивать прокси в них, у каждого есть свои настройки. Хотя, вроде, и firefox и chrome умеют их импортировать из настроек IE.

    Пинги на прокси с клиента видимо то же не проходят?
    В DHCP то же поменяйте маску на 12. Или для проверки можете на одном из клиентов задать статический адрес с 12 маской (это будет маска 255.240.0.0). После этого можете проверить пинг на прокси и доступность прокси из IE.
    Кстати, какая маска сети на самом прокси настроена? Там то же должна быть 12.
  • Как настроить Zyxel Zywall 310?

    @res2001
    Alexx136,
    1. Поведение не поменялось.

    Странно. Что конкретно вы изменяли и где?
    2. Адреса DHCP выдает 10.10.0.0/23

    Все больше интересных подробностей всплывает
    3. Пока в настройках сетевого подключения Windows

    Это как интересно? Что-то не припомню в настройках сетевого подключения настроек прокси.
  • Как настроить Zyxel Zywall 310?

    @res2001
    Alexx136, С 12 маской какое поведение? По идее должно быть аналогично тому как вы бы поменяли адреса в локалке на 192.168.0.0/8.

    Адреса для локалки выдаются по DHCP? Маску надо и там изменить то же, чтоб и все локальные клиенты работали с этой маской.

    Трафик как заворачивается на прокси? Правилами фаервола или софт настроен на использование прокси?

    В сети еще другие роутеры есть? В интернет как выходите? Через этот же zywall? Криптошлюз подключается, видимо, к какой-то выделенной линии, не связанной с интернетом?
  • Как настроить Zyxel Zywall 310?

    @res2001
    Alexx136,
    Сеть делал не я.

    Но вам с ней дальше жить.
    Изменение порядка маршрутизации и прописание политики маршрутизации не помогли. Zywall 310 все равно ищет его в локалке и соответственно не находит.

    Почему не находит? Он же в локалке :-)
    Почему прокси ищет zywall? Это "прозрачный" прокси?
    Поэтому взять и просто все поменять довольно затруднительно

    Из-за того, что у вас маска в локалке 8 - у вас толком не работает маршрутизация, т.к. и WAN интерфейсы получаются то же в локалке. Не знаю, почему у вас работает яндекс на WAN интерфейсе с "локальным" адресом, это какие-то чудеса. Может быть в zywall пакеты принудительно форвардятся на WAN интерфейсы?
    Пока вы с этим бардаком не разберетесь, маршрутизация у вас работать не будет. Какие еще проблемы можете из-за этого поиметь сказать трудно.

    Маску можно выбирать не обязательно 24, можно тоньше подойти, так, что бы маской отсечь реальные локальные адреса от WAN адресов. В этом случае маршрутизация то же будет работать.
    Например, если все локальные адреса умещаются в диапазон 10.0.0.0 - 10.15.255.255, то можно взять маску 12. Тогда WAN 10.136... уже будет вне локальной сети. Это только для примера, если у вас есть еще другие диапазоны адресов, то надо учитывать их все.
    Ну и при переходе на новую маску может отвалится WAN, т.к. я сейчас не понимаю почему WAN у вас вообще работает при неработающей маршрутизации. Надо детально смотреть настройки маршрутизатора.
    Хорошо бы схему сети представлять, а то у вас кучка "фиктивных" подсетей намекает на то что сеть довольно большая. Какое место в сети занимает Zywall?
  • Почему линковщик жалуется на undefined reference?

    @res2001
    Dolarun,
    И интересно, а почему в конце? Синтаксис такой? Я просто редко библиотеки линкую.

    Вообще порядок следования важен не только для библиотек, а для всех объектных файлов, которые участвуют в компоновке, в т.ч. и для ваших объектных файлов. Это становится важным, когда в проекте куча объектников. Но устройство своих исходников вы знаете и моежете их выстроить в правильном порядке. А с библиотеками может быть немного труднее.

    Компоновщик, так же как и компилятор однопроходный. Читает очередную опцию командной строки, строит на ее основе список символов, пытается разрешить предыдущие undefined reference текущими символами, переходит к следующей опции.
    Таким образом, если на очередном объектном файле есть undefined reference они все должны закрыться с помощью объектных файлов, указанных после этого объектника.
  • Почему линковщик жалуется на undefined reference?

    @res2001
    Dolarun,
    Группы я сделал на всякий случай. Без групп так же

    Стоит убрать. Думаю OpenGL нормально архитектурно построен.

    Список не найденных символов изменился. Это хорошо.

    Попробуйте поиграть порядком следования опций -l. Смысл в том, что их надо располагать в командной строке от более высокоуровневых к менее. Грубо говоря, исходники вашей программы - это самый высокий уровень, системные библиотеки ОС - самый низкий уровень, другие библиотеки находятся где-то посередине.