Changeset 6417
- Timestamp:
- 07/04/08 05:44:34 (2 months ago)
- Location:
- trunk/licq
- Files:
-
- 2 modified
-
include/licq_user.h (modified) (12 diffs)
-
src/user.cpp (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/licq/include/licq_user.h
r6398 r6417 431 431 { 432 432 public: 433 ICQUser(unsigned long id, char *filename);434 ICQUser(unsigned long id);435 433 ICQUser(const char *id, unsigned long ppid, char *filename); 436 434 ICQUser(const char *id, unsigned long ppid, bool bTempUser = false); … … 595 593 bool EnableSave() { return m_bEnableSave; } 596 594 bool ShowAwayMsg() { return m_bShowAwayMsg; } 597 unsigned long Uin() { return m_nUin; }598 char *UinString() { return m_szUinString; }599 595 unsigned short Sequence(bool = false); 600 596 char Mode() { return m_nMode; } … … 924 920 void Unlock(); 925 921 922 // Deprecated functions, to be removed 923 LICQ_DEPRECATED ICQUser(unsigned long id, char *filename); 924 LICQ_DEPRECATED ICQUser(unsigned long id); 925 LICQ_DEPRECATED unsigned long Uin() const; 926 LICQ_DEPRECATED const char* UinString() const { return m_szId; } 927 926 928 protected: 927 929 ICQUser() { /* ICQOwner inherited constructor - does nothing */ } … … 937 939 void LoadPictureInfo(); 938 940 void LoadLicqInfo(); 939 void Init(unsigned long nUin);940 941 void Init(const char *, unsigned long); 941 942 bool LoadInfo(); … … 956 957 void SetIdleSince(time_t t) { m_nIdleSince = t; } 957 958 void SetRegisteredTime(time_t t) { m_nRegisteredTime = t; } 959 960 // Deprecated functions, to be removed 961 LICQ_DEPRECATED void Init(unsigned long nUin); 958 962 959 963 CIniFile m_fConf; … … 973 977 unsigned short m_nPort, m_nLocalPort, m_nConnectionVersion; 974 978 unsigned short m_nTyping; 975 unsigned long m_nUin, 976 m_nStatus; 979 unsigned long m_nStatus; 977 980 UserGroupList myGroups; /**< List of user groups */ 978 981 unsigned long mySystemGroups; /**< Bitmask for system groups */ … … 986 989 char *m_szCustomAutoResponse; 987 990 char *m_szId; 988 char m_szUinString[13];989 991 bool m_bOnlineNotify, 990 992 m_bSendIntIp, … … 1105 1107 { 1106 1108 public: 1107 ICQOwner();1108 1109 ICQOwner(const char *, unsigned long); 1109 1110 virtual ~ICQOwner(); … … 1117 1118 void SetHideIp(bool b) { m_bHideIp = b; SaveLicqInfo(); } 1118 1119 void SetSavePassword(bool b) { m_bSavePassword = b; SaveLicqInfo(); } 1119 void SetUin(unsigned long n) { m_nUin = n; SaveLicqInfo(); }1120 1120 void SetId(const char *s) { SetString(&m_szId, s); SaveLicqInfo(); } 1121 1121 void SetRandomChatGroup(unsigned long n) { m_nRandomChatGroup = n; SaveLicqInfo(); } … … 1125 1125 unsigned long RandomChatGroup() { return m_nRandomChatGroup; } 1126 1126 unsigned long AddStatusFlags(unsigned long nStatus); 1127 1128 // Deprecated functions, to be removed 1129 LICQ_DEPRECATED void SetUin(unsigned long n); 1127 1130 1128 1131 // Server Side List functions … … 1292 1295 1293 1296 // ICQ Protocol only (from original Licq) 1294 unsigned long AddUser(ICQUser *); 1295 void RemoveUser(unsigned long); 1296 ICQUser *FetchUser(unsigned long, unsigned short); 1297 void AddUser(ICQUser *); 1297 1298 void DropUser(ICQUser *); 1298 bool IsOnList(unsigned long nUin); 1299 1300 // Deprecated user functions, to be removed 1301 LICQ_DEPRECATED ICQUser *FetchUser(unsigned long, unsigned short); 1302 LICQ_DEPRECATED void RemoveUser(unsigned long); 1303 LICQ_DEPRECATED bool IsOnList(unsigned long nUin); 1299 1304 1300 1305 // Deprecated owner functions, to be removed … … 1483 1488 1484 1489 // Deprecated group manipulation functions 1485 void AddUserToGroup(unsigned long _nUin, unsigned short _nGroup);1486 void RemoveUserFromGroup(unsigned long _nUin, unsigned short _nGroup);1490 LICQ_DEPRECATED void AddUserToGroup(unsigned long _nUin, unsigned short _nGroup); 1491 LICQ_DEPRECATED void RemoveUserFromGroup(unsigned long _nUin, unsigned short _nGroup); 1487 1492 1488 1493 /** -
trunk/licq/src/user.cpp
r6401 r6417 854 854 * The user is write locked upon return of this function 855 855 *-------------------------------------------------------------------------*/ 856 unsigned long CUserManager::AddUser(ICQUser *pUser) 857 { 858 AddUser(pUser, pUser->IdString(), LICQ_PPID); 859 return pUser->Uin(); 856 void CUserManager::AddUser(ICQUser *pUser) 857 { 858 AddUser(pUser, pUser->IdString(), pUser->PPID()); 860 859 } 861 860 … … 866 865 void CUserManager::RemoveUser(unsigned long _nUin) 867 866 { 868 ICQUser *u = FetchUser(_nUin, LOCK_R); 869 char *szId = u->IdString(); 870 unsigned long nPPID = u->PPID(); 871 DropUser(u); 872 RemoveUser(szId, nPPID); 867 char szId[16]; 868 snprintf(szId, 16, "%lu", _nUin); 869 RemoveUser(szId, LICQ_PPID); 873 870 } 874 871 … … 1366 1363 void CUserManager::DropOwner() 1367 1364 { 1368 DropOwner(LICQ_PPID); 1365 LockOwnerList(LOCK_R); 1366 OwnerList::iterator iter; 1367 for (iter = m_vpcOwners.begin(); iter != m_vpcOwners.end(); ++iter) 1368 { 1369 if ((*iter)->PPID() == LICQ_PPID) 1370 { 1371 (*iter)->Unlock(); 1372 break; 1373 } 1374 } 1375 UnlockOwnerList(); 1369 1376 } 1370 1377 … … 2322 2329 m_szId = 0; 2323 2330 m_nPPID = _nPPID; 2324 2331 2325 2332 // gui plugin compat 2326 if (m_nPPID == LICQ_PPID && m_szId)2327 m_nUin = strtoul(m_szId, (char **)NULL, 10);2328 else2329 m_nUin = 0;2330 2333 SetStatus(ICQ_STATUS_OFFLINE); 2331 2334 SetAutoResponse(""); … … 2367 2370 m_szClientInfo = NULL; 2368 2371 2369 snprintf(m_szUinString, 12, "%lu", m_nUin);2370 m_szUinString[12] = '\0';2371 2372 2372 pthread_rdwr_init_np (&mutex_rw, NULL); 2373 pthread_rdwr_set_name(&mutex_rw, m_szUinString); 2373 pthread_rdwr_set_name(&mutex_rw, m_szId); 2374 } 2375 2376 unsigned long ICQUser::Uin() const 2377 { 2378 return strtoul(m_szId, NULL, 0); 2374 2379 } 2375 2380 … … 3873 3878 3874 3879 //-----ICQOwner::constructor---------------------------------------------------- 3875 ICQOwner::ICQOwner()3876 {3877 gLog.Info(tr("%sOwner configuration.\n"), L_INITxSTR);3878 char szTemp[MAX_LINE_LEN];3879 char filename[MAX_FILENAME_LEN];3880 m_bException = false;3881 m_bSavePassword = true;3882 m_szPassword = NULL;3883 m_nPDINFO = 0;3884 3885 Init("0", LICQ_PPID);3886 //SetOnContactList(true);3887 m_bOnContactList = true;3888 3889 // Get data from the config file3890 snprintf(filename, MAX_FILENAME_LEN - 1, "%s/owner.Licq", BASE_DIR);3891 filename[MAX_FILENAME_LEN - 1] = '\0';3892 3893 // Make sure owner.Licq is mode 06003894 if (chmod(filename, S_IRUSR | S_IWUSR) == -1)3895 {3896 gLog.Warn(tr("%sUnable to set %s to mode 0600. Your ICQ password is vulnerable.\n"),3897 L_WARNxSTR, filename);3898 }3899 3900 m_fConf.SetFileName(filename);3901 LoadInfo();3902 // Owner encoding fixup to be UTF-8 by default3903 if (strcmp(m_szEncoding, "") == 0)3904 SetString(&m_szEncoding, "UTF-8");3905 m_fConf.ReadNum("Uin", m_nUin, 0);3906 snprintf(m_szUinString, 12, "%lu", m_nUin);3907 m_szUinString[12] = '\0';3908 if (m_szId) free (m_szId);3909 m_szId = strdup(m_szUinString);3910 m_fConf.ReadStr("Password", szTemp, "", false);3911 SetPassword(&szTemp[1]); // skip leading space since we didn't trim3912 m_fConf.ReadBool("WebPresence", m_bWebAware, false);3913 m_fConf.ReadBool("HideIP", m_bHideIp, false);3914 m_fConf.ReadNum("RCG", m_nRandomChatGroup, ICQ_RANDOMxCHATxGROUP_NONE);3915 m_fConf.ReadStr("AutoResponse", szTemp, "");3916 m_fConf.ReadNum("SSTime", (unsigned long&)m_nSSTime, 0L);3917 m_fConf.ReadNum("SSCount", m_nSSCount, 0);3918 m_fConf.ReadNum("PDINFO", m_nPDINFO, 0);3919 3920 SetAutoResponse(szTemp);3921 3922 m_fConf.CloseFile();3923 3924 snprintf(filename, MAX_FILENAME_LEN - 1, "%s/%s/owner.history", BASE_DIR, HISTORY_DIR);3925 SetHistoryFile(filename);3926 3927 if (m_nTimezone != SystemTimezone() && m_nTimezone != TIMEZONE_UNKNOWN)3928 {3929 gLog.Warn(tr("%sCurrent Licq GMT offset (%d) does not match system GMT offset (%d).\n"3930 "%sUpdate general info on server to fix.\n"),3931 L_WARNxSTR, m_nTimezone, SystemTimezone(), L_BLANKxSTR);3932 }3933 3934 //if owner timestamps do not exist, set them to current time3935 unsigned long nTime = time(NULL);3936 3937 /* if (m_nClientTimestamp == 0)3938 m_nClientTimestamp = nTime;*/3939 if (m_nClientInfoTimestamp == 0)3940 m_nClientInfoTimestamp = nTime;3941 if (m_nClientStatusTimestamp == 0)3942 m_nClientStatusTimestamp = nTime;3943 3944 SetEnableSave(true);3945 }3946 3947 3880 ICQOwner::ICQOwner(const char *_szId, unsigned long _nPPID) 3948 3881 { … … 4040 3973 } 4041 3974 4042 3975 void ICQOwner::SetUin(unsigned long uin) 3976 { 3977 char id[16]; 3978 snprintf(id, 16, "%lu", uin); 3979 free(m_szId); 3980 m_szId = strdup(id); 3981 m_nPPID = LICQ_PPID; 3982 SaveLicqInfo(); 3983 } 4043 3984 4044 3985 unsigned long ICQOwner::AddStatusFlags(unsigned long s)
