LINUX.ORG.RU

Сообщения maksspaces

 

Как определить wifireless.wifi-device.path в OpenWRT, автоматически?

Всем привет)

Я собираю прошивку с кастомным /etc/config/wireless

config wifi-device 'radio0'
	option type 'mac80211'
	option channel '11'
	option hwmode '11g'
	option htmode 'HT20'
	option txpower '19'
	option country 'RU'
	option path 'platform/qca953x_wmac'
	option disabled '0'

config wifi-iface 'private_wifi'
	option device 'radio0'
	option mode 'ap'
	option encryption 'psk2'
	option network 'stuff'
	option disabled '0'
	option key '123456789'
	option ssid 'private-wifi'

config wifi-iface 'public_wifi'
	option device 'radio0'
	option mode 'ap'
	option encryption 'none'
	option network 'lan'
	option ssid 'public-wifi'

под роутеры tlwr841n/nd версий 7,8,9,10.

Проблема в следующем: у этих роутеров разные wifi девайсы от версии к версии, и если прошить роутер такой прошивкой, то иногда wifi не поднимается, из-за того что указан не тот wifi девайс.

Как можно определить имя девайса автоматически? Я знаю что система сама создает еще один wifi-device с правельным путем к wifi девайсу, в случае ошибки. Но как она это делает? Куда идти и куда смотреть по этому поводу?

 , ,

maksspaces
()

ipset skbinfo

Всем привет)

Извeстно что при добавлении в список, можно указывать доп данные типа:

ipset -N myset bitmap:ip,mac --network 192.168.1.0/24 timeout 2700 skbinfo
ipset add 192.168.1.1,aa:aa:aa:aa:aa:aa skbmark 0x1

Так вот, как можно из iptables проверять совпадение или не совпадение skbmark? Если например skbmark == 0x1 то блокировать пакеты.

 ,

maksspaces
()

Редирект HTTPS

Все привет;

Ребята, как можно редиректнуть https трафик на http?

Мне нужно что то типа captive portal. Все клиенты wifi точки редиректятся на локальный веб сервер, где я получаю данные о клиенте и отправляю на сайт авторизации. С http работает отлично, а вот с https не знаю как быть.

PS Если поставить сертификат на роутер, то браузер ругается на то, что он самоподписанный

 ,

maksspaces
()

Отслежевание отключения клиента Wi-Fi

Все привет)

Ребята, какие есть варианты отслеживания отключения клиента от точки wifi? Типа на отключения от точки, запустить такой то скрипт.

 ,

maksspaces
()

Куча открытых роутеров в сети провайдера

Всем привет)

nmap'ом поглядел 10.200.*.0 - выдало кучу машин с открытыми 80 и 443.

Я ради интереса начал подключаться на 80 порт каждой. И о чудо - где-то 30% это роутеры - ZXHN H298N. И что самое интересное на 80 порту у них висит веб сервер со страничкой настройки этого роутера - пароль и юзер стандартные: admin/admin. Еще нашел один роутер Dlink. Тоже открытый.

У меня вопрос - это вообщзе реально? Почему они открыты? У меня уже мысли будто это специально так, что бы я думал что я нашел что-то интересное, а на самом деле это какие нибудь виртуалки)

 , ,

maksspaces
()

Синхронизация компьюетра с удаленным сервером

Всем привет)

Ребята, как можно синхронизировать компьюютер с удаленном сервером, притом что пк который за роутером и роутер имеет динамический ip?

Какие вообщем способы синфоронизации есть? Мне нужно иметь возможность настроивать ПК с удаленного сервера, но вот как эёти самые настройки на ПК кинуть не знаю.

Самый простой варик это периодически опрашивать сервер о текущем сосотоянии настроек, но вот если этих ПК станет несколько тысяч?

 ,

maksspaces
()

ipset && iptables

Всем привет)

Немогу понять почему не работает:

ipset -N authusers macipmap --network 192.168.0.0/16
ipset add authusers 192.168.0.103,08:00:27:24:ea:4a

iptables -A INPUT -t filter -j ACCEPT
iptables -A OUTPUT -t filter -j ACCEPT
iptables -A FORWARD -t filter -j ACCEPT
iptables -A PREROUTING -t nat -p tcp -i br-lan --dport 80 -m set ! --match-set authusers src -j DNAT --to-destination 192.168.0.102:80

по идее трафик хостов которые не лежат в authusers должен идти на 192.168.0.102:80, но у меня получается на оборот)

В чем ошибка???

 , ,

maksspaces
()

OpenWrt

Всем привет)

Суть: Имеется wifi роутер прошитый openwrt. Хочу что бы на новое подключение к роутеру запускался скрипт на вход которому бы подавался ip и mac подключившегося устройства. Если скрипт возвращает 1 то пущять трафик от этого устройства в интернеты, а если 0 то редиректитиь на локальный веб сервер на роутере?

Вопрос в следуюущем: как можно запускать скрипты на роутере при новом подключении?

 ,

maksspaces
()

Orange Pi One Горит

Купил себе orange pi one за 400р. Поставил на него Raspbian все заработало. Вместе с ним на алике заказывал блок питания 5V 35W. От него запитывал. Где то на неделю положил его на полку, а сегодня только всунул внего штекер питания, еще даже кнопку пуска не нажал, большой транзистор снизу начал греться и пошел дымок. Подскажите в чем мошла быть проблема)?

 ,

maksspaces
()

Cross-language gui

Всем привет. Появилась необходимость писать кросс приложения с gui. Как я сейчас понимаю, два основных варианта это gtk и qt. Но неужели не существует инструмент не зависящий от языка программирования и с низким порогом вхождения?

 

maksspaces
()

Умное устройство в общественном месте

Всем привет. С января 2016 года вышел закон о регистрации открытых точек доступа wifi. Все вы это знаете. У меня есть умное устройство требующее подключения к интернету, так вот вопрос: есть ли разница как я подключаюсь к роутеру? через ethernet или wifi? и в том и другом случается нужно будет проходить авторизацию? Или можно как нибудь разделить все это на разные сети?

 , ,

maksspaces
()

exit() function in c

Всем привет)

Возможно ли сделать функцию (все зависимости от архитектуры) которая бы возвращалась из дерева вызовов до заданной функции, возвращая какое то значение? И при этом процесс не завершается.

 ,

maksspaces
()

Ядро linux как основа проекта

Всем привет!

Интересен стал следующий проект:

Ссылка на схему -> http://postimg.org/image/ny56kqjgr/

Суть вот в чем: пусть у меня есть например 3 сервера подключенные в сеть. На каждый из серверов ставится так называемый (из схемы) dvm_unit - это микро ос - демон, который связывает все серверы в этакую «распределенную виртуальную машину» (dvm - distributed virtual machine). Т.е я смотрю на эти серверы как на одну машину, но на каждом сервере стоит демон, который предоставляет окно для взаимодействия с этой dvm как с единым компьютером.

Каждый демон, может предоставлять 4 вида ресурсов:

  1. cpu
  2. memory
  3. disk
  4. net - сеть

Основная задача демонов -> обеспечивать грамотное использование ресурсов всех серверов, и предоставлять пользователю абстракцию, что будто нет никаких серверов связанных по сети, а есть только один, физический сервер, на котором можно поставить какую-то os и играться с ней.

Так вот, мне хочется на основе ядра linux, сделать что то подобное. В какую сторону капать? Может кто знает проекты, основанные на linux kernel, и переделанные для своих нужд?

Надеюсь я правильно донес свою мысль)

 , ,

maksspaces
()

Двусвязные списки в СИ

Всем привет)

Написал пробник двусвязного списка -> https://github.com/maksspace/mylist/tree/master

Прошу совет: можно ли использовать подобное в реальном проекте? или лучше стандартный вид когда есть дескриптор списка и ноды и т.п?

 ,

maksspaces
()

Получение адреса структуры по адресу ее поля

Кто-нибудь, подскажите почему адреса не равны?

struct something {
    int  foo;
    char ch;
    int  bar;
};

int main(void)
{
    struct something st;
    printf("       st addr: %lx\n", &st);
    printf("st addr by foo: %lx\n", (size_t)&st.foo - (size_t)&(((struct something*)0)->foo));
    printf("st addr by foo: %lx\n", &st.foo - &(((struct something*)0)->foo));
    return 0;
}

Выхлоп:

st addr: 7fff5fbff7e0
st addr by foo: 7fff5fbff7e0
st addr by foo: 1fffd7effdf8

 ,

maksspaces
()

Односвязные списки в Си

Всем привет) Давеча на меня наехал препод по программированию, мол: «почему ты никогда не используешь код который даю я, а все время пишешь свое. Лучше меня ты не напишешь.» В аудитории я промолчал.

Давал он код библиотеки для работы с односвязными списками. Я его полистал и понял что это говно.

Вот оно -> https://github.com/maksspace/unn/tree/master/prepod

Моя критика:

  1. Большинство функции не нужны ибо поля структур открыты
  2. Бессмысленное зануление указателя и проверка на ноль почти в каждой функции
  3. Поле данных в нодах списка, это не void*, а просто структура, по этому придется каждый раз исправлять библиотеку чтобы работать в другими типами данных
  4. Нет возможности использовать кастомный аллокатор памяти

Вот мой вариант: https://github.com/maksspace/slistlib

Дайте критику по обоим вариантам)

 ,

maksspaces
()

динамические строки Си. Реинкарнация

Сегодня залил в реп первую версию библиотеки для работы с динамическими строками на Си: https://github.com/maksspace/dynamic-string

Товарищи, посмотрите это творение и выскажете свое мнение об этом) Буду очень признателен за конструктивную критику.)

 

maksspaces
()

Динамические строки Си

Всем привет. Только что залил в реп пробную либу для работы с динамическими строками. Очень прошу, посмотрите как она там) Интересно узнать мнение о качестве кода и качестве текущей имплементации. Ссылка: https://github.com/maksspace/dynamic-string

 

maksspaces
()

куча; malloc

Кто нитбудь может ссылок накидать или обьяснить куда смотреть что бы понять как работает malloc. Пусть прога загрузилась в память. Каков начальный размер кучи? Вот например, пусть под кучу стандартно выделено 1 страница(4кб). я делаю malloc(4097); в эту страничку не влезет 1 байт, и получается мне нужна еще одна страничка? и он ее берет через sbrk? и размер кучи уже 8kb?

Если я еще ни разу не выделял память то получается мне сразу доступна вся страничка? и как маллок хранит инфу о том что он уже выделил? и если я память отдаю, free(4097), то страничку которую запросил раньше я отдаю? И еще, как разобраться в строении ядра linux? есть какой то труд где хоть структура описана?

 , ,

maksspaces
()

Виртуальная память; карта памяти процесса; работа malloc()

Привет всем) Не могу никак разобраться с тем как происходит работа с памятью и как выглядит карта памяти процесса. Пока у меня такое представление: Процесс видит всю память которая есть в системе, пусть для примера 4гб, первый гиг резервируется ядром и никогда не будет доступен пользовательским процессам. Остальные 3 гб -> пространство которе процесс видит, но не обязательно может использовать. Когда программа загружается в память то разные ее части загружаются в разные сегменты(диапазоны адресов): стек который начинается сразу после пространства ядра и растет в сторону больших адресов пока не упрется в какой то лимит, сегмент куда отображаются файлы, куча, не инициализированные переменные, данные, и код.

Я читал статьи про устройство виртуальной памяти, как выглядит память процесса и тд. НО все описывается как то поверхностно.

У меня такой вопрос: как работает malloc()? ясно что он выделяет память в куче. Но если минимально сколько можно выделить вирт памяти это одна страничка, то что тогда именно делает malloc и вообще функции выделения динамической памяти?? Из чего складывается размер который программа занимает в памяти? Как расчитывается изначальный размер сегментов?

И самое главное: как посмотреть, как это работает на самом деле? То есть в самых мелких подробностях. Ну когда например Тодвальтс начинал писать ядро, он же знал что делать? Как начать и как организовать работу ядра? Подскажите пожалуйста с чего начать изучение всего этого)

 , , ,

maksspaces
()

RSS подписка на новые темы