Перейти до

Грабля в ubilling


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

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

Собственно, ubilling v. 0.1.9 - rev 892

 

Файлик api/xmlrpc/handlers.php

 

68 function billing_settariff($login, $tariff) {

69 executor('chg_user_tariff', array($login, $tariff, 0, 'change tariff'));

70 }

71

 

Третий аргумент должен иметь тип boolean, т. е. вместо "0" долженствует быть false.

Всё.

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

Спасибо, багрепорт принят, фикс уйдет в 0.2.1 который в очень скором времени. Отсутствие нормального трекера стимулирует желание написать нормальный тикетинг для последующей интеграции в Ubilling :)

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

Ещё там же:

 

91 function billing_setdown($login, $state) {

92 $state = ($state === 1) ? TRUE : FALSE;

93 executor('chg_user', array($login, array('down' => $state)));

94 }

 

Должно быть наоборот ($state = ($state === 1) ? FALSE : TRUE ), так state'у в ubilling 1 соответствует down = false в Stargazer

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

Сорри, вру. Значения всё-таки совпадают - похоже, что не совпадает тип.

Суть в том, что в изначальной позе оно не работает (php 5.3.3), работает в следующей:

if ($state == 1) {

executor('chg_user', array($login, array('down' => true)));

} else {

executor('chg_user', array($login, array('down' => false)));

}

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

Хотите клевое предложение? sgconfxml протестирован и работает отлично :)

Если не ошибаюсь в самом xmlrpc изначально были проблемы, поэтому morfey его и не добил до конца.

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

Хотите клевое предложение? sgconfxml протестирован и работает отлично ;)

Если не ошибаюсь в самом xmlrpc изначально были проблемы, поэтому morfey его и не добил до конца.

В самом xmlrpc изначально проблем небыло. А вот в sgconf_xml... :)

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

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

Хотя нет, есть одно, madf подсказал одну маленькую хитрость.



while (true) {
    $_users = executor('get_users', array());
if (count($_users)) { break; }
}

А, проблема заключлась в том, что не понятно от чего урезаный ответ приходил на запрос базы юзеров. А, вообще - это я заметил, когда это мелкие запросы - такого не замечалось, когда это информация о тарифах (а у меня их немного есть. :rolleyes: ) или это база юзеров - замечались лаги.

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

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

Хотя нет, есть одно, madf подсказал одну маленькую хитрость.



while (true) {
 $_users = executor('get_users', array());
if (count($_users)) { break; }
}

А, проблема заключлась в том, что не понятно от чего урезаный ответ приходил на запрос базы юзеров. А, вообще - это я заметил, когда это мелкие запросы - такого не замечалось, когда это информация о тарифах (а у меня их немного есть. :rolleyes: ) или это база юзеров - замечались лаги.

Эта проблема, по видимому, вызвана багом в libxmlrpc-c. Но т.к. воспроизвести ее весьма сложно то подтвердить или опровергнуть это я не могу.

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

Dec 28 18:25:05 Billing dhcpd: send_packet: No buffer space available

Dec 28 18:25:08 Billing dhcpd: send_packet: No buffer space available

 

 

PING 172.16.0.2 (172.16.0.2): 56 data bytes

ping: sendto: No buffer space available

ping: sendto: No buffer space available

ping: sendto: No buffer space available

ping: sendto: No buffer space available

ping: sendto: No buffer space available

ping: sendto: No buffer space available

^C

--- 172.16.0.2 ping statistics ---

6 packets transmitted, 0 packets received, 100.0% packet loss

 

172.16.0.2 - клиент

кто знает что с этим буфер спейсом делать?

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

<p> </p>

<div>ipfw show</div>

<div>06000 3259  301902 nat 1 ip from table(2) to not table(9) via rl0</div>

<div>06001 1009  114949 nat 1 ip from any to 192.168.2.1 via rl0</div>

<div>10002 3695  339817 pipe 101 ip from 172.16.0.2 to any via xl0 in</div>

<div>10003  252   78752 pipe 4101 ip from any to 172.16.0.2 via xl0 out</div>

<div>10004    0       0 allow ip from 172.16.0.2 to any</div>

<div>10005    0       0 allow ip from any to 172.16.0.2</div>

<div>65533 5766 1916271 deny ip from table(2) to any via xl0</div>

<div>65534    0       0 deny ip from any to table(2) via xl0</div>

<div>65535 5562  898134 allow ip from any to any</div>

<div> </div>

 

 

<p> </p>

<div>netstat -m </div>

<div>129/261/390 mbufs in use (current/cache/total)</div>

<div>128/134/262/16960 mbuf clusters in use (current/cache/total/max)</div>

<div>128/128 mbuf+clusters out of packet secondary zone in use (current/cache)</div>

<div>0/5/5/8480 4k (page size) jumbo clusters in use (current/cache/total/max)</div>

<div>0/0/0/4240 9k jumbo clusters in use (current/cache/total/max)</div>

<div>0/0/0/2120 16k jumbo clusters in use (current/cache/total/max)</div>

<div>288K/353K/641K bytes allocated to network (current/cache/total)</div>

<div>0/0/0 requests for mbufs denied (mbufs/clusters/mbuf+clusters)</div>

<div>0/0/0 requests for jumbo clusters denied (4k/9k/16k)</div>

<div>0/4/4496 sfbufs in use (current/peak/max)</div>

<div>0 requests for sfbufs denied</div>

<div>0 requests for sfbufs delayed</div>

<div>0 requests for I/O initiated by sendfile</div>

<div>0 calls to protocol drain routines</div>

<div> </div>

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

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

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

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

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

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

Вхід

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

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

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

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

    • Від 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);  
    • Від Dilan
      Собственно ищу кто сделает такую связку с нуля под ключ. Тз высылаю в личку. Заранее спасибо.
    • Від ukrtelekom
      Доброго часу!
      Шукається адміністратор віддалений для разової роботи по коригуванню працюючого Ubilling з мікротами. Якщо стосунки зклєяться- то до постійної додаткової копійки. 
      Всім заздалегідь дякую. Хейти, бажано не писати. Контакти в приватні повідомлення або O73283344O
×
×
  • Створити нове...