Beautify septet->octet calculation (do not use ceil)
This commit is contained in:
parent
58c83d8368
commit
9aef14547a
|
@ -276,6 +276,7 @@ static int gsm340_gen_tpdu(struct msgb *msg, struct gsm_sms *sms)
|
||||||
u_int8_t *smsp;
|
u_int8_t *smsp;
|
||||||
u_int8_t oa[12]; /* max len per 03.40 */
|
u_int8_t oa[12]; /* max len per 03.40 */
|
||||||
u_int8_t oa_len = 0;
|
u_int8_t oa_len = 0;
|
||||||
|
u_int8_t octet_len;
|
||||||
unsigned int old_msg_len = msg->len;
|
unsigned int old_msg_len = msg->len;
|
||||||
|
|
||||||
/* generate first octet with masked bits */
|
/* generate first octet with masked bits */
|
||||||
|
@ -321,10 +322,13 @@ static int gsm340_gen_tpdu(struct msgb *msg, struct gsm_sms *sms)
|
||||||
/* generate TP-UD */
|
/* generate TP-UD */
|
||||||
/* FIXME: Handle DSC of UCS2 or 8/bit default */
|
/* FIXME: Handle DSC of UCS2 or 8/bit default */
|
||||||
if (gsm338_get_sms_alphabet(sms->data_coding_scheme) == DCS_7BIT_DEFAULT) {
|
if (gsm338_get_sms_alphabet(sms->data_coding_scheme) == DCS_7BIT_DEFAULT) {
|
||||||
|
octet_len = sms->user_data_len*7/8;
|
||||||
|
if (sms->user_data_len*7%8 != 0)
|
||||||
|
octet_len++;
|
||||||
/* Warning, user_data_len indicates the amount of septets
|
/* Warning, user_data_len indicates the amount of septets
|
||||||
* (characters), we need amount of octets occupied */
|
* (characters), we need amount of octets occupied */
|
||||||
smsp = msgb_put(msg, ceil(sms->user_data_len*7/8.0));
|
smsp = msgb_put(msg, octet_len);
|
||||||
memcpy(smsp, sms->user_data, ceil(sms->user_data_len*7/8.0));
|
memcpy(smsp, sms->user_data, octet_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
return msg->len - old_msg_len;
|
return msg->len - old_msg_len;
|
||||||
|
|
Loading…
Reference in New Issue