Guest User

Untitled

a guest
Jun 20th, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.40 KB | None | 0 0
  1. else if( type[0] == NATE_CACHE_TYPE_4 )
  2. {
  3. gErrLog.log("[%s:%d] [PASS return error. drop packet hparam=%s]", __FILE__, __LINE__, pPacket->m_hparam);
  4. return;
  5. }
  6. // added by cwlee... for set dirty
  7. else if( type[0] == NATE_CACHE_TYPE_6 )
  8. {
  9. CNatePacket res;
  10. res.makePacket("SETD", 0, target_id.c_str());
  11. broadcast_group(target_id, &sRdcService, &res);
  12. return;
  13. }
  14. GETVALUE(pPacket->m_hparam, len, pos, key, NATE_ID_LEN, ' ');
  15. GETVALUE(pPacket->m_hparam, len, pos, value, NATE_NICK_LEN*3, ' ');
  16.  
  17. usertype ut;
  18. if( ut.loadFromPool(string(target_id.c_str())) )
  19. {
  20. trace("DCUP: find %s, and push", target);
  21.  
  22. // id change
  23. if(!strcmp( key, "ID"))
  24. {
  25. //"ID" must be change password but can't change password so clear user
  26. //But send to user's buddy list changing id
  27. if( !strcmp(ut.getID().c_str(), value ) )
  28. return;
  29.  
  30. if(g_use_encpasswd == false) {
  31. strcpy( id, value );
  32. // 20060406 MBS 아이디 변경시 암호 변경되나 값은 DB에서 받아야함
  33. // 그리고 시간차에 의해 잘못처리될수 있으므로 같은 패킷에 보내줌
  34.  
  35. char md5pass[NATE_PASSWD_LEN + 1] = "";
  36. GETVALUE(pPacket->m_hparam, len, pos, md5pass, NATE_PASSWD_LEN, ' ');
  37. bSendBuddy = true;
  38.  
  39. string strOldID = ut.getID(); // 바뀌기 이전 아이디를 저장한다.
  40. CRdcChannel::sendDOUT( smid_t(ut.getID().c_str()), ut.getCountry() );
  41.  
  42. // 원래 아이디가 존재하는 Memory Pool 영역에 ID, Password 를 바꾸어 다시저장한다.
  43.  
  44. size_t u_idx = g_user_pool.getIDIndex( ut.getID() );
  45. ut.setID( string(id) );
  46. if(VALUECHECK(md5pass , 1, NATE_PASSWD_LEN ))
  47. STRNCPY( ut.pass, md5pass, NATE_PASSWD_LEN );
  48. // g_user_pool.copyItemToPool(ut, u_idx);
  49. g_user_pool.saveToPool(ut, u_idx);
  50.  
  51. // 이전아이디를 맵에서 삭제한다.
  52. map<string,u_info *>::iterator iter = g_user_pool.m_id_map.find(strOldID);
  53. if( iter != g_user_pool.m_id_map.end() )
  54. {
  55. u_info* uf = (*iter).second;
  56. g_user_pool.m_id_map.erase(iter);
Add Comment
Please, Sign In to add comment