sms: Always go through the database and the smsqueue to send messages

This is also fixing a memory and subscriber leak. Make sure to
always release the gsm_sms structure.
This commit is contained in:
Holger Hans Peter Freyther 2010-12-25 15:57:34 +01:00
parent 994dcbb201
commit 445e615d03
1 changed files with 7 additions and 8 deletions

View File

@ -171,16 +171,15 @@ static int _send_sms_str(struct gsm_subscriber *receiver, char *str,
sms = sms_from_text(receiver, str);
sms->protocol_id = tp_pid;
if(!receiver->lac){
/* subscriber currently not attached, store in database */
if (db_sms_store(sms) != 0) {
LOGP(DSMS, LOGL_ERROR, "Failed to store SMS in Database\n");
return CMD_WARNING;
}
} else {
gsm411_send_sms_subscr(receiver, sms);
/* store in database for the queue */
if (db_sms_store(sms) != 0) {
LOGP(DSMS, LOGL_ERROR, "Failed to store SMS in Database\n");
sms_free(sms);
return CMD_WARNING;
}
sms_free(sms);
sms_queue_trigger(receiver->net->sms_queue);
return CMD_SUCCESS;
}