// Replace string for '%' and '_' character
char *ext1_str = NULL;
char *ext2_str = NULL;
+ char *ext3_str = NULL;
ext1_str = MsgStoReplaceString(pSearchString, "_", "\\_");
ext2_str = MsgStoReplaceString(ext1_str, "%", "\\%");
+ ext3_str = MsgStoReplaceString(ext2_str, "'", "''");
// Search - Address, Name
memset(sqlQuery, 0x00, sizeof(sqlQuery));
snprintf(sqlQuery, sizeof(sqlQuery), "SELECT CONV_ID, UNREAD_CNT, SMS_CNT, MMS_CNT, DISPLAY_NAME, \
MAIN_TYPE, SUB_TYPE, MSG_DIRECTION, DISPLAY_TIME, MSG_TEXT \
FROM %s WHERE DISPLAY_NAME LIKE '%%%s%%' ESCAPE '\\' ORDER BY DISPLAY_TIME DESC;",
- MSGFW_CONVERSATION_TABLE_NAME, ext2_str);
+ MSGFW_CONVERSATION_TABLE_NAME, ext3_str);
if (ext1_str) {
free(ext1_str);
ext2_str = NULL;
}
+ if (ext3_str) {
+ free(ext3_str);
+ ext3_str = NULL;
+ }
+
MSG_DEBUG("[%s]", sqlQuery);
if (dbHandle.prepareQuery(sqlQuery) != MSG_SUCCESS) {
char *ext1_str = NULL;
char *ext2_str = NULL;
+ char *ext3_str = NULL;
// Get Name Order
int order = MsgGetContactNameOrder();
// Replace string for '%' and '_' character
ext1_str = MsgStoReplaceString(pSearchCon->pSearchVal, "_", "\\_");
ext2_str = MsgStoReplaceString(ext1_str, "%", "\\%");
+ ext3_str = MsgStoReplaceString(ext2_str, "'", "''");
memset(sqlQuerySubset, 0x00, sizeof(sqlQuerySubset));
snprintf(sqlQuerySubset, sizeof(sqlQuerySubset),
"OR B.DISPLAY_NAME LIKE '%%%s%%' ESCAPE '\\' "
"OR B.FIRST_NAME LIKE '%%%s%%' ESCAPE '\\' "
"OR B.LAST_NAME LIKE '%%%s%%' ESCAPE '\\') ",
- ext2_str, ext2_str, ext2_str, ext2_str, ext2_str, ext2_str);
+ ext3_str, ext3_str, ext3_str, ext3_str, ext3_str, ext3_str);
strncat(sqlQuery, sqlQuerySubset, MAX_QUERY_LEN-strlen(sqlQuery));
if (ext1_str) {
free(ext2_str);
ext2_str = NULL;
}
+
+ if (ext3_str) {
+ free(ext3_str);
+ ext3_str = NULL;
+ }
}
/// address
// Replace string for '%' and '_' character
ext1_str = MsgStoReplaceString(pSearchCon->pAddressVal, "_", "\\_");
ext2_str = MsgStoReplaceString(ext1_str, "%", "\\%");
+ ext3_str = MsgStoReplaceString(ext2_str, "'", "''");
memset(sqlQuerySubset, 0x00, sizeof(sqlQuerySubset));
- snprintf(sqlQuerySubset, sizeof(sqlQuerySubset), "AND B.ADDRESS_VAL LIKE '%%%s%%' ESCAPE '\\' ", ext2_str);
+ snprintf(sqlQuerySubset, sizeof(sqlQuerySubset), "AND B.ADDRESS_VAL LIKE '%%%s%%' ESCAPE '\\' ", ext3_str);
strncat(sqlQuery, sqlQuerySubset, MAX_QUERY_LEN-strlen(sqlQuery));
if (ext1_str) {
free(ext2_str);
ext2_str = NULL;
}
+
+ if (ext3_str) {
+ free(ext3_str);
+ ext3_str = NULL;
+ }
}
/// limit, offset
{
msg_error_t err = MSG_SUCCESS;
- if ((err = MsgOpenContactSvc()) != MSG_SUCCESS) {
- MSG_DEBUG("MsgOpenContactSvc fail.");
- return err;
- }
+ unsigned int retryCnt = 10;
- int errCode = CONTACTS_ERROR_NONE;
+ do {
+ if ((err = MsgOpenContactSvc()) != MSG_SUCCESS) {
+ retryCnt--;
+ MSG_DEBUG("MsgOpenContactSvc fail. Retry count left [%d]", retryCnt);
+ usleep(100 * 1000);
+ }
+ } while (err != MSG_SUCCESS && retryCnt > 0);
if (!isContactSvcConnected) {
MSG_DEBUG("Contact Service Not Opened.");
return MSG_ERR_UNKNOWN;
}
+ int errCode = CONTACTS_ERROR_NONE;
+
if (cb != NULL)
cbFunction = cb;