aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2009-08-13 00:57:31 +0200
committerHarald Welte <laforge@gnumonks.org>2009-08-13 00:57:31 +0200
commit8c340fee21cbfee59ea6f86518b4c99d3922c67d (patch)
tree689269188e5f0981b07a3f0bcc7bec059d80d8ca
parent6b1e822611ee542ea42e880e63e8581f3c7a42ae (diff)
factor out the function to generate struct gsm_sms from a string
-rw-r--r--openbsc/src/vty_interface.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/openbsc/src/vty_interface.c b/openbsc/src/vty_interface.c
index 9c07ce9f2..70c5e01a7 100644
--- a/openbsc/src/vty_interface.c
+++ b/openbsc/src/vty_interface.c
@@ -1196,8 +1196,7 @@ static struct buffer *argv_to_buffer(int argc, const char *argv[], int base)
return b;
}
-static int _send_sms_buffer(struct gsm_subscriber *receiver,
- struct buffer *b)
+int sms_from_text(struct gsm_subscriber *receiver, const char *text)
{
struct gsm_sms *sms = sms_alloc();
@@ -1211,7 +1210,7 @@ static int _send_sms_buffer(struct gsm_subscriber *receiver,
}
sms->receiver = receiver;
- strncpy(sms->text, buffer_getstr(b), sizeof(sms->text)-1);
+ strncpy(sms->text, text, sizeof(sms->text)-1);
/* FIXME: don't use ID 1 static */
sms->sender = subscr_get_by_id(gsmnet, 1);
@@ -1224,6 +1223,16 @@ static int _send_sms_buffer(struct gsm_subscriber *receiver,
/* Generate user_data */
sms->user_data_len = gsm_7bit_encode(sms->user_data, sms->text);
+ return sms;
+}
+
+static int _send_sms_buffer(struct gsm_subscriber *receiver,
+ struct buffer *b)
+{
+ struct gsm_sms *sms;
+
+ sms = sms_from_text(receiver, buffer_getstr(b));
+
gsm411_send_sms_subscr(sms->receiver, sms);
return CMD_SUCCESS;