char *find_ld_path(char *line) {
int loc;
char *ldpath = NULL;
- char *start_p = NULL;
int find_loc = 0;
ldpath = strstr(line, "LD_LIBRARY_PATH");
return NULL;
}
if (ldpath[loc] == '=') {
- start_p = &ldpath[loc];
break;
}
}
}
/* clear old contents */
- ftruncate(fd, 0);
+ if (ftruncate(fd, 0) < 0) {
+ log_msg(MSGL_ERROR, "%s at %s(%d)\n", strerror(errno), __FILE__, __LINE__);
+ close(fd);
+ return -1;
+ }
memset(buf, 0, sizeof(buf));
sprintf(buf, "%d", (int)getpid());
- write(fd, buf, strlen(buf));
+ if (write(fd, buf, strlen(buf)) < 0) {
+ log_msg(MSGL_ERROR, "%s at %s(%d)\n", strerror(errno), __FILE__, __LINE__);
+ close(fd);
+ return -1;
+ }
#ifndef _WIN32
chmod(pidfname, S_IRWXU | S_IRWXG | S_IRWXO);
#include <time.h>
#include "sms_util.h"
+#include "sms_tool.h"
i++;
ucs2Buf[0] = (g_GSM7BitToUCS2TableExt[ pSrcText[i] ] & 0xFF00) >> 8;
ucs2Buf[1] = g_GSM7BitToUCS2TableExt[ pSrcText[i] ] & 0x00FF;
- MsgConvertUCS2toUTF8(&utf8Buf, 256, ucs2Buf, 2);
+ MsgConvertUCS2toUTF8(utf8Buf, 256, ucs2Buf, 2);
pDestText[outTextLen++] = utf8Buf[0];
}
else
fprintf(stderr, "upperByte is not 0x00\n");
ucs2Buf[0] = upperByte;
ucs2Buf[1] = lowerByte;
- MsgConvertUCS2toUTF8(&utf8Buf, 256, ucs2Buf, 2);
+ MsgConvertUCS2toUTF8(utf8Buf, 256, ucs2Buf, 2);
pDestText[outTextLen++] = utf8Buf[0];
pDestText[outTextLen++] = utf8Buf[1];
fprintf(stderr,"upperByte:%x, lowerByte:%x\n", upperByte, lowerByte);
*/
int MsgConvertUTF8toUCS2(unsigned char *pDestText, int maxLength, const unsigned char *pSrcText, int srcTextLen)
{
- int i, j;
- int textLen;
+ int textLen;
unsigned char *unicodeTemp = (unsigned char*)pDestText;
int ucs2Length = 0;
int remainedBuffer = maxLength;
const unsigned char * pTempDestText = pDestText;
#endif
- i = j = 0;
-
if(maxLength == 0 || pSrcText == NULL || pDestText == NULL)
{
fprintf(stderr, "UTF8 to UCS2 Failed as text length is 0\n");
return -1;
- }
+ }
// null terminated string
if ( srcTextLen == -1 )
if (cd > 0)
{
- err = g_iconv(cd, (char**)&pSrcText, (gsize*)&textLen, (char**)&unicodeTemp, (gsize*)&remainedBuffer);
+ err = g_iconv(cd, (char**)&pSrcText, (gsize*)&textLen, (char**)&unicodeTemp, (gsize*)&remainedBuffer);
+ if (err < 0) {
+ fprintf(stderr, "g_iconv has failed\n");
+ g_iconv_close(cd);
+ return err;
+ }
}
ucs2Length = maxLength - remainedBuffer;
*/
int MsgConvertUCS2toUTF8(unsigned char *pDestText, int maxLength, const unsigned char *pSrcText, int srcTextLen)
{
- int i , j ;
int remainedBuffer = maxLength;
int utf8Length;
#endif
unsigned char * pTempDestText = pDestText;
- i= j = 0;
if(srcTextLen == 0 || pSrcText == NULL || pDestText == NULL || maxLength == 0)
{
fprintf(stderr, "UCS2 to UTF8 Failed as text length is 0\n");
return FALSE;
- }
+ }
GIConv cd;
int err=0;
if (cd > 0)
{
- err = g_iconv(cd, (char**)&pSrcText, (gsize*)&srcTextLen, (char**)&pDestText, (gsize*)&remainedBuffer);
+ err = g_iconv(cd, (char**)&pSrcText, (gsize*)&srcTextLen, (char**)&pDestText, (gsize*)&remainedBuffer);
+ if (err < 0) {
+ fprintf(stderr, "g_iconv has failed\n");
+ g_iconv_close(cd);
+ return err;
+ }
}
utf8Length = maxLength - remainedBuffer;
*/
int MsgConvertGSM7bitToUTF8(unsigned char *pDestText, int maxLength, const unsigned char *pSrcText, int srcTextLen)
{
- int utf8Length = 0;
+ // FIXME: I don't know why this function returns ucs2 instead of utf8. should check later.
+ //int utf8Length = 0;
int ucs2Length = 0;
int maxUCS2Length = srcTextLen; // max # of UCS2 chars, NOT bytes. when all gsm7 chars are only one byte(-there is no extenstion), UCS2Length is maxUCS2 Length. otherwise(ex: gsm7 char starts with 0x1b) UCS2Length must be less than gsm7 legnth
unsigned short pUCS2Text[maxUCS2Length];
size = strlen((char*)tpdu_deliver.userData);
packet[index++] = size + 1;
memset(tmp_buff, '\0', BUFF_SIZE);
- pos = MsgConvertUTF8ToGSM7bit ( tmp_buff, BUFF_SIZE, (char*)tpdu_deliver.userData, size);
+ pos = MsgConvertUTF8ToGSM7bit ( tmp_buff, BUFF_SIZE, (unsigned char*)tpdu_deliver.userData, size);
if(pos < 0) {
fprintf(stderr, "EncodeSmsDeliverTpdu: UTF8 to GSM7bit Failed as text length is 0\n");
*rawdata_len = index;
size = strlen((char*)tpdu_deliver.userData) * 2;
packet[index++] = size; //one unicode has 2 bytes
memset(tmp_buff, '\0', BUFF_SIZE);
- pos = MsgConvertUTF8toUCS2 ( tmp_buff, BUFF_SIZE, (char*)tpdu_deliver.userData, size );
+ pos = MsgConvertUTF8toUCS2 ( tmp_buff, BUFF_SIZE, (unsigned char*)tpdu_deliver.userData, size );
if(pos < 0) {
fprintf(stderr, "EncodeSmsDeliverTpdu: UTF8 to UCS2 Failed as text length is 0\n");
*rawdata_len = index;
}
switch(tpdu_submit->dcs.alphabetType) {
- case TAPI_NETTEXT_ALPHABET_DEFAULT:
+ case TAPI_NETTEXT_ALPHABET_DEFAULT:
//size = SmsUtilUnpackGSMCode((char *)tpdu_submit->userData, inData, (UINT8) tpdu_submit->udl);
{
- int i;
BYTE tmpData[TAPI_NETTEXT_SMDATA_SIZE_MAX+1];
memset( tmpData, 0x00, TAPI_NETTEXT_SMDATA_SIZE_MAX + 1 );
memcpy( (void*) tmpData, (void*)(inData + udhl), tpdu_submit->udl - udhl);
memset(tmp_buff, '\0', BUFF_SIZE);
//MsgConvertGSM7bitToUTF8( tmp_buff, BUFF_SIZE, (char *)tpdu_submit->userData, size );
- MsgConvertGSM7bitToUTF8( tmp_buff, BUFF_SIZE, (char *)(tpdu_submit->userData + udhl), size );
+ MsgConvertGSM7bitToUTF8( tmp_buff, BUFF_SIZE, (unsigned char *)(tpdu_submit->userData + udhl), size );
memcpy(tpdu_submit->userData, inData, udhl);
memcpy(tpdu_submit->userData + udhl, tmp_buff, size);
- break;
+ break;
case TAPI_NETTEXT_ALPHABET_8BIT:
SmsUtilUnpackGSM8Code((char *)tpdu_submit->userData, inData, (UINT8) tpdu_submit->udl);
break;
- case TAPI_NETTEXT_ALPHABET_UCS2:
+ case TAPI_NETTEXT_ALPHABET_UCS2:
//size = SmsUtilUnpackUCS2Code((char *)tpdu_submit->userData, inData, (UINT8) tpdu_submit->udl);
memcpy((void*)tpdu_submit->userData, (void*) inData, tpdu_submit->udl );
memset(tmp_buff, '\0', BUFF_SIZE);
- MsgConvertUCS2toUTF8( tmp_buff, BUFF_SIZE, (char *)tpdu_submit->userData, (UINT8) tpdu_submit->udl );
+ MsgConvertUCS2toUTF8( tmp_buff, BUFF_SIZE, (unsigned char *)tpdu_submit->userData, (UINT8) tpdu_submit->udl );
//memcpy(tpdu_submit->userData, tmp_buff, size);
break;
default:
memset( tmp_buff, '\0', BUFF_SIZE);
size = strlen((char*)cb_msg.message);
- MsgConvertUTF8ToGSM7bit ( tmp_buff, BUFF_SIZE, (char *)cb_msg.message, size );
+ MsgConvertUTF8ToGSM7bit(tmp_buff, BUFF_SIZE, (unsigned char *)cb_msg.message, size);
memcpy( cb_msg.message, tmp_buff, size );
pos =SmsUtilPackGSMCode( packet + index, (char *)cb_msg.message, strlen((char *)cb_msg.message));
index += pos;
--- /dev/null
+/*
+ * telephony-emulator
+ *
+ * Copyright (c) 2000 - 2013 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact:
+ * Sooyoung Ha <yoosah.ha@samsung.com>
+ * Sangho Park <sangho.p@samsung.com>
+ * SeokYeon Hwang <syeon.hwang@samsung.com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributors:
+ * - S-Core Co., Ltd
+ *
+ */
+
+#ifndef _SMS_TOOL_H_
+#define _SMS_TOOL_H_
+
+int MsgConvertGSM7bitToUCS2(unsigned char *pDestText, int maxLength, const unsigned char *pSrcText, int srcTextLen);
+int MsgConvertGSM7bitToUTF8(unsigned char *pDestText, int maxLength, const unsigned char *pSrcText, int srcTextLen);
+int MsgConvertLocaleToUTF8(unsigned char *pDestText, int maxLength, const unsigned char *pSrcText, int srcTextLen);
+int MsgConvertUCS2toGSM7bit(unsigned char *pDestText, int maxLength, const unsigned char *pSrcText, int srcTextLen, BOOL *bUnknown);
+int MsgConvertUCS2toUTF8(unsigned char *pDestText, int maxLength, const unsigned char *pSrcText, int srcTextLen);
+int MsgConvertUTF8ToGSM7bit(unsigned char *pDestText, int maxLength, const unsigned char *pSrcText, int srcTextLen);
+int MsgConvertUTF8toUCS2(unsigned char *pDestText, int maxLength, const unsigned char *pSrcText, int srcTextLen);
+
+#endif /* _SMS_TOOL_H_ */
UINT8 SmsUtilEncodeValidity( BYTE* pValidity, TapiNetTextVP* pVP );
+char* SmsUtilUnpackGSM8Code( char* szData, const BYTE* pIn, int in_len );
+int SmsUtilpackGSM8Code( BYTE* pOut, const char* szData, int in_len );
+void SmsUtilDecodeAddrField_sca(char *diallingNum, unsigned char* pAddrField, int *result_ton, int *result_npi );
+void SmsUtilDecodeAddrField_dst(char *diallingNum, unsigned char* pAddrField, int *result_ton, int *result_npi );
+int SmsReadSMSCfromSIM(unsigned char* pAddrFiled);
+int SmsUtilEncodeAddrField_sca(unsigned char* pAddrField, unsigned char* diallingNum, int dialnumLen, int ton, int npi);
+int SmsUtilEncodeAddrField_dst(unsigned char* pAddrField, unsigned char* diallingNum, int dialnumLen, int ton, int npi );
+
#endif /* _SMS_UTIL_H_ */
if (pdata)
free(pdata);
- return 0;
+ return (nretn < 0 ? nretn : 0);
}
return;
}
- printf(title);
+ printf("%s", title);
// save pointer
p = (unsigned char *)rawdata;
/********************************* Functions ****************************************/
char *readline(void);
+char* read_cmd_line(void);
+char* find_new_line(char* ptr, bool sms);
+
void prv_byte_to_char(unsigned char aByte, char* hexaCharP);
void prv_bytes_to_hexadecimal_string(unsigned char* bytesP, int bytesSize, char* hexaStringP, int* hexaStringSize);
/////////////////////////////////////////////////////////////////////
int RxPWR_DefaultPower(char* atmsg);
+int at_RxPWR_DefaultPower(char* atmsg);
int at_rx_power_up_exec(char* atmsg);
int at_rx_online_exec(char* atmsg);
unsigned char* at_rx_sms_param_get(unsigned char* len);
int at_rx_sms_param_set(char* atmsg);
-static void at_rx_sms_param_init(void);
int sms_param_set_vconf(void);
int at_tx_display_icon_info_noti(void *data, int len);
int at_tx_display_icon_info_resp(void *data, int len);
+int at_tx_display_rssi_info_noti(void *data, int len);
#endif
#include "logmsg.h"
+int at_tx_sim_sec_check_password_res(void* ptr_data);
+
int at_tx_sim_sec_get_imsi_res(void* ptr_data, int data_len);
int at_tx_sim_sec_set_pin_status_res(int error);
//090225
int vgsm_ss_sqlite_cw_check_exist (int);
+int get_incoming_video_call_barring_state(void);
+int get_outgoing_video_call_barring_state(void);
+int get_incoming_voice_call_barring_state(void);
+int get_outgoing_voice_call_barring_state(void);
+int send_call_barring_entry(call_barring_entry_t* entry);
+void set_incoming_video_call_barring_state(int state);
+void set_outgoing_video_call_barring_state(int state);
+void set_incoming_voice_call_barring_state(int state);
+void set_outgoing_voice_call_barring_state(int state);
+
#endif
#ifndef _OEM_RX_SECURITY_H_
#define _OEM_RX_SECURITY_H_
+int oem_rx_sim_sec_check_password_req(void* ptr_data, int data_len);
int oem_rx_sim_sec_get_imsi_req(void* ptr_data, int data_len);
int oem_tx_display_icon_info_noti(void *data, int len);
int oem_tx_display_icon_info_resp(void *data, int len);
+int oem_tx_display_rssi_info_noti(void *data, int len);
#endif
#ifndef _OEM_TX_SECURITY_H_
#define _OEM_TX_SECURITY_H_
+int oem_tx_sim_sec_check_password_res(void* ptr_data);
int oem_tx_sim_sec_get_imsi_res(void* ptr_data, int data_len);
#ifndef _SERVER_COMMON_CALL_H_
#define _SERVER_COMMON_CALL_H_
+#include <stdbool.h>
#include "vgsm_call.h"
#include "vgsm_ss.h"
#include "at_recv.h"
void get_call_list( gsm_call_list_t *list );
int release_all_held_call(void);
int release_all_active_call(void);
+int release_incoming_call(void);
+int active_waiting_or_held_call(bool onWaiting);
int drop_call( int call_id );
int is_prev_ss_state(ss_hold_act_state_e_type prev_state);
void set_ss_state(ss_hold_act_state_e_type state);
/* APIs for ss_manage_call */
int server_rx_call_release_all_held(void);
int server_rx_call_release_all_active(void);
+int server_rx_call_release_incoming(void);
int server_rx_call_release_single(int call_id);
int server_rx_call_swap(void);
int server_rx_call_split_conf(int call_id);
#ifndef _SERVER_RX_SECURITY_H_
#define _SERVER_RX_SECURITY_H_
+int server_rx_sim_sec_check_password_req(void* ptr_data, int data_len);
+
int server_rx_sim_sec_get_imsi_req(void* ptr_data, int data_len);
int server_rx_sim_sec_set_pin_status_req(void* ptr_data, int data_len);