Скажите! Как Вы победили пересчет?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
urfaclient на C
пытаюсь прикрутить. но пока уперся с ошибками типа: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?
Кто-нибудь победил функцию 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)'
Что-то не могу собрать...
ругается:
Как победить сие безобразие?
ругается:
Код: Выделить всё
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 писал(а):Что-то не могу собрать...
ругается:Как победить сие безобразие?Код: Выделить всё
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)
Re:
Получилось ли победить функцию rpcf_add_iptraffic_service_link_ipv6?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)'
столкнулся с такой-же проблемой! функция ничего не возвращает!

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

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