From 8c340fee21cbfee59ea6f86518b4c99d3922c67d Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Thu, 13 Aug 2009 00:57:31 +0200 Subject: [PATCH] factor out the function to generate struct gsm_sms from a string --- openbsc/src/vty_interface.c | 15 ++++++++++++--- 1 file 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;