factor out the function to generate struct gsm_sms from a string
diff --git a/openbsc/src/vty_interface.c b/openbsc/src/vty_interface.c
index 9c07ce9..70c5e01 100644
--- a/openbsc/src/vty_interface.c
+++ b/openbsc/src/vty_interface.c
@@ -1196,8 +1196,7 @@
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 @@
}
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 @@
/* 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;