Новости Virtustan MUD

Последнее время муд стал падать со странными сообщениями

crash here: *** buffer overflow detected ***: terminated

Я погуглил, пишут что это ошибка в модуле EPOLL, я решил его выключить. Залез в код, а он выключен, причем очень давно, когда я добавлял в код поддержку нескольких портов. Тогда надо включить, может ошибка пропадет – по-ламерски подумал я. Стал пытаться включить, не компилируется, из-за моих изменений по многопортовости. Возился, возился, бросил, подумал, что это знак перейти на свежий код.

И Виртустан перешел на свежую версию кода Былин. В результате все мои новые команды и модификации пропали, но они сохранены в старой версии кода, постепенно я их внесу.

Но зато я сделал патч до внесению протокола MSSP в свежий код Былин.
Патч вот.

Приложения.

1. Почему эти ошибки стали возникать только в последнее время? Я постоянно обновляю свой сервер, это общие правила безопасности, без этого нельзя. Но с обновлениями приходят не только новые фичи, но и новые баги. Или как другая версия, мир изменился (я чувствую это в земле, я чувствую это в воде) и появился новый тип интернет-атак с длинным запросом. А атаки в интернете постоянно развиватся, например последние дни я начал замечать в логах nginx запросы на файлы типа backup.sql (к мудам это не имеет никакого отношения, но подобных запросов раньше не было)

2. Что такое EPOLL. Работа с периферийными устройствами может быть по прерыванию или по запросу. Муды обычно работают по запросу (httpd и Майнкрафт тоже). Но есть несколько версий библиотек для этого. Первая, это старый классический poll/select, вторая EPOLL, а есть еще EPOLL2. Код Былин может унаследовал от своего отца Circle два способа – poll и EPOLL (см. в коде операторы #ifdef EPOLL). В Линуксе можно и так и так, а в cygwin и macOS компилируется тольков варианте без EPOLL.

3. Поддержка доступа к маду по нескольким портам в самом маде необязательна. Ее можно сделать снаружи мада, например, средствами iptable. Но пока Виртустан работает только на порту 3000 (хост мой стандарный, mud.kharkov.org)

Еще один переезд

22 февраля 2021 года мои мады и их сайты опять переехали, теперь на сервер с 8 гигабайтами ОЗУ и 50Г диска . (Нет, для мада так много не нужно, для него хватит 1 Г ОЗУ и диска 10Г вместе с ОС, но там у меня крутятся и другие проекты, например Майнкрафт и Майнтест). И ОС Убунту там более новая – 20.04.1 (а на предыдущем сервере была 18.04) Надеюсь, на этом сервере я обоснуюсь надолго. Работа графиков мад-статистики будет налажена в течение 24-25-26 февраля.

Бег по граблям

Я люблю бегать по граблям, в частности, натыкаясь на какую-нибудь ошибку, порой исправляю ее и забываю, как именно я ее исправил и спустя несколько месяцев (или лет) опять натыкаюсь на нее и опять начинаю думать, как же ее исправлять.

Так вот, для памяти запишу: код Виртустан-мада и Старого Зеркала плохо собирается на 64-битных системах, например в cygwin, флаг -m32 и соответствующие библиотеки помогают не всегда. В частности, под cygwin/64 он либо не собирается либо собирается и сразу падает в корку. Ну и чорт с ним, потому как все нормально собирается на 32-разрядном Цигвине, а 32-разрядные exe нормально работают в 64-разрядной Винде.

А на 64-разрядной Ubuntu 18.04.3 мой Виртустан собрался и нормально работает. И Старое Зеркало. (А Былины, как и Ноыое Зеркало изначально заточены именно под Ubuntu x86_64)

Расстрелять!

Сегодня мне на е-мейл пришло письмо с вопросами по поводу лицензии на мой Виртустан мад. В своей наивности в репозитории на Гитхабе я поставил опцию Unlicense (рассуждал я примерно так: лицензии Diku/Circle это не GPL/LGPL/CC/Apache, значит это “прочие лицензии”, а Unlicense  наверное что-то похожее и обозначает).

Чем грозит мне это письмо, пока непонятно, но мне уже страшно. Оно подписано просто именем, может даже псевдонимом, может это какой-то китайский программист-энтузиаст, который уточняет, можно ли ему использовать мой код. А может, это юрист, который готовит многомиллионный иск и остаток своих дней я проведу в Азкабане.

Я ответил и кратко изложил уровень своего непонимания и сказал, что все исправлю. Чем, наверное, подписал себе приговор, так как признал свое деяние.

Не, это не Азкабан, это сразу гильотина.

Хотя, может, это кто-то из коллег развлекается. (Бодрич, ты?)

Клонируйте мой проект с Гитхаба, Гитлаба или Битбакета, потому как, боюсь, недолго ему осталось.