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 */