Changeset 6405 for trunk/licq

Show
Ignore:
Timestamp:
07/03/08 22:13:49 (5 months ago)
Author:
flynd
Message:

More UIN removed.

Location:
trunk/licq
Files:
13 modified

Legend:

Unmodified
Added
Removed
  • trunk/licq/include/licq_chat.h

    r6347 r6405  
    599599  void SendBackspace(); 
    600600  void SendCharacter(char); 
    601   void SendKick(unsigned long); 
    602   void SendKickNoVote(unsigned long); 
     601  void SendKick(const char* id); 
     602  void SendKickNoVote(const char* id); 
    603603  void SendVoteYes(unsigned long); 
    604604  void SendVoteNo(unsigned long); 
     
    659659 
    660660  void SendBuffer(CBuffer *, unsigned char, 
    661                   unsigned long _nUin = 0, 
    662                   bool bNotIter = true); 
     661      const char* id = NULL, bool bNotIter = true); 
    663662  bool SendBufferToClient(CBuffer *, unsigned char, CChatUser *); 
    664663  void SendBuffer_Raw(CBuffer *); 
  • trunk/licq/include/licq_icqd.h

    r6404 r6405  
    350350  unsigned long icqFetchAutoResponse(const char *_szId, unsigned long _nPPID, bool bServer = false); 
    351351  // Chat Request 
     352  unsigned long icqChatRequest(const char* id, const char *szReason, 
     353     unsigned short nLevel, bool bServer); 
    352354  unsigned long icqChatRequest(unsigned long nUin, const char *szReason, 
     355     unsigned short nLevel, bool bServer); 
     356  unsigned long icqMultiPartyChatRequest(const char* id, 
     357     const char *szReason, const char *szChatUsers, unsigned short nPort, 
    353358     unsigned short nLevel, bool bServer); 
    354359  unsigned long icqMultiPartyChatRequest(unsigned long nUin, 
    355360     const char *szReason, const char *szChatUsers, unsigned short nPort, 
    356361     unsigned short nLevel, bool bServer); 
     362  void icqChatRequestRefuse(const char* id, const char* szReason, 
     363      unsigned short nSequence, const unsigned long nMsgID[], bool bDirect); 
    357364  void icqChatRequestRefuse(unsigned long nUin, const char *szReason, 
    358365      unsigned short nSequence, const unsigned long nMsgID[], bool bDirect); 
     366  void icqChatRequestAccept(const char* id, unsigned short nPort, 
     367      const char* szClients, unsigned short nSequence, 
     368      const unsigned long nMsgID[], bool bDirect); 
    359369  void icqChatRequestAccept(unsigned long nUin, unsigned short nPort, 
    360370      const char* szClients, unsigned short nSequence, 
    361371      const unsigned long nMsgID[], bool bDirect); 
     372  void icqChatRequestCancel(const char* id, unsigned short nSequence); 
    362373  void icqChatRequestCancel(unsigned long nUin, unsigned short nSequence); 
    363374  // File Transfer 
     
    468479  unsigned long icqAuthorizeRefuse(unsigned long nUin, const char *szMessage); 
    469480  unsigned long icqAuthorizeRefuse(const char *szId, const char *szMessage); 
     481  void icqRequestAuth(const char* id, const char *_szMessage); 
    470482  void icqRequestAuth(unsigned long _nUin, const char *_szMessage); 
    471483  void icqAlertUser(unsigned long _nUin); 
     
    594606 
    595607  // SMS 
     608  unsigned long icqSendSms(const char* id, unsigned long ppid, 
     609      const char* number, const char* message); 
    596610  unsigned long icqSendSms(const char *szNumber, const char *szMessage, 
    597611                           unsigned long nUin); 
     
    805819  void RejectEvent(const char* id, CUserEvent* e); 
    806820  ICQUser *FindUserForInfoUpdate(const char *szId, ICQEvent *e, const char *); 
     821  std::string FindUserByCellular(const char* cellular); 
    807822  unsigned long FindUinByCellular(const char *_szCellular); 
    808823 
  • trunk/licq/include/licq_message.h

    r6347 r6405  
    477477{ 
    478478public: 
    479 #if 0 
    480479  CEventUnknownSysMsg(unsigned short _nSubCommand, 
    481480                unsigned short _nCommand, const char *_szId, unsigned long _nPPID, 
    482481                const char *_szMsg, 
    483482                time_t _tTime, unsigned long _nFlags); 
    484 #endif 
    485   CEventUnknownSysMsg(unsigned short _nSubCommand, 
    486                 unsigned short _nCommand, unsigned long _nUin, 
    487                 const char *_szMsg, 
    488                 time_t _tTime, unsigned long _nFlags); 
    489483  ~CEventUnknownSysMsg(); 
    490484  virtual CEventUnknownSysMsg* Copy() const; 
     
    492486protected: 
    493487  void CreateDescription() const; 
    494    unsigned long m_nUin; 
    495488   char *m_szMsg; 
    496 #if 0 
    497489   char *m_szId; 
    498490   unsigned long m_nPPID; 
     491}; 
     492 
    499493#endif 
    500 }; 
    501  
    502 #endif 
  • trunk/licq/include/licq_packets.h

    r6402 r6405  
    944944{ 
    945945public: 
    946   CPU_RequestAuth(unsigned long, const char *); 
     946  CPU_RequestAuth(const char* id, const char *); 
    947947}; 
    948948 
  • trunk/licq/src/fifo.cpp

    r6382 r6405  
    2828#include <cstring> 
    2929#include <cctype> 
     30#include <string> 
    3031#include <sys/types.h> 
    3132#include <unistd.h> 
     
    5758#include "licq_icqd.h" 
    5859 
     60using std::string; 
    5961 
    6062#define ReportMissingParams(cmdname) \ 
     
    469471      if (u != NULL) 
    470472      { 
    471         const char *szNumber = u->GetCellularNumber(); 
    472         if (strlen(szNumber)) 
    473           d->icqSendSms(szNumber, argv[2], u->Uin() ); 
     473        string number = u->GetCellularNumber(); 
     474        gUserManager.DropUser(u); 
     475        if (!number.empty()) 
     476          d->icqSendSms(szId, nPPID, number.c_str(), argv[2]); 
    474477        else 
    475478          gLog.Error("%sUnable to send SMS to %s, no SMS number found.\n", 
    476479                     L_ERRORxSTR, szId); 
    477  
    478         gUserManager.DropUser(u); 
    479480      } 
    480481    } 
     
    501502  } 
    502503 
    503   ICQOwner* owner = gUserManager.FetchOwner(LICQ_PPID, LOCK_R); 
    504   d->icqSendSms(argv[1], argv[2], owner->Uin()); 
    505   gUserManager.DropOwner(owner); 
     504  string id = gUserManager.OwnerId(LICQ_PPID); 
     505  d->icqSendSms(id.c_str(), LICQ_PPID, argv[1], argv[2]); 
    506506  return 0; 
    507507} 
  • trunk/licq/src/history.cpp

    r6177 r6405  
    1717#include <sys/types.h> 
    1818#include <fcntl.h> 
     19#include <string> 
    1920 
    2021// Localization 
     
    3940 
    4041#define MAX_HISTORY_MSG_SIZE 8192 
     42 
     43using std::string; 
    4144 
    4245CUserHistory::CUserHistory() 
     
    250253    { 
    251254      GET_VALID_LINE_OR_BREAK; 
    252       unsigned long nUin = atol(&szResult[1]); 
     255        char* id = strdup(&szResult[1]); 
    253256      GET_VALID_LINE_OR_BREAK; 
    254257      char *szAlias = strdup(&szResult[1]); 
     
    260263      char *szEmail = strdup(&szResult[1]); 
    261264      GET_VALID_LINES; 
    262       e = new CEventAuthRequest(nUin, szAlias, szFName, szLName, szEmail, szMsg, 
    263                             nCommand, tTime, nFlags); 
     265        e = new CEventAuthRequest(id, LICQ_PPID, szAlias, szFName, szLName, 
     266            szEmail, szMsg, nCommand, tTime, nFlags); 
     267        free(id); 
    264268      free(szAlias); 
    265269      free(szFName); 
     
    271275    { 
    272276      GET_VALID_LINE_OR_BREAK; 
    273       unsigned long nUin = atol(&szResult[1]); 
    274       GET_VALID_LINES; 
    275       e = new CEventAuthGranted(nUin, szMsg, nCommand, tTime, nFlags); 
     277        char* id = strdup(&szResult[1]); 
     278      GET_VALID_LINES; 
     279        e = new CEventAuthGranted(id, LICQ_PPID, szMsg, nCommand, tTime, nFlags); 
     280        free(id); 
    276281      break; 
    277282    } 
     
    279284    { 
    280285      GET_VALID_LINE_OR_BREAK; 
    281       unsigned long nUin = atol(&szResult[1]); 
    282       GET_VALID_LINES; 
    283       e = new CEventAuthRefused(nUin, szMsg, nCommand, tTime, nFlags); 
     286        char* id = strdup(&szResult[1]); 
     287      GET_VALID_LINES; 
     288        e = new CEventAuthRefused(id, LICQ_PPID, szMsg, nCommand, tTime, nFlags); 
     289        free(id); 
    284290      break; 
    285291    } 
     
    287293    { 
    288294      GET_VALID_LINE_OR_BREAK; 
    289       unsigned long nUin = atol(&szResult[1]); 
     295        char* id = strdup(&szResult[1]); 
    290296      GET_VALID_LINE_OR_BREAK; 
    291297      char *szAlias = strdup(&szResult[1]); 
     
    296302      GET_VALID_LINE_OR_BREAK; 
    297303      char *szEmail = strdup(&szResult[1]); 
    298       e = new CEventAdded(nUin, szAlias, szFName, szLName, szEmail, 
     304        e = new CEventAdded(id, LICQ_PPID, szAlias, szFName, szLName, szEmail, 
    299305                            nCommand, tTime, nFlags); 
     306        free(id); 
    300307      free(szAlias); 
    301308      free(szFName); 
     
    334341      ContactList vc; 
    335342      bool b = true; 
    336       unsigned long nUin = 0; 
     343      string id; 
    337344      while (true) 
    338345      { 
    339346        GET_VALID_LINE_OR_BREAK; 
    340347        if (b) 
    341           nUin = atol(&szResult[1]); 
    342         else if (nUin != 0) 
    343           vc.push_back(new CContact(nUin, &szResult[1])); 
     348          id = &szResult[1]; 
     349        else if (!id.empty()) 
     350          vc.push_back(new CContact(id.c_str(), LICQ_PPID, &szResult[1])); 
    344351        b = !b; 
    345352      } 
  • trunk/licq/src/icqd-chat.cpp

    r6402 r6405  
    124124{ 
    125125  m_nVersion = u->Version(); 
    126   m_nUin = u->Uin(); 
    127126  m_szId = strdup(u->IdString()); 
     127  m_nUin = strtoul(m_szId, NULL, 10); 
    128128  m_nPPID = u->PPID(); 
    129129  m_nIp = u->Ip(); 
     
    793793  bool bTryDirect = true; 
    794794  bool bResult = false; 
    795   ICQUser *temp_user = gUserManager.FetchUser(u->uin, LOCK_R); 
     795  ICQUser* temp_user = gUserManager.FetchUser(u->szId, u->nPPID, LOCK_R); 
    796796  if (temp_user != NULL) 
    797797  { 
     
    883883  u->m_pClient = new CChatClient(); 
    884884  u->m_pClient->m_nVersion = s->Version(); 
    885   u->m_pClient->m_nUin = s->Owner(); 
    886885  u->m_pClient->m_szId = strdup(s->OwnerId()); 
     886  u->m_pClient->m_nUin = strtoul(u->m_pClient->m_szId, NULL, 10); 
    887887  u->m_pClient->m_nPPID = s->OwnerPPID(); 
    888888  u->m_pClient->m_nIp = s->RemoteIp(); 
     
    10901090 
    10911091      CPChat_ColorFont pin(u->sock.RecvBuffer()); 
    1092       u->uin = pin.Uin(); 
    10931092      u->szId = strdup(pin.Id()); 
     1093      u->uin = strtoul(u->szId, NULL, 10); 
    10941094      u->nPPID = pin.PPID(); 
    10951095//      m_nSession = pin.Session(); 
     
    14621462        unsigned long nUin = u->chatQueue[0] | (u->chatQueue[1] << 8) | 
    14631463          (u->chatQueue[2] << 16) | (u->chatQueue[3] << 24); 
     1464        char id[16]; 
     1465        snprintf(id, 16, "%lu", nUin); 
    14641466 
    14651467        // Deque all the characters 
     
    14711473        for (iter = chatUsers.begin(); iter != chatUsers.end(); ++iter) 
    14721474        { 
    1473           if((*iter)->Uin() == nUin) 
     1475          if (strcmp((*iter)->Id(), id) == 0) 
    14741476            break; 
    14751477        } 
     
    14781480 
    14791481        CBuffer bye(4); 
    1480         SendBuffer(&bye, CHAT_DISCONNECTIONxKICKED, nUin, true); 
     1482        SendBuffer(&bye, CHAT_DISCONNECTIONxKICKED, id, true); 
    14811483 
    14821484        CloseClient(*iter); 
     
    17491751          unsigned long nUin = u->chatQueue[0] | (u->chatQueue[1] << 8) | 
    17501752            (u->chatQueue[2] << 16) | (u->chatQueue[3] << 24); 
     1753          char id[16]; 
     1754          snprintf(id, 16, "%lu", nUin); 
    17511755 
    17521756          // Find the user and say bye-bye to him 
     
    17541758          for (iter = chatUsers.begin(); iter != chatUsers.end(); ++iter) 
    17551759          { 
    1756             if((*iter)->Uin() == nUin) 
     1760            if (strcmp((*iter)->Id(), id) == 0) 
    17571761             break; 
    17581762          } 
     
    17611765 
    17621766          CBuffer bye(4); 
    1763           SendBuffer(&bye, CHAT_DISCONNECTIONxKICKED, nUin, true); 
     1767          SendBuffer(&bye, CHAT_DISCONNECTIONxKICKED, id, true); 
    17641768 
    17651769          CloseClient(*iter); 
     
    18641868//-----CChatManager::SendBuffer---------------------------------------------- 
    18651869void CChatManager::SendBuffer(CBuffer *b, unsigned char cmd, 
    1866                               unsigned long _nUin, 
    1867                               bool bNotIter) 
     1870    const char* id, bool bNotIter) 
    18681871{ 
    18691872  ChatUserList::iterator iter; 
     
    18711874  bool ok = false; 
    18721875 
    1873   if (_nUin != 0) 
     1876  if (id != NULL) 
    18741877  { 
    18751878    for (u_iter = chatUsers.begin(); u_iter != chatUsers.end(); ++u_iter) 
    18761879    { 
    1877       if ((*u_iter)->Uin() == _nUin) 
     1880      if (strcmp((*u_iter)->Id(), id) == 0) 
    18781881        break; 
    18791882    } 
     
    18881891 
    18891892    // Send it to every user 
    1890     if (_nUin == 0) 
     1893    if (id == NULL) 
    18911894    { 
    18921895      for (iter = chatUsers.begin(); iter != chatUsers.end(); ++iter) 
     
    20222025 
    20232026 
    2024 void CChatManager::SendKick(unsigned long _nUin) 
    2025 { 
     2027void CChatManager::SendKick(const char* id) 
     2028{ 
     2029  unsigned long _nUin = strtoul(id, NULL, 10); 
     2030 
    20262031  // Take care of the vote stuff now 
    20272032  // The user we are kicking automatically is a no vote 
     
    20382043  CBuffer buf(4); 
    20392044  buf.PackUnsignedLong(_nUin); 
    2040   SendBuffer(&buf, CHAT_KICK, _nUin, true); 
    2041 } 
    2042  
    2043  
    2044 void CChatManager::SendKickNoVote(unsigned long _nUin) 
    2045 { 
     2045  SendBuffer(&buf, CHAT_KICK, id, true); 
     2046} 
     2047 
     2048 
     2049void CChatManager::SendKickNoVote(const char *id) 
     2050{ 
     2051  unsigned long _nUin = strtoul(id, NULL, 10); 
     2052 
    20462053  // Tell everyone that this user has been kicked 
    20472054  CBuffer buf_TellAll(6); 
     
    20492056  buf_TellAll.PackChar(0x02); 
    20502057  buf_TellAll.PackChar(0x01); 
    2051   SendBuffer(&buf_TellAll, CHAT_KICKxPASS, _nUin, true); 
     2058  SendBuffer(&buf_TellAll, CHAT_KICKxPASS, id, true); 
    20522059 
    20532060  // They don't know if there was a vote or not, they just see they've been kicked 
     
    20552062  buf.PackChar(0x02); 
    20562063  buf.PackChar(0x01); 
    2057   SendBuffer(&buf, CHAT_KICKxYOU, _nUin, false); 
     2064  SendBuffer(&buf, CHAT_KICKxYOU, id, false); 
    20582065 
    20592066  // And close the connection to the kicked user 
     
    20612068  for (iter = chatUsers.begin(); iter != chatUsers.end(); ++iter) 
    20622069  { 
    2063     if((*iter)->Uin() == _nUin) 
     2070    if(strcmp((*iter)->Id(), id) == 0) 
    20642071      break; 
    20652072  } 
     
    20682075 
    20692076  CBuffer bye(4); 
    2070   SendBuffer(&bye, CHAT_DISCONNECTIONxKICKED, _nUin, false); 
     2077  SendBuffer(&bye, CHAT_DISCONNECTIONxKICKED, id, false); 
    20712078 
    20722079  CloseClient(*iter); 
     
    22472254void CChatManager::FinishKickVote(VoteInfoList::iterator iter, bool bPassed) 
    22482255{ 
     2256  char voteId[16]; 
     2257  snprintf(voteId, 16, "%lu", (*iter)->nUin); 
     2258 
    22492259  // Find the person we are kicking in the ChatUserList 
    22502260  ChatUserList::iterator userIter; 
    22512261  for (userIter = chatUsers.begin(); userIter != chatUsers.end(); ++userIter) 
    22522262  { 
    2253     if ((*userIter)->Uin() == (*iter)->nUin) 
     2263    if (strcmp((*userIter)->Id(), voteId) == 0) 
    22542264      break; 
    22552265  } 
     
    22712281 
    22722282  if (bPassed) 
    2273     SendBuffer(&buf, CHAT_KICKxPASS, (*iter)->nUin, true); 
     2283    SendBuffer(&buf, CHAT_KICKxPASS, voteId, true); 
    22742284  else 
    2275     SendBuffer(&buf, CHAT_KICKxFAIL, (*iter)->nUin, true); 
     2285    SendBuffer(&buf, CHAT_KICKxFAIL, voteId, true); 
    22762286 
    22772287  // Send the person a notice if they were kicked 
    22782288  if (bPassed) 
    22792289  { 
    2280     SendBuffer(&buf, CHAT_KICKxYOU, (*iter)->nUin, false); 
     2290    SendBuffer(&buf, CHAT_KICKxYOU, voteId, false); 
    22812291    CloseClient(*userIter); 
    22822292  } 
     
    23212331    if (sz[0] != '\0') nPos += sprintf(&sz[nPos], ", "); 
    23222332    if ((*iter)->Name()[0] == '\0') 
    2323       nPos += sprintf(&sz[nPos], "%lu", (*iter)->Uin()); 
     2333      nPos += sprintf(&sz[nPos], "%s", (*iter)->Id()); 
    23242334    else 
    23252335      nPos += sprintf(&sz[nPos], "%s", (*iter)->Name()); 
     
    25012511 
    25022512  bool bSendIntIp = false; 
    2503   ICQUser *temp_user = gUserManager.FetchUser(rc->u->Uin(), LOCK_R); 
     2513  ICQUser* temp_user = gUserManager.FetchUser(rc->u->Id(), rc->u->PPID(), LOCK_R); 
    25042514  if (temp_user != NULL) 
    25052515  { 
  • trunk/licq/src/icqd-srv.cpp

    r6404 r6405  
    10681068void CICQDaemon::icqRequestAuth(unsigned long _nUin, const char *_szMessage) 
    10691069{ 
    1070   CSrvPacketTcp *p = new CPU_RequestAuth(_nUin, _szMessage); 
     1070  char id[16]; 
     1071  snprintf(id, 16, "%lu", _nUin); 
     1072  icqRequestAuth(id, _szMessage); 
     1073} 
     1074 
     1075void CICQDaemon::icqRequestAuth(const char* id, const char *_szMessage) 
     1076{ 
     1077  CSrvPacketTcp* p = new CPU_RequestAuth(id, _szMessage); 
    10711078  SendEvent_Server(p); 
    10721079} 
     
    17261733                     unsigned long nUin) 
    17271734{ 
    1728   CEventSms *ue = new CEventSms(szNumber, szMessage, ICQ_CMDxSND_THRUxSERVER, TIME_NOW, INT_VERSION); 
    1729   CPU_SendSms *p = new CPU_SendSms(szNumber, szMessage); 
     1735  char id[16]; 
     1736  snprintf(id, 16, "%lu", nUin); 
     1737  return icqSendSms(id, LICQ_PPID, szNumber, szMessage); 
     1738} 
     1739 
     1740unsigned long CICQDaemon::icqSendSms(const char* id, unsigned long ppid, 
     1741    const char* number, const char* message) 
     1742{ 
     1743  CEventSms* ue = new CEventSms(number, message, ICQ_CMDxSND_THRUxSERVER, TIME_NOW, INT_VERSION); 
     1744  CPU_SendSms* p = new CPU_SendSms(number, message); 
    17301745  gLog.Info(tr("%sSending SMS through server (#%hu/#%d)...\n"), L_SRVxSTR, 
    1731             p->Sequence(), p->SubSequence()); 
    1732   ICQEvent *e = SendExpectEvent_Server(nUin, p, ue); 
     1746      p->Sequence(), p->SubSequence()); 
     1747  ICQEvent* e = SendExpectEvent_Server(id, ppid, p, ue); 
    17331748  if (e != NULL) 
    17341749    return e->EventId(); 
     
    21712186unsigned long CICQDaemon::FindUinByCellular(const char *szCellular) 
    21722187{ 
     2188  return strtoul(FindUserByCellular(szCellular).c_str(), NULL, 10); 
     2189} 
     2190 
     2191string CICQDaemon::FindUserByCellular(const char *szCellular) 
     2192{ 
    21732193  char szParsedNumber1[16], szParsedNumber2[16]; 
    2174   unsigned long nUin = 0; 
    2175    
     2194  string id; 
     2195 
    21762196  FOR_EACH_USER_START(LOCK_R) 
    21772197  { 
     
    21792199    ParseDigits(szParsedNumber2, szCellular, 15); 
    21802200    if (!strcmp(szParsedNumber1, szParsedNumber2)) 
    2181       nUin = strtoul(pUser->IdString(), NULL, 10); 
     2201      id = pUser->IdString(); 
    21822202  } 
    21832203  FOR_EACH_USER_END 
    21842204 
    2185   return nUin; 
     2205  return id; 
    21862206} 
    21872207 
     
    37733793          delete [] buf; 
    37743794          //TODO 
    3775           CEventUnknownSysMsg *e = new CEventUnknownSysMsg(nTypeMsg, ICQ_CMDxRCV_SYSxMSGxONLINE, 
    3776                                                            strtoul(szId, (char **)NULL, 10),  
    3777                                                            szMessage, nTimeSent, 0); 
     3795              CEventUnknownSysMsg* e = new CEventUnknownSysMsg(nTypeMsg, ICQ_CMDxRCV_SYSxMSGxONLINE, 
     3796                  szId, LICQ_PPID, szMessage, nTimeSent, 0); 
    37783797 
    37793798          ICQOwner *o = gUserManager.FetchOwner(LICQ_PPID, LOCK_W); 
     
    38563875        CEventSms *eSms = (CEventSms *)eEvent; 
    38573876      //TODO 
    3858         unsigned long nUinSms = FindUinByCellular(eSms->Number()); 
    3859  
    3860         if (nUinSms != 0) 
    3861         { 
     3877      string idSms = FindUserByCellular(eSms->Number()); 
     3878 
     3879      if (!idSms.empty()) 
     3880      { 
    38623881        //TODO 
    3863           ICQUser* u = gUserManager.FetchUser(nUinSms, LOCK_W); 
    3864           gLog.Info(tr("%sSMS from %s - %s (%lu).\n"), L_SBLANKxSTR, eSms->Number(),  
    3865                   u->GetAlias(), nUinSms); 
     3882        ICQUser* u = gUserManager.FetchUser(idSms.c_str(), LICQ_PPID, LOCK_W); 
     3883        gLog.Info(tr("%sSMS from %s - %s (%s).\n"), L_SBLANKxSTR, eSms->Number(), 
     3884            u->GetAlias(), idSms.c_str()); 
    38663885          if (AddUserEvent(u, eEvent)) 
    38673886            m_xOnEventManager.Do(ON_EVENT_SMS, u); 
     
    47534772      unsigned long nUin; 
    47544773      unsigned long nTimeSent; 
    4755        
     4774 
    47564775      nUin = msg.UnpackUnsignedLong(); 
     4776          char id[16]; 
     4777          snprintf(id, 16, "%lu", nUin); 
    47574778 
    47584779      sendTM.tm_year = msg.UnpackUnsignedShort() - 1900; 
     
    48084829    case ICQ_CMDxSUB_AUTHxREQUEST: 
    48094830    { 
    4810       gLog.Info(tr("%sOffline authorization request from %lu.\n"), L_SBLANKxSTR, nUin); 
    4811        
     4831              gLog.Info(tr("%sOffline authorization request from %s.\n"), L_SBLANKxSTR, id); 
     4832 
    48124833      char **szFields = new char *[6];  // alias, first name, last name, email, auth, comment 
    48134834           
     
    48294850          gTranslator.ServerToClient (szFields[5]);  // comment 
    48304851 
    4831           CEventAuthRequest *e = new CEventAuthRequest(nUin, szFields[0], szFields[1], 
    4832                                                        szFields[2], szFields[3], szFields[5], 
    4833                                                       ICQ_CMDxRCV_SYSxMSGxOFFLINE, nTimeSent, 0);