wow, something is going wrong with your modifications. Here is the fix,
--- /gateway-cvs/gw/smscconn.c 2006-04-07 14:54:05.000000000 +0200 +++ /gateway/gw/smscconn.c 2006-04-07 16:54:44.000000000 +0200 @@ -220,8 +220,10 @@ if ((tmp = cfg_get(grp, octstr_imm("throughput"))) != NULL) { if (octstr_parse_double(&throughput, tmp, 0) == -1) conn->throughput = 0; + else + conn->throughput = (double) throughput; octstr_destroy(tmp); - info(0, "Set throughput to %.3f for smsc id <%s>", throughput, octstr_get_cstr(conn->id)); + info(0, "Set throughput to %.3f for smsc id <%s>", conn->throughput, octstr_get_cstr(conn->id)); } 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 4:32 PM Subject: Re: [PATCH] more precise throughput using double [v3] > Vincent CHAVANIS schrieb: >> Thanks++, >> >> I did not see that point. > > cfg_get(...) returns Octstr* that must be destroyed afterwards. and we > avoid using strXXX functions if we have the same functionality in Octstr. > > Thanks, > Alex > >> >> 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 */ >>> >>> >> >> >> > > >