Перейти до

Релизы Ubilling


Рекомендованные сообщения

2 Keen

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

Не нашел раньше видимо изза того что раньше не удалялись подсети DHCP.

 

В норме должно быть так:

 

function multinet_rebuild_globalconf() {
$global_template=file_get_contents("config/dhcp/global.template");
$subnets_template=file_get_contents("config/dhcp/subnets.template");
$alldhcpsubnets_q="SELECT `id`,`netid` from `dhcp` ORDER BY `id` ASC";
$alldhcpsubnets=simple_queryall($alldhcpsubnets_q);
$subnets='';
if (!empty ($alldhcpsubnets)) {
	foreach ($alldhcpsubnets as $io=>$eachnet) {
		$netdata=multinet_get_network_params($eachnet['netid']);
		$templatedata['{STARTIP}']=$netdata['startip'];
		$templatedata['{CIDR}']=explode('/', $netdata['desc']);
		$templatedata['{CIDR}']=$templatedata['{CIDR}'][1];
		$templatedata['{ROUTERS}']=int2ip(ip2int($templatedata['{STARTIP}'])+1);
		$templatedata['{MASK}']=multinet_cidr2mask($templatedata['{CIDR}']);
		$dhcpdata=dhcp_get_data_by_netid($eachnet['netid']);
		if (isset($dhcpdata['confname'])) {
		$templatedata['{HOSTS}']=$dhcpdata['confname'];
		// check if override?
		if (!empty ($dhcpdata['dhcpconfig'])) {
			$currentsubtpl=$dhcpdata['dhcpconfig'];
		} else {
			$currentsubtpl=$subnets_template;
		}
		$subnets.=multinet_ParseTemplate($currentsubtpl, $templatedata)."\n";
	}
	}
}

$globdata['{SUBNETS}']=$subnets;
$globconf=multinet_ParseTemplate($global_template,$globdata);
file_write_contents("multinet/dhcpd.conf", $globconf);
}

 

Перепроверил дважды. При удалении/создании подсетей DHCP все отрендеривается как надо. Фикс уходит в 0.1.6.

ЗЫ недокументированная фича - при заходе в модуль "Сети" вызывается multinet_rebuild_all_handlers() с последующим multinet_RestartDhcp().

Ссылка на сообщение
Поделиться на других сайтах
  • Відповіді 1,2k
  • Створено
  • Остання відповідь

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Да кстати если кому то нужен шаблон для свича то вот  можно воспользоваться такой штукой  шаблоно-генератором

Преувеличиваем? Ничего особенного и нового я не сделал

Ни один единорог не пострадал? =)

Posted Images

Эммм, ничего не имею против.

А можно посмотреть на примере subnets.template как это используется?

 

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

Ссылка на сообщение
Поделиться на других сайтах

приблизительно следующее:

localhost ~ # cat /var/www/root/config/dhcp/subnets.template

subnet {NETWORK} netmask {MASK} {

default-lease-time 3600;

option domain-name "domain.kiev.ua";

range {STARTIP} {ENDIP};

option subnet-mask {MASK};

option routers {ROUTERS};

include "/var/www/root/multinet/{HOSTS}";

}

Ссылка на сообщение
Поделиться на других сайтах

Агааа, он оно как. Совсем забыл о рейнджах :D

Есть еще такая проблема что {NETWORK} ну либо {STARTIP}, смотря что там используется в шаблоне после subnet, сейчас должен указываться только с нуля.

 

Тобишь как-то так:

net.png

 

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

 

Ушло в мейнстрим

Ссылка на сообщение
Поделиться на других сайтах

Подождал 5 минут. Раз все молчат значит так... 0.1.6 rev 750 со следующим списочком изменений:

 

* billing.ini: новый параметр KILL указывающий на путь к kill

* billing.ini: новый параметр STGPID указывающий на путь к PID файлу stargazer

* billing.ini: новый параметр STGNASHUP указывающий на потребность посылки SIGHUP к stargazer при изменении NAS-ов.

* API Сетей - исправлена ошибка связанная с неверной обработкой id/netid. Спасибо Keen.

* API Сетей - расширен набор макро для шаблонов подсетей

* Исправлена работа предварительного просмотра dhcpd.conf в случае использования кастомных шаблонов подсетей

* Модуль «Онлайн»: починен внезапно сломавшийся общий счетчик трафика

* Кабинет пользователя: теперь кредит выставляется на сумму тарифа+стоимость кредитования

* Кабинет пользователя: изменена модель подгрузки локализации, есть шансы сделать переключаемым язык

* API Сетей: при изменении NAS-ов в remote_nas.conf в соответствии с опцией STGNASHUP будут перечитываться конфиги stargazer

* Кабинет пользователя: черновой вариант самосмены тарифа

* Кабинет пользователя: черновой вариант использования платежных карт

* Кабинет пользователя: добавлено логирование денежных операций

* Отчеты по платежам: добавлена трансляция карточек в человеко-читабельный вид

* Кабинет пользователя: появилась возможность смены языка отображения на лету

* Отчеты по платежам: добавлено поле IDENC

* Расширен набор макросов шаблонов чеков

* Модуль «Карточки»: добавлен просмотр попыток перебора карточек с возможностью разбана пользователей

* Модуль «Експорт платежей»: добавлена обработка параметра CITY_DISPLAY при определении дома/квартиры пользователя

* В умолчальном шаблоне subnets.template макрос {STARTIP} заменен на {NETWORK}. Еще раз спасибо Keen.

 

 

Оффсайт со всякими ништячками: http://ubilling.net.ua/

Релиз качается по ссылке: http://ubilling.net.ua/ub.tgz

Более менее свежая инструкция по установке: http://wiki.ubilling...id=setupfreebsd

Демка на месте: http://ubilling.net....npages&pid=demo

 

Рекомендации по обновлению с предыдущих версий я уже приводил где-то выше. Намекаю на то, что перед обновлением стоит внести все новые опции в соответствующие конфиги.

016.jpg

Ссылка на сообщение
Поделиться на других сайтах

ИМХО стоит добавить сортировку в выводе функций

 

zb_AddressGetAptAllDataByBuild

zb_AddressGetBuildAllDataByStreet

 

Как-то так:

$query="SELECT * from `apt` where `buildid`='".$buildid."' ORDER BY `apt`";

Ссылка на сообщение
Поделиться на других сайтах

Среди всего есть (впрочем давно уже писал) несколько .... просьб (-:

 

 

1. Поиск пользователя:

-Хочеться видеть поиск по адресу:

--по улице;

-- по улице, дому;

 

2. Модуль онлайн :

-хочеться видеть поле стг - last activity;

-и как вариант - последний пинг (арппинг);

 

3. Результаты поиска:

-хочеться видеть поле стг - last activity;

-иконку онлайн (через dn).

Ссылка на сообщение
Поделиться на других сайтах

Начиная с 0.1.7 в профиле пользователя есть LAT. Поиск перелопачивать в ближайшее время здоровья пока что нету. Там проще все сломать и сделать с нуля.

 

Сейчас пилю динамический шейпер.

Ссылка на сообщение
Поделиться на других сайтах

Ну раз никто никаких ужасов кроме уже исправленных и отрепорченых не нашел....

 

Релиз Ubilling 0.1.7 rev 810

 

* Новый модуль "Мастер отчетов": позволяющий вооружившись скиллами SQL создавать собственные отчеты

* Кабинет пользователя: исправлена подгрузка локализации при первом заходе в пользовательскую статистику

* Кабинет пользователя: добавлена поддержка опций CITY_DISPLAY и ZERO_TOLERANCE аналогичных alter.ini

* Финансовый отчет: вернулась на место колонка ARPU

* Модуль "Профиль пользователя": новое поле "последняя активность"

* Модуль "редактирование кредита": убрана возможность выставить отрицательное значение

* alter.ini: новая опция NMCHANGE включающая генерацию content/nmchange.sh при заходе в отчет по тарифам

* Добавлены адекватные сортировки в селекторах домов и квартир. Спасибо [[]."]http://local.com.ua/...8-keen/|Keen]].

* Изменена структура БД: новая таблица dshaper_time (см. дамп).

* Новый модуль "Динамический шейпер": позволяющий задавать для различных тарифов скорость в любые промежутки времени

* Тестовый обработчик динамического шейпера лежит в docs/dshaper

* Модуль "Финансовые операции": добавлены "фиктивные платежи" на случай если требуется отображение оплаты но не нужно изменение лицевого счета абонента.

* Ликвидирована возможность регистрации нигде не живущего пользователя.

 

Перед обновлением следует ткнуть следующий дамп в SQL консоль:

 

CREATE TABLE `dshape_time` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`tariff`  VARCHAR( 255 ) NOT NULL ,
`threshold1` TIME NOT NULL ,
`threshold2` TIME NOT NULL ,
`speed` INT NOT NULL
) ENGINE = MYISAM  CHARSET=utf8;

 

А также добавить новые параметры в конфиги указанные в чейнджлоге.

 

Качать как всегда тут: http://ubilling.net.ua/ub.tgz

Свежая демка: http://ubilling.net....npages&pid=demo

 

suicide.jpg

Ссылка на сообщение
Поделиться на других сайтах

Модуль карт.

Если отсортировать таблицу и выбрать какую-либо карту, потом выбрать неактивные и нажать с отмеченными то выводит No cards selected

Е еще, в кабинете пользователя. Если меню вылезает на две строки не совсем красиво получается.

Відредаговано Maxaon
Ссылка на сообщение
Поделиться на других сайтах

С сортировкой действительно лажа. Будем дебужить.

Для кабинета пользователя буду выбирать, наверное другой умолчательный шаблон. Текущий выглядит.... как блог тринадцатилетней девочки что-ли.

 

Еще раз спасибо за оперативность.

Ссылка на сообщение
Поделиться на других сайтах

Внезапный багфикс релиз Ubilling 0.1.8 rev 815.

 

- Починена внезапно сломавшаяся в 0.1.7 переключалка режима внесения средств

- Исправлен просмотр событий по дате

 

Ссылка для скачивания: http://ubilling.net.ua/ub.tgz

 

Скрипт для автоматического обновления: был где-то выше.

Ссылка на сообщение
Поделиться на других сайтах

Файл api/libs/api.userdata.php

 

Функцию zb_UserChangeRealName предлагаю изменить так, поскольку она учитывает, что до установки системы были учетные записи.

 

function zb_UserChangeRealName($login,$realname) {
   $login=vf($login);
   $realname=mysql_real_escape_string($realname);
   $n_edited = simple_query("SELECT COUNT(*) as num FROM `realname` WHERE `login` = '$login'");
   if ($n_edited['num'] == 0)
 $query = "INSERT INTO `realname` (`login`, `realname`) VALUES ('$login', '$realname');";
   else
 $query = "UPDATE `realname` SET `realname` = '".$realname."' WHERE `login` = '".$login."' ;";
   nr_query($query);
   log_register('CHANGE UserRealName '.$login.' '.$realname);
}

 

Еще можно сделать в БД поле stg.realname.login уникальным, тогда можно использовать REPLACE

Остальные функции тоже править надо.

Ссылка на сообщение
Поделиться на других сайтах

Там еще много чего есть чего может не быть при неполной конвертации.

Для исправления таких артефактов и есть модуль проверки целостности.

 

post-4093-0-14138700-1362671755_thumb.png

Если натыкать для всех юзеров автоматом пустых мыл/рилнеймов/телефонов не проблема то с данными нужными для multinet возникает совсем другая картина.

 

$query = "INSERT INTO `realname` (`login`, `realname`) VALUES ('$login', '$realname');";

Кстати для таких штук предусмотретн букет функций вида

zb_UserCreateRealName($login,$realname)

чтобы в случае изменения структуры БД ничего не взорвалось.

 

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

Ссылка на сообщение
Поделиться на других сайтах

Это не бага - это "фича" которая должна проявляться и в других модулях из за того что $_GET['username'], как правило попадает в vf() который скипает всякие инжектоопасные штучки.

Ссылка на сообщение
Поделиться на других сайтах

c 01.09.11 использую Ubilling.

Ubuntu 10.04 LTS

Ядро 2.6.32-34-server

stg-2.407-p1

mysql 5.1

в данный момент Ubilling 0.1.8 rev 815

до вчерашнего вечера все работало на "УРА"

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

подскажите в чем может заключаться проблема.

Ссылка на сообщение
Поделиться на других сайтах

Деньги тоже вестимо не вносяться?

 

Проблема может быть только на уровне взаимодействия конфигураторов и старгейзера - данные в табличках users/tariffs изменяються только посредством конфигураторов указанных в billing.ini.

Перезапуск старгейзера ефекта не дает? Виндовым конфигуратором вообще конектиться возможно?

Ссылка на сообщение
Поделиться на других сайтах

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

деньги возможно внести только виндовим конфигуратором...

Ссылка на сообщение
Поделиться на других сайтах

Значит собака порылась в логинах/паролях/путях конфигураторов (искренне надеюсь что вы используете sgconf_xml). Можете попробовать переключиься скажем на sgconf и посмотреть на результат. Если он закончится тоже фейлом - руками пробовать позвать sgconf с параметрами указанными в billing.ini

 

"Просто так" там взорваться нечему.

Ссылка на сообщение
Поделиться на других сайтах
Гость
Эта тема закрыта для публикации сообщений.
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

  • Схожий контент

    • Від ppv
      Потрібно було витерти одну мережу, всі абоненти з неї були перенесені в іншу. Але світить що 6 IP зайняті, хоча вона повністю вільна.
       
      ID    Мережа/CID           RВсього IP        Використано IP ▾           Вільно IPСервіс
      6      172.16.70.0/23        506                    6                                       500
       
      Підкажіть як правильно це підчистити щоб видалити мережу.
    • Від ppv
      Проглянув FAQ і Ubilling Wiki. Зацікавило питання чи є в Ubilling якась реалізація reCAPTCHA, чи потрібно додавати руцями, (для прикладу для форми подачі заявок чи для кабінету користувача)?
       
    • Від sanyadnepr
      Приветствую всех.
      Подскажите пожалуйста где копнуть и нет ли проблемы со стороны протокола взаимодействия сити24 или возможно не учтена необходимая проверка в модуле сити24 в Ubilling, пока писал понял что похоже в проверке payID, но это не точно.  
      Недавно обнаружилось с сити24 начали прилетать дубликаты платежей, в целом платежей мало, два одинаковых запроса Pay с одинаковым transactionID и payID в одну секунду одному платежному ID при этом биллинг "думает" примерно чуть больше минуты и отвечает одним ответом <result>0</result>, сити24 утверждает что ответ они не получили и по протоколу дальше повторяет запросы дублем, биллинг ответ и так по кругу, сити24 спрашивает каким образом с одинаковым payID от сити24 билл продолжает обрабатывать запросы и пополнять абоненту счет раз в 5 минут примерно, на одну и туже сумму, ведь этот payID уже был обработан предполагают сити24 согласно протоколу.
      Конечно есть вопрос к сити24 зачем они дублем присылают два запроса, но они отвечают что эта ситуация учтена в протоколе и проблема на стороне биллинга, потому что он пополняет счет по уже обработанному одинаковому payID.
      При этом transactionID в дублях одинаковый, но с каждым новым дублем разный.
      Если зафаерволить запросы от сити24, но оставить возможность отвечать то после блокировки билл отправляет 2-3 минуты 6 ответов <account>0001</account>  <result>0</result>.
      После снятия блокировки, дубли и платежи нескольких проблемных абонентов прилетают так же по кругу, при этом и с некоторыми новыми пополнениями происходит аналогичная ситуация.
      В openpayz в платежах transactionID и не видно payID.
    • Від nightfly
      Ubilling 1.4.3 rev 9058 The Bladewood Grove
       
      Зміни в структурі БД. alter.ini: нові опції OPHANIMFLOW_ENABLED та OPHANIMFLOW_URLS котрі вмикають та керують інтеграцією з OphanimFlow. alter:ini: нова опція PHOTOSTORAGE_POSTPROCESSING, що вмикає післяобробку зображень при завантаженні в Сховище зображень. alter:ini: нова опція PHOTOSTORAGE_WATERMARK, що вмикає розміщення вотермарки на всіх зображеннях, що завантажуються. alter:ini: нова опція PHOTOSTORAGE_RECOMPRESS, що вмикає зміну компрессії завантажених зображень. alter:ini: нова опція PHOTOSTORAGE_AUTORESIZE, що вмикає автоматичне та лагідне масштабування зображень конячих розмірів. alter:ini: нова опція PHOTOSTORAGE_DRAWIMGINFO, що вмикає вдруковування в зображення відлагоджувальної інформації. alter.ini: нова опція ONDEMAND_CHARTS, що вмикає відкладене завантаження графіків завантаження користувацької смуги. userstats.ini: нова опція OPHANIM_ENABLED, що вмикає інтеграцію OphanimFlow в кабінеті користувача. Модуль Заздрість: тепер авторизаційні дані пристроїв, не відображаються в списку пристроїв. Модуль “Заздрість”: при створенні та редагуванні пристроїв, для полів “пароль” та “enable пароль” тепер використовуються інпути паролів. Модуль “Заздрість”: заздрісним пристроям додано нове поле “Порт”. Тепер в скриптах можна використовувати, відповідний макрос {PORT}. Модуль “Статистика трафіку користувача”: проведено радикальний рефакторинг. Модуль “Статистика трафіку користувача”: додано опційну можливість, відображення трафіку отриманого з OphanimFlow. Модуль “Статистика трафіку користувача”: виправлено проблему невірного відображення залишку коштів на кінець місяця, при використанні Ішимури. Модуль “Статистика трафіку користувача”: додано можливість відображення графіків за останню годину з OphanimFlow. Модуль “Користувачі”: додано опційну можливість, відображення трафіку отриманого з OphanimFlow. Модуль “Сховище зображень”: тепер додатково перевіряє завантажувані зображення на тему їх валідності. Модуль “Фінансові операції”: виправлено відображення суми платежів користувача. Remote API: новий виклик ophanimtraff, який просто бере і синхронізує локальну БД з віддаленими джерелами OphanimFlow. Remote API: виклик userbynum тепер також опційно містить поле з “Платіжним ID” користувача. Глобально: у всіх полях вводу паролів, окрім форми входу, тепер відображається елемент керування “показати/приховати” пароль. Кабінет користувача: в модулі “Трафік” додано опційну можливість, відображення трафіку отриманого з OphanimFlow. Кабінет користувача: в модулі “Трафік” виправлено проблему невірного відображення залишку коштів на кінець місяця, при використанні Ішимури. Кабінет користувача: в модулі “Відеоспостереження” для NVR WolfRecorder замінено розділювач попередньо заповнених даних авторизації. OpenPayz: додано frontend portmonemulti, для отримання платежів від різних контрагентів. Інформацію по контрагентам бере з біллінгу, також використовую розширену інформацію контрагента. Платіжна система в контрагенті мусить бути створена, як PORTMONE 1984tech: додано функціонал генерації RPZ для isc-bind, спасибі @misterromanbush  
      Повний чейнджлог
      Оновлена демка
       

    • Від mac
      Здається, після оновлення PHP 7.4 до PHP 8.2 feesharvester припинив працювати:
       
      /usr/local/bin/curl "http://127.0.0.1/billing/?module=remoteapi&key={SERIAL}&action=feesharvester" <br /> <b>Fatal error</b>: Uncaught TypeError: Unsupported operand types: string - string in {UBPATH}/billing/api/libs/api.fundsflow.php:570 Stack trace: #0 {UBPATH}/billing/modules/remoteapi/feesharvester.php(22): FundsFlow-&gt;harvestFees('2024-01') ...  
      Невеличке розслідування врешті з'ясувало, що це через наявність пробілу у деяких логінах абонентів. Як так сталося? Тому що інколи був неуважно додан трейлінг пробіл до номеру будинка і цей пробіл потрапив до логіну абоненту. Логін абоненту неможливо змінити ніяким чином штатними засобами. Я не розглядаю створення нового абонента для усунення помілки.

      Був обран такий шлях вирішення проблеми. Заміну функції php explode() знайшов у мережі. Мабуть це станеться в нагоді:

       
      diff api.fundsflow.php.bak api.fundsflow.php.new 559c559 < $eachfee = explode(' ', $eachline); --- > $eachfee = preg_split("~(?<!\\\\)(?:\\\\{2})*'[^'\\\\]*(?:\\\\.[^'\\\\]*)*'(*SKIP)(*F)|\s+~s" , $eachline);  

×
×
  • Створити нове...