Перейти до

Ubilling + NAS на FreeBSD бортжурнал починаючого адміна


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

  • Відповіді 1,8k
  • Створено
  • Остання відповідь

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Вітаю Татко!   

Не так вже й багато   Ход коньом:   # cat /bin/clear_dhcpdlog #!/bin/sh /bin/echo > /var/log/dhcpd.log /usr/local/etc/rc.d/isc-dhcpd restart # chmod a+x /bin/clear_dhcpdlog # crontab -e

http://wiki.ubilling.net.ua/doku.php?id=userstats       Расист? http://wiki.ubilling.net.ua/doku.php?id=userstats

Posted Images

 

і бекапу свіжого немаю :facepalm:

Тут дуже тематичною була б всім відома картинка про бегемота, але не буду ;)

 

Use the Force, Luke!

Ссылка на сообщение
Поделиться на других сайтах
О да, це має бути прикрим самогубством

 

все самогубство відміняється, інет до юзерів полетів B)

на швидку руку прикрутив НАСом мікротік, юзерів туда перекинув.

маю час розібратися чому локальний загнувся.

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

 

як може працювати заворот на себе коли в фаєрі немає жодного активного правила на  заворот? :blink:

досвід підказує, що - ніяк.

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

проїхався до Коломиї, провітрився  і згадав, що у мене через EoIP зє'днані усі НАСи, а там заворотів хватає! напевно тамже глюк сховався)

Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)

Нарешті руки дойшли до білінга.

чому зламалось незнаю, а було все так

1-го  серпня (в проміжку 00:00-01:00год, в цей момент знімалась АП)   обновився на новий реліз (0.4.3 rev 2739) все працювало ніби добре.

2-го               міняв згорівший мікротік NAS,  зробив killall stargazer, запустив старгейзер, локальний NAS помер.

при запуску старгейзера спостерігав  як на замінений NAS  Mikrotik заливаються юзери, хто без грошей зразу був відключений  в аксес листі (спостерігав як відключались неактивні на двох мікротіках, а  може у мене був глюк :wacko: )

зробив ребут серверу.

3-го помічаю, що на усіх мікротіках усі юзери пущені в інтернет (неактивні теж).

пробував масовий ресет + пробував руками аксес лист вирубати всім в надії, що включить тільки активних (логіка така, що неактивних сіпати небуде і включати теж небуде.)

всерівно усх включило.

 

якщо юзера роблю активним баланс = кредит і потім назад в мінус, його вирубає на мікротіку.

 

підкажіть з чого почати ремонт зламаного NAS local.

далі по ходу

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

 

(логіка така, що неактивних сіпати небуде і включати теж небуде.)

логіка - вірна

 

 

всерівно усх включило.

нереально ж

 

 

підкажіть з чого почати ремонт зламаного NAS local.

шо нам розповідає /var/stargazer/allconnect.log і як виглядає ipfw show?

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

# ipfw show
00025 813187 231576791 allow ip from me to any via bridge0
00026 7067 670162 allow tcp from any to me dst-port 80 via bridge0
00027 4910885 347860585 allow udp from any to any dst-port 53
00060 112 5200 deny ip from any to me dst-port 22,3306,5555,199,4211 1,953 via bce0
06000 54298 7650321 nat 1 ip from table(2) to not table(9) via bce0
06001 2576078 1131725342 nat 1 ip from any to 91.230.25.187 via bce0
12000 162679 12590107 pipe tablearg ip from table(3) to any via bridge0 in
12001 183006 29260561 pipe tablearg ip from any to table(4) via bridge0 out
65535 58736052 15892432738 allow ip from any to any

cat /var/stargazer/allconnect.log

останный ресет для користувача з NAS local



2013-08-09 16:12:31 - [Ubilling] - OnDisconnect started for user `l1ap2_cy8w`:
2013-08-09 16:12:31 - [Executer] - SUCCESS: Removing of IPFW rules done...
2013-08-09 16:12:31 - [Ubilling] - Elapsed time: 0.022 sec.

2013-08-09 16:12:31 - [Ubilling] - OnConnect started for user `l1ap2_cy8w`:
2013-08-09 16:12:31 - [Executer] - SUCCESS: Creation of IPFW rules done...
2013-08-09 16:12:31 - [Ubilling] - Elapsed time: 0.029 sec.

 

 

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

 

# ipfw show

де фінальний deny на table(2)?

 

 

останный ресет для користувача з NAS local

Це для користувача з неактивним рахунком? :blink:

 

Давайно спробуєм для початку увімкнути debug = TRUE в /etc/stargazer/config.ini а також уважно подивитись на ipfw table 4 list та ipfw pipe show

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

UPD: Там доречі ше самі OnConnect/OnDisconnect скрипти обновились суттєво наскільки я памятаю станом на 0.4.3-0.4.4.  Точніше вкурсі jcomm шо він там наворотив. Як варіант я б ше обновився до 0.4.4 current та розгорнув нові заготовки скриптів OnConnect/OnDisconnect оттако, попередньо потушивши stargazer:

# rm /etc/stargazer/Get* && rm /etc/stargazer/On* && rm /etc/stargazer/fullArp.php && rm /etc/stargazer/config
# cd /usr/local/www/apache22/data/billing
# cp -r docs/presets/MikroTik/ /etc/stargazer
# chmod a+x /etc/stargazer/On*
Ссылка на сообщение
Поделиться на других сайтах

 

Це для користувача з неактивним рахунком?

рахунок активний

NAS local  його в інет не пускає.

де фінальний deny на table(2)?

 

відключив після смерті NAS local на всякий, може пустить і юзери перестанут виносити мозок))

зараз усіх перекинув на NAS mikrotik, тут пара тестових юзерів лишилося.

ipfw table 4 list
172.16.0.2/32 8165
172.16.0.3/32 8150
172.16.0.4/32 8186
172.16.0.5/32 8154
ipfw pipe show
08165: 10.000 Kbit/s 0 ms burst 0
q139237 32 KB 0 flows (1 buckets) sched 73701 weight 0 lmax 0 pri 0 droptail
sched 73701 type FIFO flags 0x0 0 buckets 0 active
00154: 2.048 Kbit/s 0 ms burst 0
q131226 32 KB 0 flows (1 buckets) sched 65690 weight 0 lmax 0 pri 0 droptail
sched 65690 type FIFO flags 0x0 0 buckets 0 active
08186: 10.000 Kbit/s 0 ms burst 0
q139258 32 KB 0 flows (1 buckets) sched 73722 weight 0 lmax 0 pri 0 droptail
sched 73722 type FIFO flags 0x0 0 buckets 0 active
00165: 10.000 Kbit/s 0 ms burst 0
q131237 32 KB 0 flows (1 buckets) sched 65701 weight 0 lmax 0 pri 0 droptail
sched 65701 type FIFO flags 0x0 0 buckets 0 active
00186: 10.000 Kbit/s 0 ms burst 0
q131258 32 KB 0 flows (1 buckets) sched 65722 weight 0 lmax 0 pri 0 droptail
sched 65722 type FIFO flags 0x0 0 buckets 0 active
08154: 4.086 Kbit/s 0 ms burst 0
q139226 32 KB 0 flows (1 buckets) sched 73690 weight 0 lmax 0 pri 0 droptail
sched 73690 type FIFO flags 0x0 0 buckets 0 active

cat /var/stargazer/allconnect.log з debug = TRUE

2013-08-09 17:46:13 - [ubilling] - OnDisconnect started for user `l1ap2_cy8w`:

2013-08-09 17:46:13 - [Database] - DEBUG INFO: MySQL Class loaded.

2013-08-09 17:46:13 - [Database] - DEBUG INFO: Connection with database is established...

2013-08-09 17:46:13 - [Database] - DEBUG INFO: USER NETWORK ID - `2`;

2013-08-09 17:46:13 - [Database] - DEBUG INFO: NAS IP - `172.16.0.1/24`;

2013-08-09 17:46:13 - [Database] - DEBUG INFO: NAS TYPE - `local`;

2013-08-09 17:46:13 - [Database] - DEBUG INFO: No `nas`.`options` were setted for NAS - 172.16.0.1/24!

2013-08-09 17:46:13 - [Executer] - DEBUG INFO: RScriptD Executer loaded.

2013-08-09 17:46:13 - [Executer] - SUCCESS: Removing of IPFW rules done...

2013-08-09 17:46:13 - [ubilling] - Elapsed time: 0.03 sec.

 

2013-08-09 17:46:13 - [ubilling] - OnConnect started for user `l1ap2_cy8w`:

2013-08-09 17:46:13 - [Database] - DEBUG INFO: MySQL Class loaded.

2013-08-09 17:46:13 - [Database] - DEBUG INFO: Connection with database is established...

2013-08-09 17:46:13 - [Database] - DEBUG INFO: USER NETWORK ID - `2`;

2013-08-09 17:46:13 - [Database] - DEBUG INFO: NAS IP - `172.16.0.1/24`;

2013-08-09 17:46:13 - [Database] - DEBUG INFO: NAS TYPE - `local`;

2013-08-09 17:46:13 - [Database] - DEBUG INFO: No `nas`.`options` were setted for NAS - 172.16.0.1/24!

2013-08-09 17:46:13 - [Executer] - DEBUG INFO: RScriptD Executer loaded.

2013-08-09 17:46:13 - [Database] - DEBUG INFO: USER REASSIGNED RATE - `NULL`!

2013-08-09 17:46:13 - [Database] - DEBUG INFO: USER TARIFF - `ADMINS`;

2013-08-09 17:46:13 - [Database] - DEBUG INFO: USER TARIFF TX RATE - `10000`;

2013-08-09 17:46:13 - [Database] - DEBUG INFO: USER TARIFF RX RATE - `10000`;

2013-08-09 17:46:13 - [Database] - DEBUG INFO: USER MAC - `00:1f:16:17:49:30`;

2013-08-09 17:46:13 - [Executer] - SUCCESS: Creation of IPFW rules done...

2013-08-09 17:46:13 - [ubilling] - Elapsed time: 0.029 sec.

 

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

 

UPD: Там доречі ше самі OnConnect/OnDisconnect скрипти обновились суттєво наскільки я памятаю станом на 0.4.3-0.4.4.

 

то надіюсь вирішить проблеми з  NAS mikrotik, покищо треба підняти  NAS loсal  і  переконатись що білінг нормально фунциклірує

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

 

NAS local  його в інет не пускає.

ну дик чудес не буває - якшо юзера є в табличках і пайпи на них постворювані, значить одне з двох:

1. їм видано лівий дефолтраут

2. вимкнено якогось біса one.pass

 

 

то надіюсь вирішить проблеми з  NAS mikrotik, покищо треба підняти  NAS loсal  і  переконатись що білінг нормально фунциклірує

таки обновитись би - гірше точно не буде

 

 

2013-08-09 17:46:13 - [Database] - DEBUG INFO: No `nas`.`options` were setted for NAS - 172.16.0.1/24!

не впевнений чи так має бути - це точно тре питати в jcomm

 

PS зловісні однако тарифи в 10Кбіт/с =)

Відредаговано nightfly
Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)

 

2013-08-09 17:46:13 - [Database] - DEBUG INFO: No `nas`.`options` were setted for NAS - 172.16.0.1/24!

 

не впевнений чи так має бути - це точно тре питати в jcomm

так то лог локального NAS-у, на BSD, jcomm  майстер по мікротіках вроді, хоча Вам видніше.

 

1. їм видано лівий дефолтраут

 

 

перевірив - той, що треба 172.16.0.1

 

2. вимкнено якогось біса one.pass

 

його включати так  з консолі? 

ipfw enable one_pass

 

${FwCMD}  enable one_pass // з фаєра

 

якщо так ні одне ні інше не допомогло

 

PS зловісні однако тарифи в 10Кбіт/с =)

 

10 Мбіт/с в білінгу писав  :blink:  (10000/10000)

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

2 major12

 

Чому не тримати в списку правил фаєрвола щось типу

За замовчуванням net.inet.ip.fw.one_pass=1. Якщо хтось з якихось міркувань його вимикає з якихось конкретних міркувань - він мав би знати навіщо це треба.

 

2 mgo

 

 

так то лог локального NAS-у, на BSD, jcomm  майстер по мікротіках вроді, хоча Вам видніше.

Ну так то всьо шо лежить в docs/presets/mikrotik - його творчість. Я в ній слабо розбираюсь.

 

 

його включати так  з консолі?

sysctl -a | grep "one.pass"

 

 

10 Мбіт/с в білінгу писав  :blink:  (10000/10000)

Точно якась фігня в вас панове відбувається.

Давайте якось швиденько обновляємось до 0.4.4, тушим старгейзер і обновляємо по дорозі скрипти ініціалізації.

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

Всьо. Знайшов баг.

 

Хотфікс:

 

Файл /stc/stargazer/system/executer/rscriptd.drv

 

Оцево:

shell_exec($this->config['fwcmd'] . " pipe " . (ID + 101) . " config bw " . $rate['TX'] . " queue 32Kbytes");
shell_exec($this->config['fwcmd'] . " pipe " . (ID + 8101) . " config bw " . $rate['RX'] . " queue 32Kbytes");

слід замінити на таке:

shell_exec($this->config['fwcmd'] . " pipe " . (ID + 101) . " config bw " . $rate['TX'] . "Kbit/s queue 32Kbytes");
shell_exec($this->config['fwcmd'] . " pipe " . (ID + 8101) . " config bw " . $rate['RX'] . "Kbit/s queue 32Kbytes");
Відредаговано nightfly
Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)




sysctl -a | grep "one.pass"
net.inet.ip.fw.one_pass: 1

2013-08-09 17:46:13 - [Database] - DEBUG INFO: No `nas`.`options` were setted for NAS - 172.16.0.1/24!

оця байда мене не тішить, щось у базі не знайшов каже (

 

поскакав по IP адресах 

172.16.0.4 працює, після багфікса на неї став, зрадів))

172.16.0.2 і 172.16.0.3 ні

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

 

оця байда мене не тішить, щось у базі не знайшов каже (

Тимур каже шо подивиться шо то  таке.

 

 

172.16.0.4 працює, після багфікса на неї став, зрадів))

Вже добре

 

 

172.16.0.2 і 172.16.0.3 ні

ipfw table 4 list та ipfw pipe show  шо на це кажуть?

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




ipfw table 4 list
172.16.0.2/32 8186
172.16.0.3/32 8165
172.16.0.4/32 8186
172.16.0.5/32 8154


ipfw pipe show
08165: unlimited 0 ms burst 0
q139237 32 KB 0 flows (1 buckets) sched 73701 weight 0 lmax 0 pri 0 droptail
sched 73701 type FIFO flags 0x0 0 buckets 0 active
00154: unlimited 0 ms burst 0
q131226 32 KB 0 flows (1 buckets) sched 65690 weight 0 lmax 0 pri 0 droptail
sched 65690 type FIFO flags 0x0 0 buckets 0 active
08186: unlimited 0 ms burst 0
q139258 32 KB 0 flows (1 buckets) sched 73722 weight 0 lmax 0 pri 0 droptail
sched 73722 type FIFO flags 0x0 0 buckets 0 active
00165: unlimited 0 ms burst 0
q131237 32 KB 0 flows (1 buckets) sched 65701 weight 0 lmax 0 pri 0 droptail
sched 65701 type FIFO flags 0x0 0 buckets 0 active
00186: unlimited 0 ms burst 0
q131258 32 KB 0 flows (1 buckets) sched 65722 weight 0 lmax 0 pri 0 droptail
sched 65722 type FIFO flags 0x0 0 buckets 0 active
08154: unlimited 0 ms burst 0
q139226 32 KB 0 flows (1 buckets) sched 73690 weight 0 lmax 0 pri 0 droptail
sched 73690 type FIFO flags 0x0 0 buckets 0 active

Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)

мммм ніби так, хоча у мене може бути 2+2=5



 cat rscriptd.drv
[M u+<?php if ( !defined('ENVIRONMENT') ) exit('Only STG can run script!' . "\n");

    class Executer {

        // Recived data from `ubilling.cls`:
        private $log;
        private $config;
        private $database;

        // Constructor:
        public function __construct($data) {
            // Put all recived data to specified vars:
            foreach ($data as $key => $value) {
                $this->$key = $value;
            }
            // Write log message, that class is loaded:
            $this->log->message(__CLASS__, "RScriptD Executer loaded.", "debug");
        }

        // 1. OnConnect:
        public function OnConnect() {
            // User's TX & RX:
            $rate = $this->database->get_user_rate();
            // ARP:
            shell_exec($this->config['arpcmd'] . ' -S ' . IP . ' ' . $this->database->get_user_mac());
            // Speed control:
            shell_exec($this->config['fwcmd'] . " pipe " .  (ID + 101) . " config bw " . $rate['TX'] . "Kbit/s queue 32Kbytes");
            shell_exec($this->config['fwcmd'] . " pipe " . (ID + 8101) . " config bw " . $rate['RX'] . "Kbit/s queue 32Kbytes");
            // Shaper:
            shell_exec($this->config['fwcmd'] . " table 3 add " . IP . " " . (ID + 101));
            shell_exec($this->config['fwcmd'] . " table 4 add " . IP . " " . (ID + 8101));
            shell_exec($this->config['fwcmd'] . " table 47 delete " . IP);
            // Day/Night switcher:
            file_put_contents(BASEPATH . "dn/" . LOGIN, $rate['RX'] . ":" . (ID + 8101), LOCK_EX);
            shell_exec("/bin/chmod 777 " . BASEPATH . "dn/" . LOGIN);
            $this->log->message(__CLASS__, "Creation of IPFW rules done...", "success");
        }

        // 2. OnDisconnect:
        public function OnDisconnect() {
            // Delete old pipes:
            shell_exec($this->config['fwcmd'] . " pipe " .  (ID + 101) . " delete");
            shell_exec($this->config['fwcmd'] . " pipe " . (ID + 8101) . " delete");
            // Delete from shaper:
            shell_exec($this->config['fwcmd'] . " table 3 delete " . IP . " " .  (ID + 101));
            shell_exec($this->config['fwcmd'] . " table 4 delete " . IP . " " . (ID + 8101));
            shell_exec($this->config['fwcmd'] . " table 47 add " . IP);
            // Day/Night switcher:
            shell_exec("/bin/rm " . BASEPATH . "dn/" . LOGIN);
            $this->log->message(__CLASS__, "Removing of IPFW rules done...", "success");
        }
    }
?>

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

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

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

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

    • Від ppv
      Потрібно було витерти одну мережу, всі абоненти з неї були перенесені в іншу. Але світить що 6 IP зайняті, хоча вона повністю вільна.
       
      ID    Мережа/CID           RВсього IP        Використано IP ▾           Вільно IPСервіс
      6      172.16.70.0/23        506                    6                                       500
       
      Підкажіть як правильно це підчистити щоб видалити мережу.
    • Від 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);  
    • Від Zend
      Продам сабж.
      2 контроллера CA07336-C001, в каждом по одном интерфейсном модуле CA07336-C009 (2 x 1Gbps iSCSI)
      HDD: 24 x 900GB SAS 10K
      Исправен.
      С ним могу продать шкафчик того же вендора.
       
      Стоимость - $4000, торг
       


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