IPN выдает ошибку

Установка, настройка, поддержка
shark3d
Сообщения: 20
Зарегистрирован: Чт окт 26, 2006 8:28 am
Откуда: Украина, Первомайск
Контактная информация:

IPN выдает ошибку

Сообщение shark3d »

При работе модуль IPN відает следующую ошибку (debug=3):
Debug mode on
<p>select u.uid, dv.ip, u.id,
'',
0,
0,
dv.tp_id,
if (u.company_id > 0, cb.id, b.id),
if (c.name IS NULL, b.deposit, cb.deposit)+u.credit,
tp.payment_type,
0,
0,
tp.octets_direction,
u.reduction,
CONNECT_INFO
FROM (users u, dv_main dv)
LEFT JOIN companies c ON (u.company_id=c.id)
LEFT JOIN bills b ON (u.bill_id=b.id)
LEFT JOIN bills cb ON (c.bill_id=cb.id)
LEFT JOIN tarif_plans tp ON (tp.id=dv.tp_id)
WHERE u.uid=dv.uid
and dv.ip > 0 and u.disable=0 and dv.disable=0;</p>
DBD::mysql::st execute failed: Unknown column 'CONNECT_INFO' in 'field list' at /home/opt/abills/libexec/../Abills/mysql/main.pm line 131.

и в базу ничего не заносится.
Кто владеет Информацией - тот владеет Миром.

~AsmodeuS~
Site Admin
Сообщения: 5746
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

Сообщение ~AsmodeuS~ »

abills/abills.sql

miandr
Сообщения: 2
Зарегистрирован: Ср ноя 14, 2007 10:08 am

Сообщение miandr »

~AsmodeuS~ писал(а):abills/abills.sql
Такое поле есть в таблице dv_calls, но эта таблица не упоминается в этом запросе.

shark3d
Сообщения: 20
Зарегистрирован: Чт окт 26, 2006 8:28 am
Откуда: Украина, Первомайск
Контактная информация:

Сообщение shark3d »

Оба SQL-файла были применены: abills.sql, db/Ipn.sql
Кто владеет Информацией - тот владеет Миром.

miandr
Сообщения: 2
Зарегистрирован: Ср ноя 14, 2007 10:08 am

Сообщение miandr »

Так что, кто-нибудь может сказать что-либо по этому поводу?

vanuha
Сообщения: 1
Зарегистрирован: Ср ноя 01, 2006 5:40 pm
Контактная информация:

Сообщение vanuha »

Да, было-бы весьма не дурно узнать ответ на этот вопрос.

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Сообщение ran »

abills/abills.sql здесь, конечно, ни при чём... Видимо,проблемы из-за несовместимости с sql5.

Смысл в том что в SQL5 значительные изменения синтаксиса, а совместимость они не добавили :(

к примеру.
отныне сложные запросы в которых используется такая форма записи:
SELECT blah FROM table1, table2 WHERE blahblah - некорректны. Должно быть
SELECT blah FROM (table1, table2) WHERE blahblah

вот тут много написано про то что теперь из запросов не получается.
http://bugs.mysql.com/bug.php?id=13551

Так чта сырцы править нада аднака :)

chtito
Сообщения: 313
Зарегистрирован: Чт дек 13, 2007 11:03 am

Сообщение chtito »

Так чта сырцы править нада аднака :)
Сырцы скачать и править то можно, а как быть с апгрейдами на новые версии? Снова искать и патчить? Полная лажа.

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Сообщение ran »

Кстати, а всё-таки какой смысл имеет параметр конфига $conf{IPN_STATIC_IP}=1;?

Если верить доке:

Использовать только статические адреса.
Система проверяет статические адреса клиентов и присваивает им трафик. Исключая таким образом потери из за переподключений при использовании динамических адресов авторизации.

Так вот, ежли он равен 1, то в модуле Abills/mysql/Ipn_Collector.pm мы попадаем сюды:

if ($CONF->{IPN_STATIC_IP}) {
$sql="select u.uid, dv.ip, u.id,
'',
0,
0,
dv.tp_id,
if (u.company_id > 0, cb.id, b.id),
if (c.name IS NULL, b.deposit, cb.deposit)+u.credit,
tp.payment_type,
0,
0,
tp.octets_direction,
u.reduction,
CONNECT_INFO
FROM (users u, dv_main dv)
LEFT JOIN companies c ON (u.company_id=c.id)
LEFT JOIN bills b ON (u.bill_id=b.id)
LEFT JOIN bills cb ON (c.bill_id=cb.id)
LEFT JOIN tarif_plans tp ON (tp.id=dv.tp_id)
WHERE u.uid=dv.uid
and dv.ip > 0 and u.disable=0 and dv.disable=0;";
}

то бишь формируется описанный выше запрос в таблицу dv_main. Но в ней ДЕЙСТВИТЕЛЬНО НЕТ поля CONNECT_INFO! Поэтому и получаем:

DBD::mysql::st execute failed: Unknown column 'CONNECT_INFO' in 'field list' at /home/opt/abills/libexec/../Abills/mysql/main.pm line 131.

А вот если $conf{IPN_STATIC_IP}=1; закомментировать, то попадём сюды:

elsif ( $CONF->{IPN_DEPOSIT_OPERATION} ) {
$sql="select u.uid, calls.framed_ip_address, calls.user_name,
calls.acct_session_id,
calls.acct_input_octets,
calls.acct_output_octets,
dv.tp_id,
if(u.company_id > 0, cb.id, b.id),
if(c.name IS NULL, b.deposit, cb.deposit)+u.credit,
tp.payment_type,
UNIX_TIMESTAMP() - calls.lupdated,
calls.nas_id,
tp.octets_direction,
u.reduction,
CONNECT_INFO
FROM (dv_calls calls, users u)
LEFT JOIN companies c ON (u.company_id=c.id)
LEFT JOIN bills b ON (u.bill_id=b.id)
LEFT JOIN bills cb ON (c.bill_id=cb.id)
LEFT JOIN dv_main dv ON (u.uid=dv.uid)
LEFT JOIN tarif_plans tp ON (tp.id=dv.tp_id)
WHERE u.id=calls.user_name
and calls.nas_id IN ($DATA->{NAS_ID});";
}

и сформируется корректный запрос в dv_calls.

Так как всё-таки должно быть?

shark3d
Сообщения: 20
Зарегистрирован: Чт окт 26, 2006 8:28 am
Откуда: Украина, Первомайск
Контактная информация:

Сообщение shark3d »

И что делать?
Кто владеет Информацией - тот владеет Миром.

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Сообщение ran »

Ну, ничего лучшего, как убрать из конфига IPN_STATIC_IP я не придумал, а возиться с дальнейшей разборкой кода мне влом :) К тому же я перл терпеть ненавижу. Подождём, что скажет автор.

А как, кстати, у остальных IPN ваще работает? Все, что-ли втихаря грохают этот параметр :lol:

~AsmodeuS~
Site Admin
Сообщения: 5746
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

Сообщение ~AsmodeuS~ »

Спасибо уже поправил в ЦВС

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Сообщение ran »

~AsmodeuS~ писал(а):Спасибо уже поправил в ЦВС
Странно... Захожу бравзером на цвс вижу изменение в Ipn_Collector.pm обновляюсь - изменений нету :roll:

Не, я конечно увидел что поправить нада...

~AsmodeuS~
Site Admin
Сообщения: 5746
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

Сообщение ~AsmodeuS~ »


ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Сообщение ran »

~AsmodeuS~ писал(а):http://abills.cvs.sourceforge.net/abill ... ev=rel-0-4

97 строка
Да я это видел... И руцями поправил. Я говорю, что пытался как положено обновить - болт.

А из стабл нада или из каррент?

Ответить