Thanks++, I did not see that point.
Vincent -- Telemaque - NICE - (FR) Service Technique - Developpement http://www.telemaque.fr/ [EMAIL PROTECTED] Tel : +33 4 93 97 71 64 (fax 68) ----- Original Message ----- From: "Alexander Malysh" <[EMAIL PROTECTED]> To: <devel@kannel.org> Sent: Friday, April 07, 2006 2:51 PM Subject: Re: [PATCH] more precise throughput using double [v3] > Hi, > > this patch applies ok and committed to cvs in modified form. > > >> + throughput = strtod(octstr_get_cstr(cfg_get(grp, > octstr_imm("throughput"))),(char **) NULL); > >> + if (throughput == ERANGE || throughput <= 0) > >> conn->throughput = 0; /* defaults to no throughtput > ... > > Here you have memleak. Look into committed version where it's fixed. > > Thanks, > Alex > > Vincent CHAVANIS schrieb: >> is this new one is ok ? >> >> -- >> Telemaque - NICE - (FR) >> Service Technique - Developpement >> http://www.telemaque.fr/ >> [EMAIL PROTECTED] >> Tel : +33 4 93 97 71 64 (fax 68) >> >> ----- Original Message ----- >> From: "Alexander Malysh" <[EMAIL PROTECTED]> >> To: <devel@kannel.org> >> Sent: Thursday, April 06, 2006 7:23 PM >> Subject: Re: [PATCH] more precise throughput using double [v3] >> >> >>> Hi, >>> >>> you patch doesn't apply. Please redo your patch with cvs -Nau from >>> within gateway dir. >>> >>> Thanks, >>> Alex >>> >>> ------------------------------------------------------------------------ >>> >>> diff -i -E -b -w -B -rNau gateway/gw/smsc/smsc_emi.c >>> gateway-patch/gw/smsc/smsc_emi.c >>> --- gateway/gw/smsc/smsc_emi.c 2005-02-11 16:35:48.000000000 +0100 >>> +++ gateway-patch/gw/smsc/smsc_emi.c 2006-04-06 19:42:24.000000000 +0200 >>> @@ -992,7 +992,7 @@ >>> Msg *msg; >>> double delay = 0; >>> >>> - if (conn->throughput) { >>> + if (conn->throughput > 0) { >>> delay = 1.0 / conn->throughput; >>> } >>> >>> @@ -1001,7 +1001,7 @@ >>> (msg = gw_prioqueue_remove(PRIVDATA(conn)->outgoing_queue)) != >>> NULL) { >>> int nexttrn = emi2_next_trn(conn); >>> >>> - if (conn->throughput) >>> + if (conn->throughput > 0) >>> gwthread_sleep(delay); >>> >>> /* convert the generic Kannel message into an EMI type message */ >>> diff -i -E -b -w -B -rNau gateway/gw/smsc/smsc_fake.c >>> gateway-patch/gw/smsc/smsc_fake.c >>> --- gateway/gw/smsc/smsc_fake.c 2005-02-11 16:35:48.000000000 +0100 >>> +++ gateway-patch/gw/smsc/smsc_fake.c 2006-04-06 19:42:38.000000000 +0200 >>> @@ -243,7 +243,7 @@ >>> Msg *msg; >>> double delay = 0; >>> >>> - if (conn->throughput) { >>> + if (conn->throughput > 0) { >>> delay = 1.0 / conn->throughput; >>> } >>> >>> @@ -297,7 +297,7 @@ >>> } >>> >>> /* obey throughput speed limit, if any */ >>> - if (conn->throughput) { >>> + if (conn->throughput > 0) { >>> gwthread_sleep(delay); >>> } >>> } >>> diff -i -E -b -w -B -rNau gateway/gw/smsc/smsc_http.c >>> gateway-patch/gw/smsc/smsc_http.c >>> --- gateway/gw/smsc/smsc_http.c 2006-03-29 11:17:55.000000000 +0200 >>> +++ gateway-patch/gw/smsc/smsc_http.c 2006-04-06 19:43:00.000000000 +0200 >>> @@ -1308,7 +1308,7 @@ >>> Msg *sms = msg_duplicate(msg); >>> double delay = 0; >>> >>> - if (conn->throughput) { >>> + if (conn->throughput > 0) { >>> delay = 1.0 / conn->throughput; >>> } >>> >>> @@ -1316,7 +1316,7 @@ >>> conndata->send_sms(conn, sms); >>> >>> /* obey throughput speed limit, if any */ >>> - if (conn->throughput) >>> + if (conn->throughput > 0) >>> gwthread_sleep(delay); >>> >>> return 0; >>> diff -i -E -b -w -B -rNau gateway/gw/smsc/smsc_smasi.c >>> gateway-patch/gw/smsc/smsc_smasi.c >>> --- gateway/gw/smsc/smsc_smasi.c 2005-02-11 16:35:48.000000000 +0100 >>> +++ gateway-patch/gw/smsc/smsc_smasi.c 2006-04-06 19:43:19.000000000 +0200 >>> @@ -872,7 +872,7 @@ >>> >>> if (*pending_submits == -1) return; >>> >>> - if (smasi->conn->throughput) { >>> + if (smasi->conn->throughput > 0) { >>> delay = 1.0 / smasi->conn->throughput; >>> } >>> >>> @@ -894,7 +894,7 @@ >>> smasi_pdu_destroy(pdu); >>> >>> /* obey throughput speed limit, if any */ >>> - if (smasi->conn->throughput) >>> + if (smasi->conn->throughput > 0) >>> gwthread_sleep(delay); >>> >>> ++(*pending_submits); >>> diff -i -E -b -w -B -rNau gateway/gw/smsc/smsc_smpp.c >>> gateway-patch/gw/smsc/smsc_smpp.c >>> --- gateway/gw/smsc/smsc_smpp.c 2006-02-07 15:54:44.000000000 +0100 >>> +++ gateway-patch/gw/smsc/smsc_smpp.c 2006-04-06 19:44:14.000000000 +0200 >>> @@ -1013,7 +1013,7 @@ >>> /* >>> * obey throughput speed limit, if any. >>> */ >>> - if (smpp->conn->throughput) >>> + if (smpp->conn->throughput > 0) >>> gwthread_sleep(delay); >>> } >>> else { /* write error occurs */ >>> diff -i -E -b -w -B -rNau gateway/gw/smscconn.c gateway-patch/gw/smscconn.c >>> --- gateway/gw/smscconn.c 2006-04-01 19:48:51.000000000 +0200 >>> +++ gateway-patch/gw/smscconn.c 2006-04-06 19:51:57.000000000 +0200 >>> @@ -64,6 +64,7 @@ >>> >>> #include <signal.h> >>> #include <time.h> >>> +#include <errno.h> >>> >>> #include "gwlib/gwlib.h" >>> #include "gwlib/regex.h" >>> @@ -151,7 +152,7 @@ >>> SMSCConn *conn; >>> Octstr *smsc_type; >>> int ret; >>> - long throughput; >>> + double throughput; >>> Octstr *allowed_smsc_id_regex; >>> Octstr *denied_smsc_id_regex; >>> Octstr *allowed_prefix_regex; >>> @@ -216,10 +217,13 @@ >>> if ((conn->preferred_prefix_regex = >>> gw_regex_comp(preferred_prefix_regex, REG_EXTENDED)) == NULL) >>> panic(0, "Could not compile pattern '%s'", >>> octstr_get_cstr(preferred_prefix_regex)); >>> >>> - if (cfg_get_integer(&throughput, grp, octstr_imm("throughput")) == -1) >>> + throughput = strtod(octstr_get_cstr(cfg_get(grp, >>> octstr_imm("throughput"))),(char **) NULL); >>> + if (throughput == ERANGE || throughput <= 0) >>> conn->throughput = 0; /* defaults to no throughtput limitation */ >>> else >>> - conn->throughput = (int) throughput; >>> + conn->throughput = throughput; >>> + >>> + info(0, "Set throughput to %.3f for smsc id <%s>", throughput, >>> octstr_get_cstr(conn->id)); >>> >>> /* configure the internal rerouting rules for this smsc id */ >>> init_reroute(conn, grp); >>> diff -i -E -b -w -B -rNau gateway/gw/smscconn_p.h >>> gateway-patch/gw/smscconn_p.h >>> --- gateway/gw/smscconn_p.h 2005-02-11 16:35:48.000000000 +0100 >>> +++ gateway-patch/gw/smscconn_p.h 2006-04-06 19:46:51.000000000 +0200 >>> @@ -194,7 +194,7 @@ >>> >>> int alt_dcs; /* use alternate DCS 0xFX */ >>> >>> - int throughput; /* message thoughput per sec. to be delivered to >>> SMSC */ >>> + double throughput; /* message thoughput per sec. to be delivered >>> to SMSC */ >>> >>> /* Stores rerouting information for this specific smsc-id */ >>> int reroute; /* simply turn MO into MT and process >>> internally */ > > >