Hello All,
I expect I have a syntax fluff with an avp_db_query() example, but I can't find it. A pointer to the solution would be greatly appreciated.
I'm running mysql 5:
Spongy% mysql -V mysql Ver 14.12 Distrib 5.0.27, for pc-linux-gnu (i686) using readline 5.0
and openser 1.3.0:
Spongy% openser -V version: openser 1.3.0-tls (i386/linux) flags: STATS: Off, USE_IPV6, USE_TCP, USE_TLS, DISABLE_NAGLE, USE_MCAST, SHM_MEM, SHM_MMAP, PKG_MALLOC, F_MALLOC, FAST_LOCK-ADAPTIVE_WAIT ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535 poll method support: poll, epoll_lt, epoll_et, sigio_rt, select. svnrevision: unknown @(#) $Id: main.c 3304 2007-12-11 12:55:11Z bogdan_iancu $ main.c compiled on 12:09:35 Dec 14 2007 with gcc 3.4.6
A direct query of the mysql usr_preferences table works as expected:
mysql> select attribute, value from usr_preferences where username='55555' order by attribute; +-----------+-------+ | attribute | value | +-----------+-------+ | 1 | 55510 | | 2 | 55520 | | 3 | 55530 | | 4 | 55540 | | 5 | 55500 | +-----------+-------+ 5 rows in set (0.00 sec)
This configuration taken almost directly from avp_db_query.html
mpath="/usr/local/lib/openser/modules" ... loadmodule "mysql.so" loadmodule "avpops.so" loadmodule "xlog.so" ...
avp_delete("*"); if (avp_db_query("SELECT attribute, value FROM usr_preferences WHERE username='55555' ORDER BY attribute")) {
xlog("L_NOTICE", "avp(i:1[1])=$avp(i:1[1]) avp(i:2[1])=$avp(i:2[1])\n"); xlog("L_NOTICE", "avp(i:1[2])=$avp(i:1[2]) avp(i:2[2])=$avp(i:2[2])\n"); xlog("L_NOTICE", "avp(i:1[3])=$avp(i:1[3]) avp(i:2[3])=$avp(i:2[3])\n"); xlog("L_NOTICE", "avp(i:1[4])=$avp(i:1[4]) avp(i:2[4])=$avp(i:2[4])\n"); xlog("L_NOTICE", "avp(i:1[5])=$avp(i:1[5]) avp(i:2[5])=$avp(i:2[5])\n");
} else { xlog("L_NOTICE", "avp_db_query() returned no records\n"); };
produces these errors:
Dec 26 14:16:28 [25226] WARNING:core:main: no fork mode Dec 26 14:16:28 [25226] INFO:core:init_tcp: using epoll_lt as the TCP io watch method (auto detected) Dec 26 14:16:28 [25226] NOTICE:core:main: version: openser 1.3.0-tls (i386/linux) Dec 26 14:16:28 [25226] INFO:core:main: using 32 Mb shared memory Dec 26 14:16:28 [25226] INFO:core:main: using 1 Mb private memory per process Dec 26 14:16:28 [25226] INFO:sl:mod_init: Initializing StateLess engine Dec 26 14:16:28 [25226] INFO:tm:mod_init: TM - initializing... Dec 26 14:16:28 [25226] INFO:acc:mod_init: initializing... Dec 26 14:16:28 [25226] INFO:maxfwd:mod_init: initializing... Dec 26 14:16:28 [25226] INFO:usrloc:ul_init_locks: locks array size 512 Dec 26 14:16:28 [25226] INFO:registrar:mod_init: initializing... Dec 26 14:16:28 [25226] INFO:auth:mod_init: initializing... Dec 26 14:16:28 [25226] INFO:auth_db:mod_init: initializing... Dec 26 14:16:28 [25226] INFO:textops:mod_init: initializing... Dec 26 14:16:28 [25226] INFO:exec:mod_init: exec - initializing Dec 26 14:16:28 [25226] INFO:options:mod_init: initializing... Dec 26 14:16:28 [25226] INFO:avpops:avpops_init: initializing... Dec 26 14:16:28 [25226] INFO:xlog:mod_init: initializing... Dec 26 14:16:28 [25226] ERROR:core:parse_avp_name: invalid ID <1[1]> not a number Dec 26 14:16:28 [25226] ERROR:core:pv_parse_avp_name: bad avp name [1[1]] Dec 26 14:16:28 [25226] ERROR:core:pv_parse_spec: pvar "avp" has an invalid name param [1[1]] Dec 26 14:16:28 [25226] ERROR:core:pv_parse_spec: wrong char [)/41] in [$avp(i:1[1]) avp(i:2[1])=$avp(i:2[1]) ] at [11 (5)] Dec 26 14:16:28 [25226] ERROR:xlog:xdbg_fixup: ERROR: wrong format[avp(i:1[1])=$avp(i:1[1]) avp(i:2[1])=$avp(i:2[1]) ] Dec 26 14:16:28 [25226] ERROR:core:fix_actions: fixing failed (code=-1) at cfg line 288 Dec 26 14:16:28 [25226] ERROR:core:main: failed to fix configuration with err code -1
Thanks much for any help.
- Jeremy
El Miércoles, 26 de Diciembre de 2007, Jeremy George escribió:
Dec 26 14:16:28 [25226] ERROR:core:parse_avp_name: invalid ID <1[1]> not a number Dec 26 14:16:28 [25226] ERROR:core:pv_parse_avp_name: bad avp name [1[1]] Dec 26 14:16:28 [25226] ERROR:core:pv_parse_spec: pvar "avp" has an invalid name param [1[1]] Dec 26 14:16:28 [25226] ERROR:core:pv_parse_spec: wrong char [)/41] in [$avp(i:1[1]) avp(i:2[1])=$avp(i:2[1]) ] at [11 (5)] Dec 26 14:16:28 [25226] ERROR:xlog:xdbg_fixup: ERROR: wrong format[avp(i:1[1])=$avp(i:1[1]) avp(i:2[1])=$avp(i:2[1]) ] Dec 26 14:16:28 [25226] ERROR:core:fix_actions: fixing failed (code=-1) at cfg line 288 Dec 26 14:16:28 [25226] ERROR:core:main: failed to fix configuration with err code -1
http://www.openser.org/dokuwiki/doku.php/install:1.2.2-to-1.3.0#changes_in_p...
1.2 syntax: $avp(id[N])
1.3 syntax: $(avp(id)[N])
So instead of: $avp(i:1[1]) use: $(avp(i:1)[1])
;)
Thank you!
- Jeremy
-----Original Message----- From: users-bounces@lists.openser.org [mailto:users- bounces@lists.openser.org] On Behalf Of Iñaki Baz Castillo Sent: Wednesday, December 26, 2007 5:09 PM To: users@lists.openser.org Subject: Re: [OpenSER-Users] avp_db_query() problem
El Miércoles, 26 de Diciembre de 2007, Jeremy George escribió:
Dec 26 14:16:28 [25226] ERROR:core:parse_avp_name: invalid ID <1[1]> not
a
number Dec 26 14:16:28 [25226] ERROR:core:pv_parse_avp_name: bad avp
name
[1[1]] Dec 26 14:16:28 [25226] ERROR:core:pv_parse_spec: pvar "avp" has
an
invalid name param [1[1]] Dec 26 14:16:28 [25226]
ERROR:core:pv_parse_spec:
wrong char [)/41] in [$avp(i:1[1]) avp(i:2[1])=$avp(i:2[1]) ] at [11
(5)]
Dec 26 14:16:28 [25226] ERROR:xlog:xdbg_fixup: ERROR: wrong format[avp(i:1[1])=$avp(i:1[1]) avp(i:2[1])=$avp(i:2[1]) ] Dec 26 14:16:28 [25226] ERROR:core:fix_actions: fixing failed (code=-1)
at
cfg line 288 Dec 26 14:16:28 [25226] ERROR:core:main: failed to fix configuration with err code -1
http://www.openser.org/dokuwiki/doku.php/install:1.2.2-to- 1.3.0#changes_in_pseudo-variables
1.2 syntax: $avp(id[N])
1.3 syntax: $(avp(id)[N])
So instead of: $avp(i:1[1]) use: $(avp(i:1)[1])
;)
-- Iñaki Baz Castillo
Users mailing list Users@lists.openser.org http://lists.openser.org/cgi-bin/mailman/listinfo/users