aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2011-01-10 15:34:09 +0100
committerHolger Hans Peter Freyther <zecke@selfish.org>2011-01-10 15:34:09 +0100
commitcdfcbee53b705d136dbfbd7959d1b8b516e98522 (patch)
tree1e8d74229c447311120d7f833b36483efe71e568
parentc464491b0be0fb9b845ae6aababddc1b17ffda30 (diff)
sms: Allow to specify the DCS for the SMS.
-rw-r--r--openbsc/include/openbsc/gsm_04_11.h2
-rw-r--r--openbsc/src/gsm_04_11.c4
-rw-r--r--openbsc/src/token_auth.c2
-rw-r--r--openbsc/src/vty_interface_layer3.c2
4 files changed, 5 insertions, 5 deletions
diff --git a/openbsc/include/openbsc/gsm_04_11.h b/openbsc/include/openbsc/gsm_04_11.h
index 06fd04e60..5969788d5 100644
--- a/openbsc/include/openbsc/gsm_04_11.h
+++ b/openbsc/include/openbsc/gsm_04_11.h
@@ -29,7 +29,7 @@ int gsm0411_rcv_sms(struct gsm_subscriber_connection *conn, struct msgb *msg);
struct gsm_sms *sms_alloc(void);
void sms_free(struct gsm_sms *sms);
-struct gsm_sms *sms_from_text(struct gsm_subscriber *receiver, const char *text);
+struct gsm_sms *sms_from_text(struct gsm_subscriber *receiver, int dcs, const char *text);
void _gsm411_sms_trans_free(struct gsm_trans *trans);
int gsm411_send_sms_subscr(struct gsm_subscriber *subscr,
diff --git a/openbsc/src/gsm_04_11.c b/openbsc/src/gsm_04_11.c
index a7c6f667d..812e758cd 100644
--- a/openbsc/src/gsm_04_11.c
+++ b/openbsc/src/gsm_04_11.c
@@ -117,7 +117,7 @@ void sms_free(struct gsm_sms *sms)
talloc_free(sms);
}
-struct gsm_sms *sms_from_text(struct gsm_subscriber *receiver, const char *text)
+struct gsm_sms *sms_from_text(struct gsm_subscriber *receiver, int dcs, const char *text)
{
struct gsm_sms *sms = sms_alloc();
@@ -133,7 +133,7 @@ struct gsm_sms *sms_from_text(struct gsm_subscriber *receiver, const char *text)
sms->status_rep_req = 0;
sms->ud_hdr_ind = 0;
sms->protocol_id = 0; /* implicit */
- sms->data_coding_scheme = 0; /* default 7bit */
+ sms->data_coding_scheme = dcs;
strncpy(sms->dest_addr, receiver->extension, sizeof(sms->dest_addr)-1);
/* Generate user_data */
sms->user_data_len = gsm_7bit_encode(sms->user_data, sms->text);
diff --git a/openbsc/src/token_auth.c b/openbsc/src/token_auth.c
index 733ea7173..3404dd4ee 100644
--- a/openbsc/src/token_auth.c
+++ b/openbsc/src/token_auth.c
@@ -79,7 +79,7 @@ static int token_subscr_cb(unsigned int subsys, unsigned int signal,
goto unauth;
}
- sms = sms_from_text(subscr, sms_str);
+ sms = sms_from_text(subscr, 0, sms_str);
talloc_free(sms_str);
if (!sms) {
rc = -ENOMEM;
diff --git a/openbsc/src/vty_interface_layer3.c b/openbsc/src/vty_interface_layer3.c
index d13031ba1..56b496678 100644
--- a/openbsc/src/vty_interface_layer3.c
+++ b/openbsc/src/vty_interface_layer3.c
@@ -146,7 +146,7 @@ static int _send_sms_str(struct gsm_subscriber *receiver, char *str,
{
struct gsm_sms *sms;
- sms = sms_from_text(receiver, str);
+ sms = sms_from_text(receiver, 0, str);
sms->protocol_id = tp_pid;
/* store in database for the queue */