Перейти до

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

Опубліковано:

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().

Опубліковано:

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

А можно посмотреть на примере 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)

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

 

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

Опубліковано:

Я предложил бы использование "ON DUPLICATE KEY UPDATE".

Заменяет replace полностью, только логины надо бы сделать уникальными в базе.

Опубліковано:

Это не бага - это "фича" которая должна проявляться и в других модулях из за того что $_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

 

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

Гость
Эта тема закрыта для публикации сообщений.
×
×
  • Створити нове...