urfaclient на C

Технические вопросы по UTM 5.0
Ответить
strel
Сообщения: 9
Зарегистрирован: Ср мар 30, 2011 15:16
Откуда: Владимир

Сообщение strel »

sclif писал(а):Пытаюсь подключить пользователю тариф с помощью ourfa-client на C. Как можно задать recalc.type тип перерасчета "Пересчитывать и возвращать всегда" ? По умолчанию выставляется тип "Ничего не делать". Соответственно абонентская плата в заблокированном состоянии списывается.
/usr/bin/ourfa_client -a link_tariff_with_services -user_id ".$user_id." -account_id ".$account." -discount_period_id ".$discount_period." -tariff_current 1 -tariff_next 1 -dialup_login ".$login." -dialup_password ".$pass." -unabon 1 -unprepay 1 -S rsa_cert
Версия utm5-2.1.009
Скажите! Как Вы победили пересчет?

strel
Сообщения: 9
Зарегистрирован: Ср мар 30, 2011 15:16
Откуда: Владимир

Сообщение strel »

Rav писал(а):На 5.3 кто-нибудь уже пробовал?
пытаюсь прикрутить. но пока уперся с ошибками типа:
save_account is not a valid Ourfa macro (Это из perl)

а с консоли:
/usr/local/bin/ourfa_client -S rsa_cert -a edit_account -account_id 1909 -is_blocked 256 -int_status 0
...
Access denied
Function `rpcf_get_accountinfo` node `ROOT`. Access denied

Кто с этим сталкивался и как это лечится на 5.3?

Аватара пользователя
MaxDM
Сообщения: 313
Зарегистрирован: Пн апр 03, 2006 10:26
Контактная информация:

Сообщение MaxDM »

Кто-нибудь победил функцию rpcf_add_iptraffic_service_link_ipv6?

Ничего не возвращает:

Код: Выделить всё

Received ATTR_TERMINATION instead of ATTR_DATA attribute at /usr/local/lib/x86_64-linux-gnu/perl/5.20.2/Ourfa.pm line 406.
Function `rpcf_add_iptraffic_service_link_ipv6` node `integer`. Can not get integer value for node 'slink_id(0)'
Ourfa::ScriptCall::call: Function `rpcf_add_iptraffic_service_link_ipv6` node `integer`. Can not get integer value for node 'slink_id(0)'

strel
Сообщения: 9
Зарегистрирован: Ср мар 30, 2011 15:16
Откуда: Владимир

Сообщение strel »

Что-то не могу собрать...
ругается:

Код: Выделить всё

cc -DNDEBUG -s -fPIC `xml2-config --cflags` -I/usr/local/include \
          -o ourfa_client \
          client.o client_dump.o client_datafile.o \
          -L/usr/local/lib -L. -lourfa -lssl -lcrypto `xml2-config --libs` -L/usr/local/lib 
client.o: In function `set_sysparam_session_ip':
client.c:(.text+0xacd): undefined reference to `ourfa_hash_parse_ip'
collect2: error: ld returned 1 exit status
make: *** [ourfa_client] Ошибка 1
Как победить сие безобразие?

drag0mir писал(а):Народ а кто нибудь собирал на 8-ом дебиане?
что то у меня не собирается

Код: Выделить всё

# make
cc -DNDEBUG -s -fPIC `xml2-config --cflags` -I/usr/local/include \
  -o ourfa_client \
  client.o client_dump.o client_datafile.o \
  -L/usr/local/lib -L. -lourfa -lssl -lcrypto `xml2-config --libs` -L/usr/local/lib -liconv
/usr/bin/ld: cannot find -liconv
collect2: error: ld returned 1 exit status
Makefile:36: ошибка выполнения рецепта для цели «ourfa_client»
make: *** [ourfa_client] Ошибка 1

Код: Выделить всё

# dpkg -l | grep iconv
ii  libiconv-hook-dev              0.0.20021209-10              amd64        header files of libiconv-hook
ii  libiconv-hook1                 0.0.20021209-10              amd64        extension of iconv for libapache-mod-encoding
ii  libtext-iconv-perl             1.7-5+b2                     amd64        converts between character sets in Perl

strel
Сообщения: 9
Зарегистрирован: Ср мар 30, 2011 15:16
Откуда: Владимир

Сообщение strel »

strel писал(а):Что-то не могу собрать...
ругается:

Код: Выделить всё

cc -DNDEBUG -s -fPIC `xml2-config --cflags` -I/usr/local/include \
          -o ourfa_client \
          client.o client_dump.o client_datafile.o \
          -L/usr/local/lib -L. -lourfa -lssl -lcrypto `xml2-config --libs` -L/usr/local/lib 
client.o: In function `set_sysparam_session_ip':
client.c:(.text+0xacd): undefined reference to `ourfa_hash_parse_ip'
collect2: error: ld returned 1 exit status
make: *** [ourfa_client] Ошибка 1
Как победить сие безобразие?

Победил!
Кому интересно:

Код: Выделить всё

diff -u Makefile Makefile.new
--- Makefile
+++ Makefile.new
@@ -36,7 +36,7 @@
 ourfa_client: ourfa.h libourfa.a client.o client_dump.o client_datafile.o
        $(CC) $(CFLAGS) $(XML2_CFLAGS) $(ICONV_CFLAGS) \
          -o ourfa_client \
-         client.o client_dump.o client_datafile.o \
+         client.o client_dump.o client_datafile.o hash.o \
          $(LDFLAGS) -L. -lourfa -lssl -lcrypto $(XML2_LIBS) $(ICONV_LIBS)
 

strel
Сообщения: 9
Зарегистрирован: Ср мар 30, 2011 15:16
Откуда: Владимир

Re:

Сообщение strel »

MaxDM писал(а):
Сб фев 17, 2018 11:02
Кто-нибудь победил функцию rpcf_add_iptraffic_service_link_ipv6?

Ничего не возвращает:

Код: Выделить всё

Received ATTR_TERMINATION instead of ATTR_DATA attribute at /usr/local/lib/x86_64-linux-gnu/perl/5.20.2/Ourfa.pm line 406.
Function `rpcf_add_iptraffic_service_link_ipv6` node `integer`. Can not get integer value for node 'slink_id(0)'
Ourfa::ScriptCall::call: Function `rpcf_add_iptraffic_service_link_ipv6` node `integer`. Can not get integer value for node 'slink_id(0)'
Получилось ли победить функцию rpcf_add_iptraffic_service_link_ipv6?
столкнулся с такой-же проблемой! функция ничего не возвращает! :-(

Аватара пользователя
MaxDM
Сообщения: 313
Зарегистрирован: Пн апр 03, 2006 10:26
Контактная информация:

Re: urfaclient на C

Сообщение MaxDM »

У меня не получилось.

mikkey finn
Сообщения: 1612
Зарегистрирован: Пт ноя 10, 2006 15:23

Re: urfaclient на C

Сообщение mikkey finn »

Если для кого-то еще актуально, то я смог :)
Надо править в ourfa два файлика.
Один - pkt.c, там надо исправить вставку атрибута IP. Сейчас там идет просто поле длиной 4 байта. Надо - длина адреса в байтах +1. Первым байтом должна идти длина адреса в байтах, дальше - сам адрес.
Второй - ip.c, там сейчас только для Win32 используется inet_pton, а лучше сделать для всех платформ. Если здесь не править - не принимает адрес в виде строки из перла. Да откуда угодно. Если исправить - все ок становится.
Естественно, после правки - пересобрать и переустановить всё

Ответить