From d48ac96cd7ea4c7df81d5e18f5ed37529ee0f91d Mon Sep 17 00:00:00 2001 From: bagyenda <> Date: Mon, 29 May 2006 08:49:00 +0000 Subject: [PATCH] Max send attempts does not expire message, only expiry time does --- mbuni/mmlib/mms_queue.c | 2 +- mbuni/mmsc/mmsmobilesender.c | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/mbuni/mmlib/mms_queue.c b/mbuni/mmlib/mms_queue.c index 9201fda..8b145a3 100644 --- a/mbuni/mmlib/mms_queue.c +++ b/mbuni/mmlib/mms_queue.c @@ -703,7 +703,7 @@ Octstr *mms_queue_add(Octstr *from, List *to, e->from = xfrom; e->created = time(NULL); e->sendt = senddate; - e->expiryt = expirydate; + e->expiryt = expirydate ? expirydate : time(NULL) + DEFAULT_EXPIRE; e->lasttry = 0; e->attempts = 0; e->lastaccess = 0; diff --git a/mbuni/mmsc/mmsmobilesender.c b/mbuni/mmsc/mmsmobilesender.c index b731285..d5b180a 100644 --- a/mbuni/mmsc/mmsmobilesender.c +++ b/mbuni/mmsc/mmsmobilesender.c @@ -30,7 +30,14 @@ static MmsEnvelope *update_env_success(MmsEnvelope *env, MmsEnvelopeTo *xto) else { env->lasttry = tnow; env->attempts++; - env->sendt = env->lasttry + settings->send_back_off * env->attempts; + + /* If max send attempts has been reached, set next try to expiry time, otherwise + * use normal back-off procedure + */ + if (env->attempts >= settings->maxsendattempts) + env->sendt = env->expiryt; + else + env->sendt = env->lasttry + settings->send_back_off * env->attempts; } if (mms_queue_update(env) == 1)