Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- else if( type[0] == NATE_CACHE_TYPE_4 )
- {
- gErrLog.log("[%s:%d] [PASS return error. drop packet hparam=%s]", __FILE__, __LINE__, pPacket->m_hparam);
- return;
- }
- // added by cwlee... for set dirty
- else if( type[0] == NATE_CACHE_TYPE_6 )
- {
- CNatePacket res;
- res.makePacket("SETD", 0, target_id.c_str());
- broadcast_group(target_id, &sRdcService, &res);
- return;
- }
- GETVALUE(pPacket->m_hparam, len, pos, key, NATE_ID_LEN, ' ');
- GETVALUE(pPacket->m_hparam, len, pos, value, NATE_NICK_LEN*3, ' ');
- usertype ut;
- if( ut.loadFromPool(string(target_id.c_str())) )
- {
- trace("DCUP: find %s, and push", target);
- // id change
- if(!strcmp( key, "ID"))
- {
- //"ID" must be change password but can't change password so clear user
- //But send to user's buddy list changing id
- if( !strcmp(ut.getID().c_str(), value ) )
- return;
- if(g_use_encpasswd == false) {
- strcpy( id, value );
- // 20060406 MBS 아이디 변경시 암호 변경되나 값은 DB에서 받아야함
- // 그리고 시간차에 의해 잘못처리될수 있으므로 같은 패킷에 보내줌
- char md5pass[NATE_PASSWD_LEN + 1] = "";
- GETVALUE(pPacket->m_hparam, len, pos, md5pass, NATE_PASSWD_LEN, ' ');
- bSendBuddy = true;
- string strOldID = ut.getID(); // 바뀌기 이전 아이디를 저장한다.
- CRdcChannel::sendDOUT( smid_t(ut.getID().c_str()), ut.getCountry() );
- // 원래 아이디가 존재하는 Memory Pool 영역에 ID, Password 를 바꾸어 다시저장한다.
- size_t u_idx = g_user_pool.getIDIndex( ut.getID() );
- ut.setID( string(id) );
- if(VALUECHECK(md5pass , 1, NATE_PASSWD_LEN ))
- STRNCPY( ut.pass, md5pass, NATE_PASSWD_LEN );
- // g_user_pool.copyItemToPool(ut, u_idx);
- g_user_pool.saveToPool(ut, u_idx);
- // 이전아이디를 맵에서 삭제한다.
- map<string,u_info *>::iterator iter = g_user_pool.m_id_map.find(strOldID);
- if( iter != g_user_pool.m_id_map.end() )
- {
- u_info* uf = (*iter).second;
- g_user_pool.m_id_map.erase(iter);
Add Comment
Please, Sign In to add comment