db: Introduce a limit in delivery attempts for the SMS search
We do not want to attempt submitting SMS that has failed for too many times. The failure could be due RF failure or due a bug in the message handling.
This commit is contained in:
parent
812dad0ff7
commit
73b878a85a
|
@ -65,7 +65,7 @@ int db_sync_lastauthtuple_for_subscr(struct gsm_auth_tuple *atuple,
|
|||
int db_sms_store(struct gsm_sms *sms);
|
||||
struct gsm_sms *db_sms_get(struct gsm_network *net, unsigned long long id);
|
||||
struct gsm_sms *db_sms_get_unsent(struct gsm_network *net, unsigned long long min_id);
|
||||
struct gsm_sms *db_sms_get_unsent_by_subscr(struct gsm_network *net, unsigned long long min_subscr_id);
|
||||
struct gsm_sms *db_sms_get_unsent_by_subscr(struct gsm_network *net, unsigned long long min_subscr_id, unsigned int failed);
|
||||
struct gsm_sms *db_sms_get_unsent_for_subscr(struct gsm_subscriber *subscr);
|
||||
int db_sms_mark_sent(struct gsm_sms *sms);
|
||||
int db_sms_inc_deliver_attempts(struct gsm_sms *sms);
|
||||
|
|
|
@ -1114,7 +1114,9 @@ struct gsm_sms *db_sms_get_unsent(struct gsm_network *net, unsigned long long mi
|
|||
return sms;
|
||||
}
|
||||
|
||||
struct gsm_sms *db_sms_get_unsent_by_subscr(struct gsm_network *net, unsigned long long min_subscr_id)
|
||||
struct gsm_sms *db_sms_get_unsent_by_subscr(struct gsm_network *net,
|
||||
unsigned long long min_subscr_id,
|
||||
unsigned int failed)
|
||||
{
|
||||
dbi_result result;
|
||||
struct gsm_sms *sms;
|
||||
|
@ -1124,9 +1126,9 @@ struct gsm_sms *db_sms_get_unsent_by_subscr(struct gsm_network *net, unsigned lo
|
|||
"FROM SMS JOIN Subscriber ON "
|
||||
"SMS.receiver_id = Subscriber.id "
|
||||
"WHERE SMS.receiver_id >= %llu AND SMS.sent IS NULL "
|
||||
"AND Subscriber.lac > 0 "
|
||||
"AND Subscriber.lac > 0 AND SMS.deliver_attempts < %u "
|
||||
"ORDER BY SMS.receiver_id, SMS.id LIMIT 1",
|
||||
min_subscr_id);
|
||||
min_subscr_id, failed);
|
||||
if (!result)
|
||||
return NULL;
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <limits.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
|
@ -125,7 +126,7 @@ DEFUN(sms_send_pend,
|
|||
int id = 0;
|
||||
|
||||
while (1) {
|
||||
sms = db_sms_get_unsent_by_subscr(gsmnet, id);
|
||||
sms = db_sms_get_unsent_by_subscr(gsmnet, id, UINT_MAX);
|
||||
if (!sms)
|
||||
break;
|
||||
|
||||
|
|
Loading…
Reference in New Issue