From: Sergey K. <se...@us...> - 2002-08-22 16:05:18
|
Update of /cvsroot/licq/licq/src In directory usw-pr-cvs1:/tmp/cvs-serv13700/licq/src Modified Files: icqpacket.cpp Log Message: More complete SMS support: - Proper handling of send sms acks. - Processing incoming sms (not heavily tested). - Introduced simple xml tags parsing function GetXmlTag. - "Phone" and "Chars left" fields in SendSMS window. - Cellular phone number in sms stored in the history. Index: icqpacket.cpp =================================================================== RCS file: /cvsroot/licq/licq/src/icqpacket.cpp,v retrieving revision 1.52 retrieving revision 1.53 diff -u -d -r1.52 -r1.53 --- icqpacket.cpp 11 Aug 2002 00:50:20 -0000 1.52 +++ icqpacket.cpp 22 Aug 2002 16:05:16 -0000 1.53 @@ -1438,26 +1438,22 @@ } //-----SendSms----------------------------------------------------------------- -CPU_SendSms::CPU_SendSms(unsigned long nDestinationUin, const char *szMessage) +CPU_SendSms::CPU_SendSms(const char *szNumber, const char *szMessage) : CPU_CommonFamily(ICQ_SNACxFAM_VARIOUS, ICQ_SNACxMETA_INFO) { m_nMetaCommand = 0x8214; - m_nDestinationUin = nDestinationUin; char szXmlStr[460]; - char szTime[26]; + char szTime[30]; time_t tTime; + struct tm *tmTime; time(&tTime); - ctime_r(&tTime, szTime); - char *p = strchr(szTime, '\n'); - *p = '\0'; + tmTime = gmtime(&tTime); + strftime(szTime, 30, "%a, %d %b %Y %T %Z", tmTime); - ICQUser *u = gUserManager.FetchUser(nDestinationUin, LOCK_R); - char szCellularNumber[16]; - szCellularNumber[0] = '+'; - ParseDigits(&szCellularNumber[1], 15, u->GetCellularNumber()); - gUserManager.DropUser(u); + char szParsedNumber[16] = "+"; + ParseDigits(&szParsedNumber[1], szNumber, 15); ICQOwner *o = gUserManager.FetchOwner(LOCK_R); char szUin[13]; @@ -1465,7 +1461,7 @@ snprintf(szUin, 12, "%lu", o->Uin()); snprintf(szXmlStr, 460, "<icq_sms_message><destination>%s</destination><text>%.160s</text><codepage>1252</codepage><encoding>utf8</encoding><senders_UIN>%s</senders_UIN><senders_name>%s</senders_name><delivery_receipt>Yes</delivery_receipt><time>%s</time></icq_sms_message>", - szCellularNumber, szMessage, szUin, o->GetAlias(), szTime); + szParsedNumber, szMessage, szUin, o->GetAlias(), szTime); gUserManager.DropOwner(); int nLenXmlStr = strlen_safe(szXmlStr) + 1; |