diff options
author | Harald Welte <laforge@gnumonks.org> | 2009-08-13 00:57:31 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2009-08-13 00:57:31 +0200 |
commit | 8c340fee21cbfee59ea6f86518b4c99d3922c67d (patch) | |
tree | 689269188e5f0981b07a3f0bcc7bec059d80d8ca | |
parent | 6b1e822611ee542ea42e880e63e8581f3c7a42ae (diff) |
factor out the function to generate struct gsm_sms from a string
-rw-r--r-- | openbsc/src/vty_interface.c | 15 |
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; |