diff options
23 files changed, 2749 insertions, 3442 deletions
diff --git a/protocols/AimOscar/src/aim.cpp b/protocols/AimOscar/src/aim.cpp index 2355754267..6d595ae8e9 100644 --- a/protocols/AimOscar/src/aim.cpp +++ b/protocols/AimOscar/src/aim.cpp @@ -16,6 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+
#include "stdafx.h"
char AIM_CAP_MIRANDA[16] = "MirandaA";
@@ -37,7 +38,7 @@ OBJLIST<CAimProto> g_Instances(1, sttCompareProtocols); /////////////////////////////////////////////////////////////////////////////////////////
// Dll entry point
-BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD /*fdwReason*/,LPVOID /*lpvReserved*/)
+BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD /*fdwReason*/, LPVOID /*lpvReserved*/)
{
hInstance = hinstDLL;
return TRUE;
@@ -71,7 +72,7 @@ extern "C" __declspec(dllexport) const PLUGININFOEX* MirandaPluginInfoEx(DWORD m /////////////////////////////////////////////////////////////////////////////////////////
// Interface information
-extern "C" __declspec(dllexport) const MUUID MirandaInterfaces[] = {MIID_PROTOCOL, MIID_LAST};
+extern "C" __declspec(dllexport) const MUUID MirandaInterfaces[] = { MIID_PROTOCOL, MIID_LAST };
////////////////////////////////////////////////////////////////////////////////////////
// OnModulesLoaded - finalizes plugin's configuration on load
@@ -111,7 +112,7 @@ extern "C" int __declspec(dllexport) Load(void) pd.type = PROTOTYPE_PROTOCOL;
pd.fnInit = protoInit;
pd.fnUninit = protoUninit;
- Proto_RegisterModule( & pd);
+ Proto_RegisterModule(&pd);
InitIcons();
InitExtraIcons();
diff --git a/protocols/AimOscar/src/avatars.cpp b/protocols/AimOscar/src/avatars.cpp index 298a11f899..0b21052483 100644 --- a/protocols/AimOscar/src/avatars.cpp +++ b/protocols/AimOscar/src/avatars.cpp @@ -16,6 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+
#include "stdafx.h"
void __cdecl CAimProto::avatar_request_thread(void* param)
@@ -25,8 +26,7 @@ void __cdecl CAimProto::avatar_request_thread(void* param) char *sn = getStringA(hContact, AIM_KEY_SN);
debugLogA("Starting avatar request thread for %s)", sn);
- if (wait_conn(hAvatarConn, hAvatarEvent, 0x10))
- {
+ if (wait_conn(m_hAvatarConn, m_hAvatarEvent, 0x10)) {
char *hash_str = getStringA(hContact, AIM_KEY_AH);
if (!hash_str) {
mir_free(sn);
@@ -35,10 +35,10 @@ void __cdecl CAimProto::avatar_request_thread(void* param) char type = getByte(hContact, AIM_KEY_AHT, 1);
size_t len = (mir_strlen(hash_str) + 1) / 2;
- char* hash = (char*)alloca(len);
+ char *hash = (char*)alloca(len);
string_to_bytes(hash_str, hash);
debugLogA("Requesting an Avatar: %s (Hash: %s)", sn, hash_str);
- aim_request_avatar(hAvatarConn, avatar_seqno, sn, type, hash, (unsigned short)len);
+ aim_request_avatar(m_hAvatarConn, m_avatar_seqno, sn, type, hash, (unsigned short)len);
mir_free(hash_str);
}
@@ -50,42 +50,35 @@ void __cdecl CAimProto::avatar_upload_thread(void* param) {
avatar_up_req* req = (avatar_up_req*)param;
- if (wait_conn(hAvatarConn, hAvatarEvent, 0x10))
- {
- if (req->size2)
- {
- aim_upload_avatar(hAvatarConn, avatar_seqno, 1, req->data2, req->size2);
- aim_upload_avatar(hAvatarConn, avatar_seqno, 12, req->data1, req->size1);
+ if (wait_conn(m_hAvatarConn, m_hAvatarEvent, 0x10)) {
+ if (req->size2) {
+ aim_upload_avatar(m_hAvatarConn, m_avatar_seqno, 1, req->data2, req->size2);
+ aim_upload_avatar(m_hAvatarConn, m_avatar_seqno, 12, req->data1, req->size1);
}
- else
- aim_upload_avatar(hAvatarConn, avatar_seqno, 1, req->data1, req->size1);
+ else aim_upload_avatar(m_hAvatarConn, m_avatar_seqno, 1, req->data1, req->size1);
}
delete req;
}
void CAimProto::avatar_request_handler(MCONTACT hContact, char* hash, unsigned char type)//checks to see if the avatar needs requested
{
- if (hContact == NULL)
- {
- hash = hash_lg ? hash_lg : hash_sm;
- type = hash_lg ? 12 : 1;
+ if (hContact == NULL) {
+ hash = m_hash_lg ? m_hash_lg : m_hash_sm;
+ type = m_hash_lg ? 12 : 1;
}
- char* saved_hash = getStringA(hContact, AIM_KEY_AH);
+ char *saved_hash = getStringA(hContact, AIM_KEY_AH);
if (hash && _stricmp(hash, "0201d20472") && _stricmp(hash, "2b00003341")) //gaim default icon fix- we don't want their blank icon displaying.
{
- if (mir_strcmp(saved_hash, hash))
- {
+ if (mir_strcmp(saved_hash, hash)) {
setByte(hContact, AIM_KEY_AHT, type);
setString(hContact, AIM_KEY_AH, hash);
ProtoBroadcastAck(hContact, ACKTYPE_AVATAR, ACKRESULT_STATUS, NULL, 0);
}
}
- else
- {
- if (saved_hash)
- {
+ else {
+ if (saved_hash) {
delSetting(hContact, AIM_KEY_AHT);
delSetting(hContact, AIM_KEY_AH);
@@ -106,7 +99,7 @@ void CAimProto::avatar_retrieval_handler(const char* sn, const char* /*hash*/, c ai.format = ProtoGetBufferFormat(data, &type);
get_avatar_filename(ai.hContact, ai.filename, _countof(ai.filename), type);
- int fileId = _topen(ai.filename, _O_CREAT | _O_TRUNC | _O_WRONLY | O_BINARY, _S_IREAD | _S_IWRITE);
+ int fileId = _topen(ai.filename, _O_CREAT | _O_TRUNC | _O_WRONLY | O_BINARY, _S_IREAD | _S_IWRITE);
if (fileId >= 0) {
_write(fileId, data, data_len);
_close(fileId);
@@ -125,7 +118,7 @@ void CAimProto::avatar_retrieval_handler(const char* sn, const char* /*hash*/, c int CAimProto::get_avatar_filename(MCONTACT hContact, TCHAR* pszDest, size_t cbLen, const TCHAR *ext)
{
- int tPathLen = mir_sntprintf(pszDest, cbLen, _T("%s\\%S"), VARST( _T("%miranda_avatarcache%")), m_szModuleName);
+ int tPathLen = mir_sntprintf(pszDest, cbLen, _T("%s\\%S"), VARST(_T("%miranda_avatarcache%")), m_szModuleName);
if (ext && _taccess(pszDest, 0))
CreateDirectoryTreeT(pszDest);
@@ -138,28 +131,24 @@ int CAimProto::get_avatar_filename(MCONTACT hContact, TCHAR* pszDest, size_t cbL db_free(&dbv);
bool found = false;
- if (ext == NULL)
- {
+ if (ext == NULL) {
mir_sntprintf(pszDest + tPathLen, cbLen - tPathLen, _T(".*"));
_tfinddata_t c_file;
long hFile = _tfindfirst(pszDest, &c_file);
- if (hFile > -1L)
- {
+ if (hFile > -1L) {
do {
- if (_tcsrchr(c_file.name, '.'))
- {
+ if (_tcsrchr(c_file.name, '.')) {
mir_sntprintf(pszDest + tPathLen2, cbLen - tPathLen2, _T("\\%s"), c_file.name);
found = true;
}
} while (_tfindnext(hFile, &c_file) == 0);
- _findclose( hFile );
+ _findclose(hFile);
}
if (!found) pszDest[0] = 0;
}
- else
- {
+ else {
mir_sntprintf(pszDest + tPathLen, cbLen - tPathLen, ext);
found = _taccess(pszDest, 0) == 0;
}
@@ -173,8 +162,7 @@ bool get_avatar_hash(const TCHAR* file, char* hash, char** data, unsigned short if (fileId == -1) return false;
long lAvatar = _filelength(fileId);
- if (lAvatar <= 0)
- {
+ if (lAvatar <= 0) {
_close(fileId);
return false;
}
@@ -183,8 +171,7 @@ bool get_avatar_hash(const TCHAR* file, char* hash, char** data, unsigned short int res = _read(fileId, pResult, lAvatar);
_close(fileId);
- if (res <= 0)
- {
+ if (res <= 0) {
mir_free(pResult);
return false;
}
@@ -194,8 +181,7 @@ bool get_avatar_hash(const TCHAR* file, char* hash, char** data, unsigned short mir_md5_append(&state, (unsigned char*)pResult, lAvatar);
mir_md5_finish(&state, (unsigned char*)hash);
- if (data)
- {
+ if (data) {
*data = pResult;
size = (unsigned short)lAvatar;
}
@@ -208,29 +194,28 @@ bool get_avatar_hash(const TCHAR* file, char* hash, char** data, unsigned short void rescale_image(char *data, unsigned short size, char *&data1, unsigned short &size1)
{
FI_INTERFACE *fei = NULL;
- CallService(MS_IMG_GETINTERFACE, FI_IF_VERSION, (LPARAM) &fei);
+ CallService(MS_IMG_GETINTERFACE, FI_IF_VERSION, (LPARAM)&fei);
if (fei == NULL) return;
- FIMEMORY *hmem = fei->FI_OpenMemory((BYTE *)data, size);
- FREE_IMAGE_FORMAT fif = fei->FI_GetFileTypeFromMemory(hmem, 0);
- FIBITMAP *dib = fei->FI_LoadFromMemory(fif, hmem, 0);
- fei->FI_CloseMemory(hmem);
+ FIMEMORY *hmem = fei->FI_OpenMemory((BYTE *)data, size);
+ FREE_IMAGE_FORMAT fif = fei->FI_GetFileTypeFromMemory(hmem, 0);
+ FIBITMAP *dib = fei->FI_LoadFromMemory(fif, hmem, 0);
+ fei->FI_CloseMemory(hmem);
- if (fei->FI_GetWidth(dib) > 64)
- {
+ if (fei->FI_GetWidth(dib) > 64) {
FIBITMAP *dib1 = fei->FI_Rescale(dib, 64, 64, FILTER_BSPLINE);
- FIMEMORY *hmem = fei->FI_OpenMemory(NULL, 0);
- fei->FI_SaveToMemory(fif, dib1, hmem, 0);
+ FIMEMORY *hmem2 = fei->FI_OpenMemory(NULL, 0);
+ fei->FI_SaveToMemory(fif, dib1, hmem2, 0);
BYTE *data2; DWORD size2;
- fei->FI_AcquireMemory(hmem, &data2, &size2);
+ fei->FI_AcquireMemory(hmem2, &data2, &size2);
data1 = (char*)mir_alloc(size2);
memcpy(data1, data2, size2);
size1 = size2;
- fei->FI_CloseMemory(hmem);
+ fei->FI_CloseMemory(hmem2);
fei->FI_Unload(dib1);
}
fei->FI_Unload(dib);
-}
\ No newline at end of file +}
diff --git a/protocols/AimOscar/src/away.cpp b/protocols/AimOscar/src/away.cpp index ec8fdbb4fa..057e55a1b3 100644 --- a/protocols/AimOscar/src/away.cpp +++ b/protocols/AimOscar/src/away.cpp @@ -16,25 +16,27 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+
#include "stdafx.h"
+static const int modes[] =
+{
+ ID_STATUS_ONLINE,
+ ID_STATUS_AWAY,
+ ID_STATUS_DND,
+ ID_STATUS_NA,
+ ID_STATUS_OCCUPIED,
+ ID_STATUS_FREECHAT,
+ ID_STATUS_INVISIBLE,
+ ID_STATUS_ONTHEPHONE,
+ ID_STATUS_OUTTOLUNCH,
+};
+
char** CAimProto::get_status_msg_loc(int status)
{
- static const int modes[] =
- {
- ID_STATUS_ONLINE,
- ID_STATUS_AWAY,
- ID_STATUS_DND,
- ID_STATUS_NA,
- ID_STATUS_OCCUPIED,
- ID_STATUS_FREECHAT,
- ID_STATUS_INVISIBLE,
- ID_STATUS_ONTHEPHONE,
- ID_STATUS_OUTTOLUNCH,
- };
-
- for (int i=0; i<9; i++)
- if (modes[i] == status) return &modeMsgs[i];
+ for (int i = 0; i < _countof(modes); i++)
+ if (modes[i] == status)
+ return &m_modeMsgs[i];
return NULL;
}
@@ -42,10 +44,9 @@ char** CAimProto::get_status_msg_loc(int status) int CAimProto::aim_set_away(HANDLE hServerConn, unsigned short &seqno, const char *amsg, bool set)//user info
{
unsigned short offset = 0;
- char* html_msg = NULL;
+ char *html_msg = NULL;
size_t msg_size = 0;
- if (set)
- {
+ if (set) {
if (!amsg) return -1;
setDword(AIM_KEY_LA, (DWORD)time(NULL));
html_msg = html_encode(amsg && amsg[0] ? amsg : DEFAULT_AWAY_MSG);
@@ -56,10 +57,10 @@ int CAimProto::aim_set_away(HANDLE hServerConn, unsigned short &seqno, const cha const char *charset = str.isUnicode() ? AIM_MSG_TYPE_UNICODE : AIM_MSG_TYPE;
const unsigned short charset_len = (unsigned short)mir_strlen(charset);
- const char* msg = str.getBuf();
+ const char *msg = str.getBuf();
const unsigned short msg_len = str.getSize();
- char* buf = (char*)alloca(SNAC_SIZE + TLV_HEADER_SIZE * 3 + charset_len + msg_len + 1);
+ char *buf = (char*)alloca(SNAC_SIZE + TLV_HEADER_SIZE * 3 + charset_len + msg_len + 1);
aim_writesnac(0x02, 0x04, offset, buf);
aim_writetlv(0x03, charset_len, charset, offset, buf);
@@ -84,9 +85,9 @@ int CAimProto::aim_set_statusmsg(HANDLE hServerConn, unsigned short &seqno, cons size_t msg_size = mir_strlen(msg);
unsigned short msgoffset = 0;
- char* msgbuf = (char*)alloca(10 + msg_size);
+ char *msgbuf = (char*)alloca(10 + msg_size);
if (msg_size) {
- char* msgb = (char*)alloca(4 + msg_size);
+ char *msgb = (char*)alloca(4 + msg_size);
msgb[0] = (unsigned char)(msg_size >> 8);
msgb[1] = (unsigned char)(msg_size & 0xff);
memcpy(&msgb[2], msg, msg_size);
@@ -117,4 +118,3 @@ int CAimProto::aim_query_away_message(HANDLE hServerConn, unsigned short &seqno, int res = aim_sendflap(hServerConn, 0x02, offset, buf, seqno) == 0;
return res;
}
-
diff --git a/protocols/AimOscar/src/chat.cpp b/protocols/AimOscar/src/chat.cpp index 9d43570ab6..3bf8adab9f 100644 --- a/protocols/AimOscar/src/chat.cpp +++ b/protocols/AimOscar/src/chat.cpp @@ -15,9 +15,10 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+
#include "stdafx.h"
-static const COLORREF crCols[16] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
+static const COLORREF crCols[16] = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 };
void CAimProto::chat_register(void)
{
@@ -30,12 +31,12 @@ void CAimProto::chat_register(void) CallServiceSync(MS_GC_REGISTER, 0, (LPARAM)&gcr);
HookProtoEvent(ME_GC_EVENT, &CAimProto::OnGCEvent);
- HookProtoEvent(ME_GC_BUILDMENU, &CAimProto::OnGCMenuHook );
+ HookProtoEvent(ME_GC_BUILDMENU, &CAimProto::OnGCMenuHook);
}
void CAimProto::chat_start(const char* id, unsigned short exchange)
{
- TCHAR* idt = mir_a2t(id);
+ TCHAR *idt = mir_a2t(id);
GCSESSION gcw = { sizeof(gcw) };
gcw.iType = GCW_CHATROOM;
@@ -55,8 +56,8 @@ void CAimProto::chat_start(const char* id, unsigned short exchange) gcd.iType = GC_EVENT_CONTROL;
CallServiceSync(MS_GC_EVENT, SESSION_INITDONE, (LPARAM)&gce);
- CallServiceSync(MS_GC_EVENT, SESSION_ONLINE, (LPARAM)&gce);
- CallServiceSync(MS_GC_EVENT, WINDOW_VISIBLE, (LPARAM)&gce);
+ CallServiceSync(MS_GC_EVENT, SESSION_ONLINE, (LPARAM)&gce);
+ CallServiceSync(MS_GC_EVENT, WINDOW_VISIBLE, (LPARAM)&gce);
setWord(find_chat_contact(id), "Exchange", exchange);
@@ -65,11 +66,11 @@ void CAimProto::chat_start(const char* id, unsigned short exchange) void CAimProto::chat_event(const char* id, const char* sn, int evt, const TCHAR* msg)
{
- TCHAR* idt = mir_a2t(id);
- TCHAR* snt = mir_a2t(sn);
+ TCHAR *idt = mir_a2t(id);
+ TCHAR *snt = mir_a2t(sn);
MCONTACT hContact = contact_from_sn(sn);
- TCHAR* nick = hContact ? (TCHAR*)pcli->pfnGetContactDisplayName(
+ TCHAR *nick = hContact ? (TCHAR*)pcli->pfnGetContactDisplayName(
WPARAM(hContact), 0) : snt;
GCDEST gcd = { m_szModuleName, idt, evt };
@@ -78,7 +79,7 @@ void CAimProto::chat_event(const char* id, const char* sn, int evt, const TCHAR* gce.pDest = &gcd;
gce.ptszNick = nick;
gce.ptszUID = snt;
- gce.bIsMe = _stricmp(sn, username) == 0;
+ gce.bIsMe = _stricmp(sn, m_username) == 0;
gce.ptszStatus = gce.bIsMe ? TranslateT("Me") : TranslateT("Others");
gce.ptszText = msg;
gce.time = time(NULL);
@@ -90,7 +91,7 @@ void CAimProto::chat_event(const char* id, const char* sn, int evt, const TCHAR* void CAimProto::chat_leave(const char* id)
{
- TCHAR* idt = mir_a2t(id);
+ TCHAR *idt = mir_a2t(id);
GCDEST gcd = { m_szModuleName, idt, GC_EVENT_CONTROL };
GCEVENT gce = { sizeof(gce), &gcd };
@@ -102,97 +103,93 @@ void CAimProto::chat_leave(const char* id) }
-int CAimProto::OnGCEvent(WPARAM, LPARAM lParam)
+int CAimProto::OnGCEvent(WPARAM, LPARAM lParam)
{
- GCHOOK *gch = (GCHOOK*) lParam;
+ GCHOOK *gch = (GCHOOK*)lParam;
if (!gch) return 1;
if (mir_strcmp(gch->pDest->pszModule, m_szModuleName)) return 0;
- char* id = mir_t2a(gch->pDest->ptszID);
+ char *id = mir_t2a(gch->pDest->ptszID);
chat_list_item* item = find_chat_by_id(id);
if (item == NULL) return 0;
- switch (gch->pDest->iType)
- {
- case GC_SESSION_TERMINATE:
- aim_sendflap(item->hconn,0x04,0,NULL,item->seqno);
- Netlib_Shutdown(item->hconn);
- break;
+ switch (gch->pDest->iType) {
+ case GC_SESSION_TERMINATE:
+ aim_sendflap(item->hconn, 0x04, 0, NULL, item->seqno);
+ Netlib_Shutdown(item->hconn);
+ break;
- case GC_USER_MESSAGE:
- if (gch->ptszText && mir_tstrlen(gch->ptszText))
- aim_chat_send_message(item->hconn, item->seqno, T2Utf(gch->ptszText));
- break;
+ case GC_USER_MESSAGE:
+ if (gch->ptszText && mir_tstrlen(gch->ptszText))
+ aim_chat_send_message(item->hconn, item->seqno, T2Utf(gch->ptszText));
+ break;
+
+ case GC_USER_CHANMGR:
+ DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_CHATROOM_INVITE), NULL, invite_to_chat_dialog,
+ LPARAM(new invite_chat_param(item->id, this)));
+ break;
+
+ case GC_USER_PRIVMESS:
+ {
+ char* sn = mir_t2a(gch->ptszUID);
+ MCONTACT hContact = contact_from_sn(sn);
+ mir_free(sn);
+ CallService(MS_MSG_SENDMESSAGE, hContact, 0);
+ }
+ break;
- case GC_USER_CHANMGR:
- DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_CHATROOM_INVITE), NULL, invite_to_chat_dialog,
+ case GC_USER_LOGMENU:
+ switch (gch->dwData) {
+ case 10:
+ DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_CHATROOM_INVITE), NULL, invite_to_chat_dialog,
LPARAM(new invite_chat_param(item->id, this)));
break;
- case GC_USER_PRIVMESS:
- {
- char* sn = mir_t2a(gch->ptszUID);
- MCONTACT hContact = contact_from_sn(sn);
- mir_free(sn);
- CallService(MS_MSG_SENDMESSAGE, hContact, 0);
- }
+ case 20:
+ chat_leave(id);
break;
+ }
+ break;
+
+ case GC_USER_NICKLISTMENU:
+ {
+ char *sn = mir_t2a(gch->ptszUID);
+ MCONTACT hContact = contact_from_sn(sn);
+ mir_free(sn);
- case GC_USER_LOGMENU:
- switch(gch->dwData)
- {
+ switch (gch->dwData) {
case 10:
- DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_CHATROOM_INVITE), NULL, invite_to_chat_dialog,
- LPARAM(new invite_chat_param(item->id, this)));
+ CallService(MS_USERINFO_SHOWDIALOG, hContact, 0);
break;
case 20:
+ CallService(MS_HISTORY_SHOWCONTACTHISTORY, hContact, 0);
+ break;
+
+ case 110:
chat_leave(id);
break;
}
- break;
-
- case GC_USER_NICKLISTMENU:
- {
- char *sn = mir_t2a(gch->ptszUID);
- MCONTACT hContact = contact_from_sn(sn);
- mir_free(sn);
-
- switch (gch->dwData)
- {
- case 10:
- CallService(MS_USERINFO_SHOWDIALOG, hContact, 0);
- break;
-
- case 20:
- CallService(MS_HISTORY_SHOWCONTACTHISTORY, hContact, 0);
- break;
-
- case 110:
- chat_leave(id);
- break;
- }
- }
- break;
+ }
+ break;
- case GC_USER_TYPNOTIFY:
- break;
+ case GC_USER_TYPNOTIFY:
+ break;
}
mir_free(id);
return 0;
}
-int CAimProto::OnGCMenuHook(WPARAM, LPARAM lParam)
+int CAimProto::OnGCMenuHook(WPARAM, LPARAM lParam)
{
- GCMENUITEMS *gcmi= (GCMENUITEMS*)lParam;
+ GCMENUITEMS *gcmi = (GCMENUITEMS*)lParam;
- if ( gcmi == NULL || _stricmp(gcmi->pszModule, m_szModuleName )) return 0;
+ if (gcmi == NULL || _stricmp(gcmi->pszModule, m_szModuleName)) return 0;
- if ( gcmi->Type == MENU_ON_LOG )
- {
+ if (gcmi->Type == MENU_ON_LOG) {
static const struct gc_item Items[] = {
{ TranslateT("&Invite user..."), 10, MENU_ITEM, FALSE },
{ TranslateT("&Leave chat session"), 20, MENU_ITEM, FALSE }
@@ -200,11 +197,9 @@ int CAimProto::OnGCMenuHook(WPARAM, LPARAM lParam) gcmi->nItems = _countof(Items);
gcmi->Item = (gc_item*)Items;
}
- else if ( gcmi->Type == MENU_ON_NICKLIST )
- {
+ else if (gcmi->Type == MENU_ON_NICKLIST) {
char* sn = mir_t2a(gcmi->pszUID);
- if ( !mir_strcmp(username, sn))
- {
+ if (!mir_strcmp(m_username, sn)) {
static const struct gc_item Items[] = {
{ TranslateT("User &details"), 10, MENU_ITEM, FALSE },
{ TranslateT("User &history"), 20, MENU_ITEM, FALSE },
@@ -221,7 +216,7 @@ int CAimProto::OnGCMenuHook(WPARAM, LPARAM lParam) };
gcmi->nItems = _countof(Items);
gcmi->Item = (gc_item*)Items;
- }
+ }
mir_free(sn);
}
@@ -229,69 +224,51 @@ int CAimProto::OnGCMenuHook(WPARAM, LPARAM lParam) }
-void __cdecl CAimProto::chatnav_request_thread( void* param )
+void __cdecl CAimProto::chatnav_request_thread(void* param)
{
- chatnav_param* par = (chatnav_param*)param;
+ chatnav_param *par = (chatnav_param*)param;
- if (wait_conn(hChatNavConn, hChatNavEvent, 0x0d))
- {
+ if (wait_conn(m_hChatNavConn, m_hChatNavEvent, 0x0d)) {
if (par->isroom)
- aim_chatnav_create(hChatNavConn, chatnav_seqno, par->id, par->exchange);
+ aim_chatnav_create(m_hChatNavConn, m_chatnav_seqno, par->id, par->exchange);
else
- aim_chatnav_room_info(hChatNavConn, chatnav_seqno, par->id, par->exchange, par->instance);
+ aim_chatnav_room_info(m_hChatNavConn, m_chatnav_seqno, par->id, par->exchange, par->instance);
}
delete par;
}
chat_list_item* CAimProto::find_chat_by_cid(unsigned short cid)
{
- chat_list_item* item = NULL;
- for(int i=0; i<chat_rooms.getCount(); ++i)
- {
- if (chat_rooms[i].cid == cid)
- {
- item = &chat_rooms[i];
- break;
- }
- }
- return item;
+ for (int i = 0; i < m_chat_rooms.getCount(); ++i)
+ if (m_chat_rooms[i].cid == cid)
+ return &m_chat_rooms[i];
+
+ return NULL;
}
chat_list_item* CAimProto::find_chat_by_id(char* id)
{
- chat_list_item* item = NULL;
- for(int i=0; i<chat_rooms.getCount(); ++i)
- {
- if (mir_strcmp(chat_rooms[i].id, id) == 0)
- {
- item = &chat_rooms[i];
- break;
- }
- }
- return item;
+ for (int i = 0; i < m_chat_rooms.getCount(); ++i)
+ if (mir_strcmp(m_chat_rooms[i].id, id) == 0)
+ return &m_chat_rooms[i];
+
+ return NULL;
}
chat_list_item* CAimProto::find_chat_by_conn(HANDLE conn)
{
- chat_list_item* item = NULL;
- for(int i=0; i<chat_rooms.getCount(); ++i)
- {
- if (chat_rooms[i].hconn == conn)
- {
- item = &chat_rooms[i];
- break;
- }
- }
- return item;
+ for (int i = 0; i < m_chat_rooms.getCount(); ++i)
+ if (m_chat_rooms[i].hconn == conn)
+ return &m_chat_rooms[i];
+
+ return NULL;
}
-void CAimProto::remove_chat_by_ptr(chat_list_item* item)
+void CAimProto::remove_chat_by_ptr(chat_list_item *item)
{
- for(int i=0; i<chat_rooms.getCount(); ++i)
- {
- if (&chat_rooms[i] == item)
- {
- chat_rooms.remove(i);
+ for (int i = 0; i < m_chat_rooms.getCount(); ++i) {
+ if (&m_chat_rooms[i] == item) {
+ m_chat_rooms.remove(i);
break;
}
}
@@ -299,12 +276,10 @@ void CAimProto::remove_chat_by_ptr(chat_list_item* item) void CAimProto::shutdown_chat_conn(void)
{
- for(int i=0; i<chat_rooms.getCount(); ++i)
- {
- chat_list_item& item = chat_rooms[i];
- if (item.hconn)
- {
- aim_sendflap(item.hconn,0x04,0,NULL,item.seqno);
+ for (int i = 0; i < m_chat_rooms.getCount(); ++i) {
+ chat_list_item &item = m_chat_rooms[i];
+ if (item.hconn) {
+ aim_sendflap(item.hconn, 0x04, 0, NULL, item.seqno);
Netlib_Shutdown(item.hconn);
}
}
@@ -312,13 +287,11 @@ void CAimProto::shutdown_chat_conn(void) void CAimProto::close_chat_conn(void)
{
- for(int i=0; i<chat_rooms.getCount(); ++i)
- {
- chat_list_item& item = chat_rooms[i];
- if (item.hconn)
- {
+ for (int i = 0; i < m_chat_rooms.getCount(); ++i) {
+ chat_list_item &item = m_chat_rooms[i];
+ if (item.hconn) {
Netlib_CloseHandle(item.hconn);
item.hconn = NULL;
}
}
-}
\ No newline at end of file +}
diff --git a/protocols/AimOscar/src/client.cpp b/protocols/AimOscar/src/client.cpp index e0c9a29ec7..b99ca2e133 100644 --- a/protocols/AimOscar/src/client.cpp +++ b/protocols/AimOscar/src/client.cpp @@ -16,172 +16,173 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+
#include "stdafx.h"
-int CAimProto::aim_send_connection_packet(HANDLE hServerConn,unsigned short &seqno,char *buf)
+int CAimProto::aim_send_connection_packet(HANDLE hServerConn, unsigned short &seqno, char *buf)
{
- return aim_sendflap(hServerConn,0x01,4,buf,seqno);
+ return aim_sendflap(hServerConn, 0x01, 4, buf, seqno);
}
-int CAimProto::aim_authkey_request(HANDLE hServerConn,unsigned short &seqno)
+int CAimProto::aim_authkey_request(HANDLE hServerConn, unsigned short &seqno)
{
- unsigned short offset=0;
- char* buf=(char*)alloca(SNAC_SIZE+TLV_HEADER_SIZE*3+mir_strlen(username));
- aim_writesnac(0x17,0x06,offset,buf);
- aim_writetlv(0x01,(unsigned short)mir_strlen(username),username,offset,buf);
- aim_writetlv(0x4B,0,0,offset,buf);
- aim_writetlv(0x5A,0,0,offset,buf);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ unsigned short offset = 0;
+ char *buf = (char*)alloca(SNAC_SIZE + TLV_HEADER_SIZE * 3 + mir_strlen(m_username));
+ aim_writesnac(0x17, 0x06, offset, buf);
+ aim_writetlv(0x01, (unsigned short)mir_strlen(m_username), m_username, offset, buf);
+ aim_writetlv(0x4B, 0, 0, offset, buf);
+ aim_writetlv(0x5A, 0, 0, offset, buf);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
-int CAimProto::aim_auth_request(HANDLE hServerConn,unsigned short &seqno,const char* key,const char* language,
- const char* country, const char* username, const char* password)
+int CAimProto::aim_auth_request(HANDLE hServerConn, unsigned short &seqno, const char* key, const char* language,
+ const char* country, const char* username, const char* password)
{
- unsigned short offset=0;
+ unsigned short offset = 0;
BYTE pass_hash[16];
BYTE auth_hash[16];
mir_md5_state_t state;
-
+
mir_md5_init(&state);
- mir_md5_append(&state,(const BYTE *)password, (int)mir_strlen(password));
- mir_md5_finish(&state,pass_hash);
+ mir_md5_append(&state, (const BYTE *)password, (int)mir_strlen(password));
+ mir_md5_finish(&state, pass_hash);
mir_md5_init(&state);
- mir_md5_append(&state,(BYTE*)key, (int)mir_strlen(key));
- mir_md5_append(&state,(BYTE*)pass_hash,MD5_HASH_LENGTH);
- mir_md5_append(&state,(BYTE*)AIM_MD5_STRING, sizeof(AIM_MD5_STRING)-1);
- mir_md5_finish(&state,auth_hash);
+ mir_md5_append(&state, (BYTE*)key, (int)mir_strlen(key));
+ mir_md5_append(&state, (BYTE*)pass_hash, MD5_HASH_LENGTH);
+ mir_md5_append(&state, (BYTE*)AIM_MD5_STRING, sizeof(AIM_MD5_STRING) - 1);
+ mir_md5_finish(&state, auth_hash);
char client_id[64], mirver[64];
CallService(MS_SYSTEM_GETVERSIONTEXT, sizeof(mirver), (LPARAM)mirver);
int client_id_len = mir_snprintf(client_id, _countof(client_id), "Miranda AIM, version %s", mirver);
- char* buf=(char*)alloca(SNAC_SIZE+TLV_HEADER_SIZE*14+MD5_HASH_LENGTH+mir_strlen(username)+client_id_len+30+mir_strlen(language)+mir_strlen(country));
-
- aim_writesnac(0x17,0x02,offset,buf);
- aim_writetlv(0x01,(unsigned short)mir_strlen(username),username,offset,buf);
- aim_writetlv(0x25,MD5_HASH_LENGTH,(char*)auth_hash,offset,buf);
- aim_writetlv(0x4C,0,0,offset,buf);//signifies new password hash instead of old method
- aim_writetlv(0x03,(unsigned short)client_id_len,client_id,offset,buf);
- aim_writetlvshort(0x17,AIM_CLIENT_MAJOR_VERSION,offset,buf);
- aim_writetlvshort(0x18,AIM_CLIENT_MINOR_VERSION,offset,buf);
- aim_writetlvshort(0x19,AIM_CLIENT_LESSER_VERSION,offset,buf);
- aim_writetlvshort(0x1A,AIM_CLIENT_BUILD_NUMBER,offset,buf);
- aim_writetlvshort(0x16,AIM_CLIENT_ID_NUMBER,offset,buf);
- aim_writetlvlong(0x14,AIM_CLIENT_DISTRIBUTION_NUMBER,offset,buf);
- aim_writetlv(0x0F,(unsigned short)mir_strlen(language),language,offset,buf);
- aim_writetlv(0x0E,(unsigned short)mir_strlen(country),country,offset,buf);
- aim_writetlvchar(0x4A,getByte(AIM_KEY_FSC, 0) ? 3 : 1,offset,buf);
-// aim_writetlvchar(0x94,0,offset,buf);
+ char* buf = (char*)alloca(SNAC_SIZE + TLV_HEADER_SIZE * 14 + MD5_HASH_LENGTH + mir_strlen(username) + client_id_len + 30 + mir_strlen(language) + mir_strlen(country));
+
+ aim_writesnac(0x17, 0x02, offset, buf);
+ aim_writetlv(0x01, (unsigned short)mir_strlen(username), username, offset, buf);
+ aim_writetlv(0x25, MD5_HASH_LENGTH, (char*)auth_hash, offset, buf);
+ aim_writetlv(0x4C, 0, 0, offset, buf);//signifies new password hash instead of old method
+ aim_writetlv(0x03, (unsigned short)client_id_len, client_id, offset, buf);
+ aim_writetlvshort(0x17, AIM_CLIENT_MAJOR_VERSION, offset, buf);
+ aim_writetlvshort(0x18, AIM_CLIENT_MINOR_VERSION, offset, buf);
+ aim_writetlvshort(0x19, AIM_CLIENT_LESSER_VERSION, offset, buf);
+ aim_writetlvshort(0x1A, AIM_CLIENT_BUILD_NUMBER, offset, buf);
+ aim_writetlvshort(0x16, AIM_CLIENT_ID_NUMBER, offset, buf);
+ aim_writetlvlong(0x14, AIM_CLIENT_DISTRIBUTION_NUMBER, offset, buf);
+ aim_writetlv(0x0F, (unsigned short)mir_strlen(language), language, offset, buf);
+ aim_writetlv(0x0E, (unsigned short)mir_strlen(country), country, offset, buf);
+ aim_writetlvchar(0x4A, getByte(AIM_KEY_FSC, 0) ? 3 : 1, offset, buf);
+ // aim_writetlvchar(0x94,0,offset,buf);
if (!getByte(AIM_KEY_DSSL, 0))
- aim_writetlv(0x8c,0,NULL,offset,buf); // Request SSL connection
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ aim_writetlv(0x8c, 0, NULL, offset, buf); // Request SSL connection
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
-int CAimProto::aim_send_cookie(HANDLE hServerConn,unsigned short &seqno,int cookie_size,char * cookie)
+int CAimProto::aim_send_cookie(HANDLE hServerConn, unsigned short &seqno, int cookie_size, char * cookie)
{
- unsigned short offset=0;
- char* buf=(char*)alloca(TLV_HEADER_SIZE*2+cookie_size);
- aim_writelong(0x01,offset,buf);//protocol version number
- aim_writetlv(0x06,(unsigned short)cookie_size,cookie,offset,buf);
- return aim_sendflap(hServerConn,0x01,offset,buf,seqno);
+ unsigned short offset = 0;
+ char* buf = (char*)alloca(TLV_HEADER_SIZE * 2 + cookie_size);
+ aim_writelong(0x01, offset, buf);//protocol version number
+ aim_writetlv(0x06, (unsigned short)cookie_size, cookie, offset, buf);
+ return aim_sendflap(hServerConn, 0x01, offset, buf, seqno);
}
-int CAimProto::aim_send_service_request(HANDLE hServerConn,unsigned short &seqno)
+int CAimProto::aim_send_service_request(HANDLE hServerConn, unsigned short &seqno)
{
- unsigned short offset=0;
- char buf[SNAC_SIZE+TLV_HEADER_SIZE*12];
- aim_writesnac(0x01,0x17,offset,buf);
- aim_writefamily(AIM_SERVICE_GENERIC,offset,buf);
- aim_writefamily(AIM_SERVICE_SSI,offset,buf);
- aim_writefamily(AIM_SERVICE_LOCATION,offset,buf);
- aim_writefamily(AIM_SERVICE_BUDDYLIST,offset,buf);
- aim_writefamily(AIM_SERVICE_MESSAGING,offset,buf);
- aim_writefamily(AIM_SERVICE_ICQ,offset,buf);
- aim_writefamily(AIM_SERVICE_INVITATION,offset,buf);
- aim_writefamily(AIM_SERVICE_POPUP,offset,buf);
- aim_writefamily(AIM_SERVICE_BOS,offset,buf);
- aim_writefamily(AIM_SERVICE_USERLOOKUP,offset,buf);
- aim_writefamily(AIM_SERVICE_STATS,offset,buf);
- aim_writefamily(AIM_SERVICE_UNKNOWN,offset,buf);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ unsigned short offset = 0;
+ char buf[SNAC_SIZE + TLV_HEADER_SIZE * 12];
+ aim_writesnac(0x01, 0x17, offset, buf);
+ aim_writefamily(AIM_SERVICE_GENERIC, offset, buf);
+ aim_writefamily(AIM_SERVICE_SSI, offset, buf);
+ aim_writefamily(AIM_SERVICE_LOCATION, offset, buf);
+ aim_writefamily(AIM_SERVICE_BUDDYLIST, offset, buf);
+ aim_writefamily(AIM_SERVICE_MESSAGING, offset, buf);
+ aim_writefamily(AIM_SERVICE_ICQ, offset, buf);
+ aim_writefamily(AIM_SERVICE_INVITATION, offset, buf);
+ aim_writefamily(AIM_SERVICE_POPUP, offset, buf);
+ aim_writefamily(AIM_SERVICE_BOS, offset, buf);
+ aim_writefamily(AIM_SERVICE_USERLOOKUP, offset, buf);
+ aim_writefamily(AIM_SERVICE_STATS, offset, buf);
+ aim_writefamily(AIM_SERVICE_UNKNOWN, offset, buf);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
-int CAimProto::aim_new_service_request(HANDLE hServerConn,unsigned short &seqno,unsigned short service)
+int CAimProto::aim_new_service_request(HANDLE hServerConn, unsigned short &seqno, unsigned short service)
{
- unsigned short offset=0;
- char buf[SNAC_SIZE+2+TLV_HEADER_SIZE];
- aim_writesnac(0x01,0x04,offset,buf);
- aim_writeshort(service,offset,buf);
+ unsigned short offset = 0;
+ char buf[SNAC_SIZE + 2 + TLV_HEADER_SIZE];
+ aim_writesnac(0x01, 0x04, offset, buf);
+ aim_writeshort(service, offset, buf);
if (!getByte(AIM_KEY_DSSL, 0))
- aim_writetlv(0x8c,0,NULL,offset,buf);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ aim_writetlv(0x8c, 0, NULL, offset, buf);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
-int CAimProto::aim_request_rates(HANDLE hServerConn,unsigned short &seqno)
+int CAimProto::aim_request_rates(HANDLE hServerConn, unsigned short &seqno)
{
- unsigned short offset=0;
+ unsigned short offset = 0;
char buf[SNAC_SIZE];
- aim_writesnac(0x01,0x06,offset,buf);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ aim_writesnac(0x01, 0x06, offset, buf);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
-int CAimProto::aim_accept_rates(HANDLE hServerConn,unsigned short &seqno)
+int CAimProto::aim_accept_rates(HANDLE hServerConn, unsigned short &seqno)
{
- unsigned short offset=0;
- char buf[SNAC_SIZE*2];
- aim_writesnac(0x01,0x08,offset,buf);
- aim_writegeneric(10,AIM_SERVICE_RATES,offset,buf);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ unsigned short offset = 0;
+ char buf[SNAC_SIZE * 2];
+ aim_writesnac(0x01, 0x08, offset, buf);
+ aim_writegeneric(10, AIM_SERVICE_RATES, offset, buf);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
-int CAimProto::aim_request_icbm(HANDLE hServerConn,unsigned short &seqno)
+int CAimProto::aim_request_icbm(HANDLE hServerConn, unsigned short &seqno)
{
- unsigned short offset=0;
+ unsigned short offset = 0;
char buf[SNAC_SIZE];
- aim_writesnac(0x04,0x04,offset,buf);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ aim_writesnac(0x04, 0x04, offset, buf);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
-int CAimProto::aim_set_icbm(HANDLE hServerConn,unsigned short &seqno)
+int CAimProto::aim_set_icbm(HANDLE hServerConn, unsigned short &seqno)
{
- const unsigned icbm_flags = ICBM_CHANNEL_MSGS_ALLOWED | ICBM_MISSED_CALLS_ENABLED |
+ const unsigned icbm_flags = ICBM_CHANNEL_MSGS_ALLOWED | ICBM_MISSED_CALLS_ENABLED |
ICBM_EVENTS_ALLOWED | ICBM_SMS_SUPPORTED | ICBM_OFFLINE_MSGS_ALLOWED;
-// const unsigned icbm_flags = 0x3db;
+ // const unsigned icbm_flags = 0x3db;
- unsigned short offset=0;
- char buf[SNAC_SIZE+16];
- aim_writesnac(0x04,0x02,offset,buf);
- aim_writeshort(0,offset,buf); //channel
- aim_writelong(icbm_flags,offset,buf); //flags
- aim_writeshort(0x1f40,offset,buf); //max snac size 8000
- aim_writeshort(0x03e7,offset,buf); //max sender warning level 999 (0-1000) WinAim default
- aim_writeshort(0x03e7,offset,buf); //max receiver warning level 999 (0-1000) WinAim default
- aim_writelong(0,offset,buf); //min message interval, ms 0
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ unsigned short offset = 0;
+ char buf[SNAC_SIZE + 16];
+ aim_writesnac(0x04, 0x02, offset, buf);
+ aim_writeshort(0, offset, buf); //channel
+ aim_writelong(icbm_flags, offset, buf); //flags
+ aim_writeshort(0x1f40, offset, buf); //max snac size 8000
+ aim_writeshort(0x03e7, offset, buf); //max sender warning level 999 (0-1000) WinAim default
+ aim_writeshort(0x03e7, offset, buf); //max receiver warning level 999 (0-1000) WinAim default
+ aim_writelong(0, offset, buf); //min message interval, ms 0
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
-int CAimProto::aim_request_offline_msgs(HANDLE hServerConn,unsigned short &seqno)
+int CAimProto::aim_request_offline_msgs(HANDLE hServerConn, unsigned short &seqno)
{
- unsigned short offset=0;
+ unsigned short offset = 0;
char buf[SNAC_SIZE];
- aim_writesnac(0x04,0x10,offset,buf); // Subtype for offline messages 0x10
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ aim_writesnac(0x04, 0x10, offset, buf); // Subtype for offline messages 0x10
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
-int CAimProto::aim_request_list(HANDLE hServerConn,unsigned short &seqno)
+int CAimProto::aim_request_list(HANDLE hServerConn, unsigned short &seqno)
{
- unsigned short offset=0;
+ unsigned short offset = 0;
char buf[SNAC_SIZE];
- aim_writesnac(0x13,0x04,offset,buf);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ aim_writesnac(0x13, 0x04, offset, buf);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
-int CAimProto::aim_activate_list(HANDLE hServerConn,unsigned short &seqno)
+int CAimProto::aim_activate_list(HANDLE hServerConn, unsigned short &seqno)
{
- unsigned short offset=0;
+ unsigned short offset = 0;
char buf[SNAC_SIZE];
- aim_writesnac(0x13,0x07,offset,buf);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ aim_writesnac(0x13, 0x07, offset, buf);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
/*
@@ -202,35 +203,35 @@ int CAimProto::aim_request_rights(HANDLE hServerConn,unsigned short &seqno) return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
}
*/
-int CAimProto::aim_set_caps(HANDLE hServerConn,unsigned short &seqno)
+int CAimProto::aim_set_caps(HANDLE hServerConn, unsigned short &seqno)
{
- unsigned short offset=0;
- int i=1;
- char buf[SNAC_SIZE+TLV_HEADER_SIZE*3+AIM_CAPS_LENGTH*50+sizeof(AIM_MSG_TYPE)];
- char temp[AIM_CAPS_LENGTH*20];
- memcpy(temp,AIM_CAP_SHORT_CAPS,AIM_CAPS_LENGTH);
- memcpy(&temp[AIM_CAPS_LENGTH*i++],AIM_CAP_HOST_STATUS_TEXT_AWARE,AIM_CAPS_LENGTH);
- memcpy(&temp[AIM_CAPS_LENGTH*i++],AIM_CAP_SMART_CAPS,AIM_CAPS_LENGTH);
- memcpy(&temp[AIM_CAPS_LENGTH*i++],AIM_CAP_FILE_TRANSFER,AIM_CAPS_LENGTH);
-// memcpy(&temp[AIM_CAPS_LENGTH*i++],AIM_CAP_HAS_MICROPHONE,AIM_CAPS_LENGTH);
-// memcpy(&temp[AIM_CAPS_LENGTH*i++],AIM_CAP_RTCAUDIO,AIM_CAPS_LENGTH);
-// memcpy(&temp[AIM_CAPS_LENGTH*i++],AIM_CAP_HAS_CAMERA,AIM_CAPS_LENGTH);
-// memcpy(&temp[AIM_CAPS_LENGTH*i++],AIM_CAP_RTCVIDEO,AIM_CAPS_LENGTH);
- memcpy(&temp[AIM_CAPS_LENGTH*i++],AIM_CAP_BUDDY_ICON,AIM_CAPS_LENGTH);
- memcpy(&temp[AIM_CAPS_LENGTH*i++],AIM_CAP_CHAT,AIM_CAPS_LENGTH);
- memcpy(&temp[AIM_CAPS_LENGTH*i++],AIM_CAP_SUPPORT_ICQ,AIM_CAPS_LENGTH);
-// memcpy(&temp[AIM_CAPS_LENGTH*i++],AIM_CAP_ICQ_SERVER_RELAY,AIM_CAPS_LENGTH);
- memcpy(&temp[AIM_CAPS_LENGTH*i++],AIM_CAP_UTF8,AIM_CAPS_LENGTH);
- memcpy(&temp[AIM_CAPS_LENGTH*i++],AIM_CAP_MIRANDA,AIM_CAPS_LENGTH);
+ unsigned short offset = 0;
+ int i = 1;
+ char buf[SNAC_SIZE + TLV_HEADER_SIZE * 3 + AIM_CAPS_LENGTH * 50 + sizeof(AIM_MSG_TYPE)];
+ char temp[AIM_CAPS_LENGTH * 20];
+ memcpy(temp, AIM_CAP_SHORT_CAPS, AIM_CAPS_LENGTH);
+ memcpy(&temp[AIM_CAPS_LENGTH*i++], AIM_CAP_HOST_STATUS_TEXT_AWARE, AIM_CAPS_LENGTH);
+ memcpy(&temp[AIM_CAPS_LENGTH*i++], AIM_CAP_SMART_CAPS, AIM_CAPS_LENGTH);
+ memcpy(&temp[AIM_CAPS_LENGTH*i++], AIM_CAP_FILE_TRANSFER, AIM_CAPS_LENGTH);
+ // memcpy(&temp[AIM_CAPS_LENGTH*i++],AIM_CAP_HAS_MICROPHONE,AIM_CAPS_LENGTH);
+ // memcpy(&temp[AIM_CAPS_LENGTH*i++],AIM_CAP_RTCAUDIO,AIM_CAPS_LENGTH);
+ // memcpy(&temp[AIM_CAPS_LENGTH*i++],AIM_CAP_HAS_CAMERA,AIM_CAPS_LENGTH);
+ // memcpy(&temp[AIM_CAPS_LENGTH*i++],AIM_CAP_RTCVIDEO,AIM_CAPS_LENGTH);
+ memcpy(&temp[AIM_CAPS_LENGTH*i++], AIM_CAP_BUDDY_ICON, AIM_CAPS_LENGTH);
+ memcpy(&temp[AIM_CAPS_LENGTH*i++], AIM_CAP_CHAT, AIM_CAPS_LENGTH);
+ memcpy(&temp[AIM_CAPS_LENGTH*i++], AIM_CAP_SUPPORT_ICQ, AIM_CAPS_LENGTH);
+ // memcpy(&temp[AIM_CAPS_LENGTH*i++],AIM_CAP_ICQ_SERVER_RELAY,AIM_CAPS_LENGTH);
+ memcpy(&temp[AIM_CAPS_LENGTH*i++], AIM_CAP_UTF8, AIM_CAPS_LENGTH);
+ memcpy(&temp[AIM_CAPS_LENGTH*i++], AIM_CAP_MIRANDA, AIM_CAPS_LENGTH);
if (getByte(AIM_KEY_HF, 0))
- memcpy(&temp[AIM_CAPS_LENGTH*i++],AIM_CAP_HIPTOP,AIM_CAPS_LENGTH);
- aim_writesnac(0x02,0x04,offset,buf);
- aim_writetlv(0x05,(unsigned short)(AIM_CAPS_LENGTH*i),temp,offset,buf);
+ memcpy(&temp[AIM_CAPS_LENGTH*i++], AIM_CAP_HIPTOP, AIM_CAPS_LENGTH);
+ aim_writesnac(0x02, 0x04, offset, buf);
+ aim_writetlv(0x05, (unsigned short)(AIM_CAPS_LENGTH*i), temp, offset, buf);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
-int CAimProto::aim_set_profile(HANDLE hServerConn,unsigned short &seqno, char* amsg)//user info
+int CAimProto::aim_set_profile(HANDLE hServerConn, unsigned short &seqno, char* amsg)//user info
{
aimString str(amsg);
const char *charset = str.isUnicode() ? AIM_MSG_TYPE_UNICODE : AIM_MSG_TYPE;
@@ -239,338 +240,330 @@ int CAimProto::aim_set_profile(HANDLE hServerConn,unsigned short &seqno, char* a const char* msg = str.getBuf();
const unsigned short msg_len = str.getSize();
- char* buf=(char*)alloca(SNAC_SIZE+TLV_HEADER_SIZE*3+1+charset_len+msg_len);
- unsigned short offset=0;
+ char* buf = (char*)alloca(SNAC_SIZE + TLV_HEADER_SIZE * 3 + 1 + charset_len + msg_len);
+ unsigned short offset = 0;
- aim_writesnac(0x02,0x04,offset,buf);
- aim_writetlvchar(0x0c,1,offset,buf);
- aim_writetlv(0x01,charset_len,charset,offset,buf);
- aim_writetlv(0x02,msg_len,msg,offset,buf);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ aim_writesnac(0x02, 0x04, offset, buf);
+ aim_writetlvchar(0x0c, 1, offset, buf);
+ aim_writetlv(0x01, charset_len, charset, offset, buf);
+ aim_writetlv(0x02, msg_len, msg, offset, buf);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
-int CAimProto::aim_client_ready(HANDLE hServerConn,unsigned short &seqno)
+int CAimProto::aim_client_ready(HANDLE hServerConn, unsigned short &seqno)
{
unsigned short offset = 0;
- NETLIBCONNINFO connInfo = { sizeof(connInfo) };
+ NETLIBCONNINFO connInfo = { sizeof(connInfo) };
CallService(MS_NETLIB_GETCONNECTIONINFO, (WPARAM)hServerConn, (LPARAM)&connInfo);
-
- internal_ip = connInfo.dwIpv4;
-
- char buf[SNAC_SIZE+TLV_HEADER_SIZE*22];
- aim_writesnac(0x01,0x02,offset,buf);
- aim_writefamily(AIM_SERVICE_GENERIC,offset,buf);
- aim_writegeneric(4,AIM_TOOL_VERSION,offset,buf);
- aim_writefamily(AIM_SERVICE_SSI,offset,buf);
- aim_writegeneric(4,AIM_TOOL_VERSION,offset,buf);
- aim_writefamily(AIM_SERVICE_LOCATION,offset,buf);
- aim_writegeneric(4,AIM_TOOL_VERSION,offset,buf);
- aim_writefamily(AIM_SERVICE_BUDDYLIST,offset,buf);
- aim_writegeneric(4,AIM_TOOL_VERSION,offset,buf);
- aim_writefamily(AIM_SERVICE_MESSAGING,offset,buf);
- aim_writegeneric(4,AIM_TOOL_VERSION,offset,buf);
- aim_writefamily(AIM_SERVICE_ICQ,offset,buf);
- aim_writegeneric(4,AIM_TOOL_VERSION,offset,buf);
- aim_writefamily(AIM_SERVICE_INVITATION,offset,buf);
- aim_writegeneric(4,AIM_TOOL_VERSION,offset,buf);
+
+ m_internal_ip = connInfo.dwIpv4;
+
+ char buf[SNAC_SIZE + TLV_HEADER_SIZE * 22];
+ aim_writesnac(0x01, 0x02, offset, buf);
+ aim_writefamily(AIM_SERVICE_GENERIC, offset, buf);
+ aim_writegeneric(4, AIM_TOOL_VERSION, offset, buf);
+ aim_writefamily(AIM_SERVICE_SSI, offset, buf);
+ aim_writegeneric(4, AIM_TOOL_VERSION, offset, buf);
+ aim_writefamily(AIM_SERVICE_LOCATION, offset, buf);
+ aim_writegeneric(4, AIM_TOOL_VERSION, offset, buf);
+ aim_writefamily(AIM_SERVICE_BUDDYLIST, offset, buf);
+ aim_writegeneric(4, AIM_TOOL_VERSION, offset, buf);
+ aim_writefamily(AIM_SERVICE_MESSAGING, offset, buf);
+ aim_writegeneric(4, AIM_TOOL_VERSION, offset, buf);
+ aim_writefamily(AIM_SERVICE_ICQ, offset, buf);
+ aim_writegeneric(4, AIM_TOOL_VERSION, offset, buf);
+ aim_writefamily(AIM_SERVICE_INVITATION, offset, buf);
+ aim_writegeneric(4, AIM_TOOL_VERSION, offset, buf);
//removed extra generic server
- aim_writefamily(AIM_SERVICE_POPUP,offset,buf);
- aim_writegeneric(4,"\x01\x04\0\x01",offset,buf);//different version number like trillian 3.1
- aim_writefamily(AIM_SERVICE_BOS,offset,buf);
- aim_writegeneric(4,AIM_TOOL_VERSION,offset,buf);
- aim_writefamily(AIM_SERVICE_USERLOOKUP,offset,buf);
- aim_writegeneric(4,AIM_TOOL_VERSION,offset,buf);
- aim_writefamily(AIM_SERVICE_STATS,offset,buf);
- aim_writegeneric(4,AIM_TOOL_VERSION,offset,buf);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ aim_writefamily(AIM_SERVICE_POPUP, offset, buf);
+ aim_writegeneric(4, "\x01\x04\0\x01", offset, buf);//different version number like trillian 3.1
+ aim_writefamily(AIM_SERVICE_BOS, offset, buf);
+ aim_writegeneric(4, AIM_TOOL_VERSION, offset, buf);
+ aim_writefamily(AIM_SERVICE_USERLOOKUP, offset, buf);
+ aim_writegeneric(4, AIM_TOOL_VERSION, offset, buf);
+ aim_writefamily(AIM_SERVICE_STATS, offset, buf);
+ aim_writegeneric(4, AIM_TOOL_VERSION, offset, buf);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
-int CAimProto::aim_mail_ready(HANDLE hServerConn,unsigned short &seqno)
+int CAimProto::aim_mail_ready(HANDLE hServerConn, unsigned short &seqno)
{
- unsigned short offset=0;
- char buf[SNAC_SIZE+TLV_HEADER_SIZE*4];
- aim_writesnac(0x01,0x02,offset,buf);
- aim_writefamily(AIM_SERVICE_GENERIC,offset,buf);
- aim_writegeneric(4,AIM_TOOL_VERSION,offset,buf);
- aim_writefamily(AIM_SERVICE_MAIL,offset,buf);
- aim_writegeneric(4,AIM_TOOL_VERSION,offset,buf);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ unsigned short offset = 0;
+ char buf[SNAC_SIZE + TLV_HEADER_SIZE * 4];
+ aim_writesnac(0x01, 0x02, offset, buf);
+ aim_writefamily(AIM_SERVICE_GENERIC, offset, buf);
+ aim_writegeneric(4, AIM_TOOL_VERSION, offset, buf);
+ aim_writefamily(AIM_SERVICE_MAIL, offset, buf);
+ aim_writegeneric(4, AIM_TOOL_VERSION, offset, buf);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
-int CAimProto::aim_avatar_ready(HANDLE hServerConn,unsigned short &seqno)
+int CAimProto::aim_avatar_ready(HANDLE hServerConn, unsigned short &seqno)
{
- unsigned short offset=0;
- char buf[SNAC_SIZE+TLV_HEADER_SIZE*4];
- aim_writesnac(0x01,0x02,offset,buf);
- aim_writefamily(AIM_SERVICE_GENERIC,offset,buf);
- aim_writegeneric(4,AIM_TOOL_VERSION,offset,buf);
- aim_writefamily(AIM_SERVICE_AVATAR,offset,buf);
- aim_writegeneric(4,AIM_TOOL_VERSION,offset,buf);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ unsigned short offset = 0;
+ char buf[SNAC_SIZE + TLV_HEADER_SIZE * 4];
+ aim_writesnac(0x01, 0x02, offset, buf);
+ aim_writefamily(AIM_SERVICE_GENERIC, offset, buf);
+ aim_writegeneric(4, AIM_TOOL_VERSION, offset, buf);
+ aim_writefamily(AIM_SERVICE_AVATAR, offset, buf);
+ aim_writegeneric(4, AIM_TOOL_VERSION, offset, buf);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
-int CAimProto::aim_chatnav_ready(HANDLE hServerConn,unsigned short &seqno)
+int CAimProto::aim_chatnav_ready(HANDLE hServerConn, unsigned short &seqno)
{
- unsigned short offset=0;
- char buf[SNAC_SIZE+TLV_HEADER_SIZE*4];
- aim_writesnac(0x01,0x02,offset,buf);
- aim_writefamily(AIM_SERVICE_GENERIC,offset,buf);
- aim_writegeneric(4,AIM_TOOL_VERSION,offset,buf);
- aim_writefamily(AIM_SERVICE_CHATNAV,offset,buf);
- aim_writegeneric(4,AIM_TOOL_VERSION,offset,buf);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ unsigned short offset = 0;
+ char buf[SNAC_SIZE + TLV_HEADER_SIZE * 4];
+ aim_writesnac(0x01, 0x02, offset, buf);
+ aim_writefamily(AIM_SERVICE_GENERIC, offset, buf);
+ aim_writegeneric(4, AIM_TOOL_VERSION, offset, buf);
+ aim_writefamily(AIM_SERVICE_CHATNAV, offset, buf);
+ aim_writegeneric(4, AIM_TOOL_VERSION, offset, buf);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
-int CAimProto::aim_chat_ready(HANDLE hServerConn,unsigned short &seqno)
+int CAimProto::aim_chat_ready(HANDLE hServerConn, unsigned short &seqno)
{
- unsigned short offset=0;
- char buf[SNAC_SIZE+TLV_HEADER_SIZE*4];
- aim_writesnac(0x01,0x02,offset,buf);
- aim_writefamily(AIM_SERVICE_GENERIC,offset,buf);
- aim_writegeneric(4,AIM_TOOL_VERSION,offset,buf);
- aim_writefamily(AIM_SERVICE_CHAT,offset,buf);
- aim_writegeneric(4,AIM_TOOL_VERSION,offset,buf);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ unsigned short offset = 0;
+ char buf[SNAC_SIZE + TLV_HEADER_SIZE * 4];
+ aim_writesnac(0x01, 0x02, offset, buf);
+ aim_writefamily(AIM_SERVICE_GENERIC, offset, buf);
+ aim_writegeneric(4, AIM_TOOL_VERSION, offset, buf);
+ aim_writefamily(AIM_SERVICE_CHAT, offset, buf);
+ aim_writegeneric(4, AIM_TOOL_VERSION, offset, buf);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
-int CAimProto::aim_send_message(HANDLE hServerConn,unsigned short &seqno,const char* sn,char* amsg,bool auto_response, bool blast)
-{
+int CAimProto::aim_send_message(HANDLE hServerConn, unsigned short &seqno, const char* sn, char* amsg, bool auto_response, bool blast)
+{
aimString str(amsg);
const char* msg = str.getBuf();
const unsigned short msg_len = str.getSize();
- unsigned short tlv_offset=0;
- char* tlv_buf=(char*)alloca(5+msg_len+8);
+ unsigned short tlv_offset = 0;
+ char* tlv_buf = (char*)alloca(5 + msg_len + 8);
char icbm_cookie[8];
Utils_GetRandom(icbm_cookie, sizeof(icbm_cookie));
-
- aim_writegeneric(5,"\x05\x01\x00\x01\x01",tlv_offset,tlv_buf); // icbm im capabilities
- aim_writeshort(0x0101,tlv_offset,tlv_buf); // icbm im text tag
- aim_writeshort(msg_len+4,tlv_offset,tlv_buf); // icbm im text tag length
- aim_writeshort(str.isUnicode()?2:0,tlv_offset,tlv_buf); // character set
- aim_writeshort(0,tlv_offset,tlv_buf); // language
-
- aim_writegeneric(msg_len,msg,tlv_offset,tlv_buf); // message text
-
- unsigned short offset=0;
- unsigned short sn_length=(unsigned short)mir_strlen(sn);
- char* buf= (char*)alloca(SNAC_SIZE+8+3+sn_length+TLV_HEADER_SIZE*3+tlv_offset);
-
- aim_writesnac(0x04,0x06,offset,buf,get_random());
- aim_writegeneric(8,icbm_cookie,offset,buf); // icbm cookie
- aim_writeshort(0x01,offset,buf); // channel
- aim_writechar((unsigned char)sn_length,offset,buf); // screen name len
- aim_writegeneric(sn_length,sn,offset,buf); // screen name
-
- aim_writetlv(0x02,tlv_offset,tlv_buf,offset,buf);
-
- if (!blast)
- {
+
+ aim_writegeneric(5, "\x05\x01\x00\x01\x01", tlv_offset, tlv_buf); // icbm im capabilities
+ aim_writeshort(0x0101, tlv_offset, tlv_buf); // icbm im text tag
+ aim_writeshort(msg_len + 4, tlv_offset, tlv_buf); // icbm im text tag length
+ aim_writeshort(str.isUnicode() ? 2 : 0, tlv_offset, tlv_buf); // character set
+ aim_writeshort(0, tlv_offset, tlv_buf); // language
+
+ aim_writegeneric(msg_len, msg, tlv_offset, tlv_buf); // message text
+
+ unsigned short offset = 0;
+ unsigned short sn_length = (unsigned short)mir_strlen(sn);
+ char* buf = (char*)alloca(SNAC_SIZE + 8 + 3 + sn_length + TLV_HEADER_SIZE * 3 + tlv_offset);
+
+ aim_writesnac(0x04, 0x06, offset, buf, get_random());
+ aim_writegeneric(8, icbm_cookie, offset, buf); // icbm cookie
+ aim_writeshort(0x01, offset, buf); // channel
+ aim_writechar((unsigned char)sn_length, offset, buf); // screen name len
+ aim_writegeneric(sn_length, sn, offset, buf); // screen name
+
+ aim_writetlv(0x02, tlv_offset, tlv_buf, offset, buf);
+
+ if (!blast) {
if (auto_response)
- aim_writetlv(0x04,0,0,offset,buf); // auto-response message
- else
- {
- aim_writetlv(0x03,0,0,offset,buf); // message ack request
- aim_writetlv(0x06,0,0,offset,buf); // offline message storage
+ aim_writetlv(0x04, 0, 0, offset, buf); // auto-response message
+ else {
+ aim_writetlv(0x03, 0, 0, offset, buf); // message ack request
+ aim_writetlv(0x06, 0, 0, offset, buf); // offline message storage
}
}
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno) ? 0 : *(int*)icbm_cookie & 0x7fffffff;
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno) ? 0 : *(int*)icbm_cookie & 0x7fffffff;
}
-int CAimProto::aim_query_profile(HANDLE hServerConn,unsigned short &seqno,char* sn)
+int CAimProto::aim_query_profile(HANDLE hServerConn, unsigned short &seqno, char* sn)
{
- unsigned short offset=0;
- unsigned short sn_length=(unsigned short)mir_strlen(sn);
- char* buf=(char*)alloca(SNAC_SIZE+5+sn_length);
- aim_writesnac(0x02,0x15,offset,buf);
- aim_writelong(0x01,offset,buf);
- aim_writechar((unsigned char)sn_length,offset,buf);
- aim_writegeneric(sn_length,sn,offset,buf);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno)==0;
+ unsigned short offset = 0;
+ unsigned short sn_length = (unsigned short)mir_strlen(sn);
+ char* buf = (char*)alloca(SNAC_SIZE + 5 + sn_length);
+ aim_writesnac(0x02, 0x15, offset, buf);
+ aim_writelong(0x01, offset, buf);
+ aim_writechar((unsigned char)sn_length, offset, buf);
+ aim_writegeneric(sn_length, sn, offset, buf);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno) == 0;
}
int CAimProto::aim_delete_contact(HANDLE hServerConn, unsigned short &seqno, char* sn, unsigned short item_id,
- unsigned short group_id, unsigned short list, bool nil)
+ unsigned short group_id, unsigned short list, bool nil)
{
- unsigned short offset=0;
- unsigned short sn_length=(unsigned short)mir_strlen(sn);
- char* buf=(char*)alloca(SNAC_SIZE+sn_length+10);
- aim_writesnac(0x13,0x0a,offset,buf, get_random()); // SSI Delete
- aim_writeshort(sn_length,offset,buf); // screen name length
- aim_writegeneric(sn_length,sn,offset,buf); // screen name
- aim_writeshort(group_id,offset,buf); // group id
- aim_writeshort(item_id,offset,buf); // buddy id
- aim_writeshort(list,offset,buf); // buddy type
- aim_writeshort(nil?4:0,offset,buf); // length of extra data
- if (nil) aim_writetlv(0x6a,0,NULL,offset,buf);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ unsigned short offset = 0;
+ unsigned short sn_length = (unsigned short)mir_strlen(sn);
+ char* buf = (char*)alloca(SNAC_SIZE + sn_length + 10);
+ aim_writesnac(0x13, 0x0a, offset, buf, get_random()); // SSI Delete
+ aim_writeshort(sn_length, offset, buf); // screen name length
+ aim_writegeneric(sn_length, sn, offset, buf); // screen name
+ aim_writeshort(group_id, offset, buf); // group id
+ aim_writeshort(item_id, offset, buf); // buddy id
+ aim_writeshort(list, offset, buf); // buddy type
+ aim_writeshort(nil ? 4 : 0, offset, buf); // length of extra data
+ if (nil) aim_writetlv(0x6a, 0, NULL, offset, buf);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
int CAimProto::aim_add_contact(HANDLE hServerConn, unsigned short &seqno, const char* sn, unsigned short item_id,
- unsigned short group_id, unsigned short list, char* nick, char* note)
+ unsigned short group_id, unsigned short list, char* nick, char* note)
{
- unsigned short offset=0;
- unsigned short sn_length=(unsigned short)mir_strlen(sn);
+ unsigned short offset = 0;
+ unsigned short sn_length = (unsigned short)mir_strlen(sn);
unsigned short nick_length = (unsigned short)mir_strlen(nick);
unsigned short note_length = (unsigned short)mir_strlen(note);
unsigned short tlv_len = nick || note ? TLV_HEADER_SIZE * 2 + nick_length + note_length : 0;
- char* buf=(char*)alloca(SNAC_SIZE + sn_length + 10 + tlv_len);
- aim_writesnac(0x13,0x08,offset,buf, get_random()); // SSI Add
- aim_writeshort(sn_length,offset,buf); // screen name length
- aim_writegeneric(sn_length,sn,offset,buf); // screen name
- aim_writeshort(group_id,offset,buf); // group id
- aim_writeshort(item_id,offset,buf); // buddy id
- aim_writeshort(list,offset, buf); // buddy type
- aim_writeshort(tlv_len,offset,buf); // length of extra data
-
- if (nick || note)
- {
- aim_writetlv(0x13c,note_length,note,offset,buf);
- aim_writetlv(0x131,nick_length,nick,offset,buf);
+ char* buf = (char*)alloca(SNAC_SIZE + sn_length + 10 + tlv_len);
+ aim_writesnac(0x13, 0x08, offset, buf, get_random()); // SSI Add
+ aim_writeshort(sn_length, offset, buf); // screen name length
+ aim_writegeneric(sn_length, sn, offset, buf); // screen name
+ aim_writeshort(group_id, offset, buf); // group id
+ aim_writeshort(item_id, offset, buf); // buddy id
+ aim_writeshort(list, offset, buf); // buddy type
+ aim_writeshort(tlv_len, offset, buf); // length of extra data
+
+ if (nick || note) {
+ aim_writetlv(0x13c, note_length, note, offset, buf);
+ aim_writetlv(0x131, nick_length, nick, offset, buf);
}
return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
int CAimProto::aim_mod_group(HANDLE hServerConn, unsigned short &seqno, const char* name, unsigned short group_id,
- char* members, unsigned short members_length)
+ char* members, unsigned short members_length)
{
- unsigned short offset=0;
- unsigned short name_length=(unsigned short)mir_strlen(name);
- char* buf=(char*)alloca(SNAC_SIZE+TLV_HEADER_SIZE+name_length+members_length+10);
- aim_writesnac(0x13,0x09,offset,buf, get_random()); // SSI Edit
- aim_writeshort(name_length,offset,buf); // group name length
- aim_writegeneric(name_length,name,offset,buf); // group name
- aim_writeshort(group_id,offset,buf); // group id
- aim_writeshort(0,offset,buf); // buddy id
- aim_writeshort(1,offset,buf); // buddy type: Group
- aim_writeshort(TLV_HEADER_SIZE+members_length,offset,buf); // length of extra data
- aim_writetlv(0xc8,members_length,members,offset,buf);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ unsigned short offset = 0;
+ unsigned short name_length = (unsigned short)mir_strlen(name);
+ char* buf = (char*)alloca(SNAC_SIZE + TLV_HEADER_SIZE + name_length + members_length + 10);
+ aim_writesnac(0x13, 0x09, offset, buf, get_random()); // SSI Edit
+ aim_writeshort(name_length, offset, buf); // group name length
+ aim_writegeneric(name_length, name, offset, buf); // group name
+ aim_writeshort(group_id, offset, buf); // group id
+ aim_writeshort(0, offset, buf); // buddy id
+ aim_writeshort(1, offset, buf); // buddy type: Group
+ aim_writeshort(TLV_HEADER_SIZE + members_length, offset, buf); // length of extra data
+ aim_writetlv(0xc8, members_length, members, offset, buf);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
-int CAimProto::aim_mod_buddy(HANDLE hServerConn, unsigned short &seqno, const char* sn,
- unsigned short buddy_id, unsigned short group_id,
- char* nick, char* note)
+int CAimProto::aim_mod_buddy(HANDLE hServerConn, unsigned short &seqno, const char* sn,
+ unsigned short buddy_id, unsigned short group_id,
+ char* nick, char* note)
{
- unsigned short offset=0;
+ unsigned short offset = 0;
unsigned short sn_length = (unsigned short)mir_strlen(sn);
unsigned short nick_length = (unsigned short)mir_strlen(nick);
unsigned short note_length = (unsigned short)mir_strlen(note);
unsigned short tlv_len = TLV_HEADER_SIZE * 2 + nick_length + note_length;
-
- char* buf=(char*)alloca(SNAC_SIZE+sn_length+10+tlv_len);
- aim_writesnac(0x13,0x09,offset,buf, get_random()); // SSI Edit
- aim_writeshort(sn_length,offset,buf); // screen name length
- aim_writegeneric(sn_length,sn,offset,buf); // screen name
- aim_writeshort(buddy_id,offset,buf); // buddy id
- aim_writeshort(group_id,offset,buf); // group id
- aim_writeshort(0,offset,buf); // buddy type: Buddy
- aim_writeshort(tlv_len,offset,buf); // length of extra data
-
- aim_writetlv(0x13c,note_length,note,offset,buf);
- aim_writetlv(0x131,nick_length,nick,offset,buf);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+
+ char* buf = (char*)alloca(SNAC_SIZE + sn_length + 10 + tlv_len);
+ aim_writesnac(0x13, 0x09, offset, buf, get_random()); // SSI Edit
+ aim_writeshort(sn_length, offset, buf); // screen name length
+ aim_writegeneric(sn_length, sn, offset, buf); // screen name
+ aim_writeshort(buddy_id, offset, buf); // buddy id
+ aim_writeshort(group_id, offset, buf); // group id
+ aim_writeshort(0, offset, buf); // buddy type: Buddy
+ aim_writeshort(tlv_len, offset, buf); // length of extra data
+
+ aim_writetlv(0x13c, note_length, note, offset, buf);
+ aim_writetlv(0x131, nick_length, nick, offset, buf);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
int CAimProto::aim_set_pd_info(HANDLE hServerConn, unsigned short &seqno)
{
- unsigned short offset=0;
- char buf[SNAC_SIZE+TLV_HEADER_SIZE*3+20];
+ unsigned short offset = 0;
+ char buf[SNAC_SIZE + TLV_HEADER_SIZE * 3 + 20];
unsigned short req = 0x09;
- if (pd_info_id == 0)
- {
- pd_info_id = get_random();
+ if (m_pd_info_id == 0) {
+ m_pd_info_id = get_random();
req = 0x08;
}
- aim_writesnac(0x13,req,offset,buf, get_random()); // SSI Edit/Add
- aim_writeshort(0,offset,buf); // name length
- aim_writeshort(0,offset,buf); // group id (root)
- aim_writeshort(pd_info_id,offset,buf); // buddy id
- aim_writeshort(0x4,offset,buf); // pd info id
- aim_writeshort(0x15,offset,buf); // size
- aim_writetlvchar(0xca,pd_mode,offset,buf); // pd mode
- aim_writetlvlong(0xcb,0xffffffff,offset,buf); // pd mask
- aim_writetlvlong(0xcc,pd_flags,offset,buf); // pd flags
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ aim_writesnac(0x13, req, offset, buf, get_random()); // SSI Edit/Add
+ aim_writeshort(0, offset, buf); // name length
+ aim_writeshort(0, offset, buf); // group id (root)
+ aim_writeshort(m_pd_info_id, offset, buf); // buddy id
+ aim_writeshort(0x4, offset, buf); // pd info id
+ aim_writeshort(0x15, offset, buf); // size
+ aim_writetlvchar(0xca, m_pd_mode, offset, buf); // pd mode
+ aim_writetlvlong(0xcb, 0xffffffff, offset, buf); // pd mask
+ aim_writetlvlong(0xcc, m_pd_flags, offset, buf); // pd flags
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
int CAimProto::aim_ssi_update_preferences(HANDLE hServerConn, unsigned short &seqno)
{
unsigned short offset = 0;
- char buf[SNAC_SIZE+TLV_HEADER_SIZE*4+100];
+ char buf[SNAC_SIZE + TLV_HEADER_SIZE * 4 + 100];
unsigned short req = 0x09;
- if (pref1_id == 0)
- {
- pref1_id = get_random();
+ if (m_pref1_id == 0) {
+ m_pref1_id = get_random();
req = 0x08;
}
- aim_writesnac(0x13,req,offset,buf, get_random()); // SSI Edit/Add
- aim_writeshort(0,offset,buf); // group name length
- aim_writeshort(0,offset,buf); // group id (root)
- aim_writeshort(pref1_id,offset,buf); // buddy id
- aim_writeshort(5,offset,buf); // buddy type: Presence
+ aim_writesnac(0x13, req, offset, buf, get_random()); // SSI Edit/Add
+ aim_writeshort(0, offset, buf); // group name length
+ aim_writeshort(0, offset, buf); // group id (root)
+ aim_writeshort(m_pref1_id, offset, buf); // buddy id
+ aim_writeshort(5, offset, buf); // buddy type: Presence
unsigned short tlv_len = TLV_HEADER_SIZE * 2 + 8;
- if (pref2_len) tlv_len += TLV_HEADER_SIZE + pref2_len;
- if (pref2_set_len) tlv_len += TLV_HEADER_SIZE + pref2_set_len;
-
- aim_writeshort(tlv_len,offset,buf); // length of extra data
- aim_writetlvlong(0xc9,pref1_flags,offset,buf); // Update Buddy preferences 1
- aim_writetlvlong(0xd6,pref1_set_flags,offset,buf); // Update Buddy preferences 1
- if (pref2_len)
- aim_writetlv(0xd7,pref2_len,pref2_flags,offset,buf); // Update Buddy preferences 2
- if (pref2_set_len)
- aim_writetlv(0xd8,pref2_set_len,pref2_set_flags,offset,buf);// Update Buddy preferences 2
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ if (m_pref2_len) tlv_len += TLV_HEADER_SIZE + m_pref2_len;
+ if (m_pref2_set_len) tlv_len += TLV_HEADER_SIZE + m_pref2_set_len;
+
+ aim_writeshort(tlv_len, offset, buf); // length of extra data
+ aim_writetlvlong(0xc9, m_pref1_flags, offset, buf); // Update Buddy preferences 1
+ aim_writetlvlong(0xd6, m_pref1_set_flags, offset, buf); // Update Buddy preferences 1
+ if (m_pref2_len)
+ aim_writetlv(0xd7, m_pref2_len, m_pref2_flags, offset, buf); // Update Buddy preferences 2
+ if (m_pref2_set_len)
+ aim_writetlv(0xd8, m_pref2_set_len, m_pref2_set_flags, offset, buf); // Update Buddy preferences 2
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
int CAimProto::aim_ssi_update(HANDLE hServerConn, unsigned short &seqno, bool start)
{
- unsigned short offset=0;
+ unsigned short offset = 0;
char buf[SNAC_SIZE];
- aim_writesnac(0x13,start?0x11:0x12,offset,buf);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno)==0;
+ aim_writesnac(0x13, start ? 0x11 : 0x12, offset, buf);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno) == 0;
}
-int CAimProto::aim_keepalive(HANDLE hServerConn,unsigned short &seqno)
+int CAimProto::aim_keepalive(HANDLE hServerConn, unsigned short &seqno)
{
- return aim_sendflap(hServerConn,0x05,4,"\x0\x0\x0\xEE",seqno);
+ return aim_sendflap(hServerConn, 0x05, 4, "\x0\x0\x0\xEE", seqno);
}
// used when requesting a regular file transfer
int CAimProto::aim_send_file(HANDLE hServerConn, unsigned short &seqno,
- unsigned long ip, unsigned short port,
- bool force_proxy, file_transfer *ft)
-{
+ unsigned long ip, unsigned short port,
+ bool force_proxy, file_transfer *ft)
+{
char msg_frag[2048];
- unsigned short frag_offset=0;
+ unsigned short frag_offset = 0;
- aim_writeshort(0,frag_offset,msg_frag); // request type
- aim_writegeneric(8,ft->icbm_cookie,frag_offset,msg_frag); // icbm cookie
+ aim_writeshort(0, frag_offset, msg_frag); // request type
+ aim_writegeneric(8, ft->icbm_cookie, frag_offset, msg_frag); // icbm cookie
aim_writegeneric(AIM_CAPS_LENGTH, AIM_CAP_FILE_TRANSFER,
- frag_offset, msg_frag); // uuid
- aim_writetlvshort(0x0a,++ft->req_num,frag_offset,msg_frag); // request number
-// aim_writetlvshort(0x12,2,frag_offset,msg_frag); // max protocol version
+ frag_offset, msg_frag); // uuid
+ aim_writetlvshort(0x0a, ++ft->req_num, frag_offset, msg_frag); // request number
+
+ aim_writetlvlong(0x02, ip, frag_offset, msg_frag); // ip
+ aim_writetlvlong(0x16, ~ip, frag_offset, msg_frag); // ip check
- aim_writetlvlong(0x02,ip,frag_offset,msg_frag); // ip
- aim_writetlvlong(0x16,~ip,frag_offset,msg_frag); // ip check
+ aim_writetlvshort(0x05, port, frag_offset, msg_frag); // port
+ aim_writetlvshort(0x17, ~port, frag_offset, msg_frag); // port ip check
- aim_writetlvshort(0x05,port,frag_offset,msg_frag); // port
- aim_writetlvshort(0x17,~port,frag_offset,msg_frag); // port ip check
-
if (force_proxy)
- aim_writetlv(0x10,0,0,frag_offset,msg_frag); // request proxy transfer
+ aim_writetlv(0x10, 0, 0, frag_offset, msg_frag); // request proxy transfer
else
- aim_writetlvlong(0x03,internal_ip,frag_offset,msg_frag); // ip
+ aim_writetlvlong(0x03, m_internal_ip, frag_offset, msg_frag); // ip
- if (ft->req_num == 1)
- {
- if (ft->message)
- {
+ if (ft->req_num == 1) {
+ if (ft->message) {
aimString dscr(ft->message);
const char* charset = dscr.isUnicode() ? "unicode-2-0" : "us-ascii";
@@ -579,12 +572,12 @@ int CAimProto::aim_send_file(HANDLE hServerConn, unsigned short &seqno, const char* desc_msg = dscr.getBuf();
const unsigned short desc_len = dscr.getSize();
- aim_writetlv(0x0e,2,"en",frag_offset,msg_frag); // language used by the data
- aim_writetlv(0x0d,charset_len,charset,frag_offset,msg_frag);// charset used by the data
- aim_writetlv(0x0c,desc_len,desc_msg,frag_offset,msg_frag); // invitaion text
+ aim_writetlv(0x0e, 2, "en", frag_offset, msg_frag); // language used by the data
+ aim_writetlv(0x0d, charset_len, charset, frag_offset, msg_frag);// charset used by the data
+ aim_writetlv(0x0c, desc_len, desc_msg, frag_offset, msg_frag); // invitaion text
}
- aim_writetlv(0x0f,0,0,frag_offset,msg_frag); // request host check
+ aim_writetlv(0x0f, 0, 0, frag_offset, msg_frag); // request host check
const char* fname = get_fname(ft->file);
const unsigned short fnlen = (unsigned short)mir_strlen(fname);
@@ -592,263 +585,261 @@ int CAimProto::aim_send_file(HANDLE hServerConn, unsigned short &seqno, char* fblock = (char*)alloca(9 + fnlen);
*(unsigned short*)&fblock[0] = _htons(ft->pfts.totalFiles > 1 ? 2 : 1); // single file transfer
*(unsigned short*)&fblock[2] = _htons(ft->pfts.totalFiles); // number of files
- *(unsigned long*) &fblock[4] = _htonl(ft->pfts.totalBytes); // total bytes in files
+ *(unsigned long*)&fblock[4] = _htonl(ft->pfts.totalBytes); // total bytes in files
memcpy(&fblock[8], fname, fnlen + 1);
const char* enc = is_utf(fname) ? "utf-8" : "us-ascii";
- aim_writetlv(0x2711,9+fnlen,fblock,frag_offset,msg_frag); // extra data, file names, size
- aim_writetlv(0x2712,8,enc,frag_offset,msg_frag); // character set used by data
+ aim_writetlv(0x2711, 9 + fnlen, fblock, frag_offset, msg_frag); // extra data, file names, size
+ aim_writetlv(0x2712, 8, enc, frag_offset, msg_frag); // character set used by data
// aim_writetlvlong64(0x2713,ft->pfts.totalBytes,frag_offset,msg_frag); // file length
debugLogA("Attempting to Send a file to a buddy.");
}
- else
- {
- aim_writetlvshort(0x14,0x0a,frag_offset,msg_frag); // Counter proposal reason
+ else {
+ aim_writetlvshort(0x14, 0x0a, frag_offset, msg_frag); // Counter proposal reason
}
- unsigned short offset=0;
- unsigned short sn_length=(unsigned short)mir_strlen(ft->sn);
- char* buf=(char*)alloca(SNAC_SIZE+TLV_HEADER_SIZE*2+12+frag_offset+sn_length);
- aim_writesnac(0x04,0x06,offset,buf); // msg to host
- aim_writegeneric(8,ft->icbm_cookie,offset,buf); // icbm cookie
- aim_writeshort(2,offset,buf); // icbm channel
- aim_writechar((unsigned char)sn_length,offset,buf); // screen name length
- aim_writegeneric(sn_length,ft->sn,offset,buf); // screen name
- aim_writetlv(0x05,frag_offset,msg_frag,offset,buf); // icbm tags
- aim_writetlv(0x03,0,0,offset,buf); // request ack
+ unsigned short offset = 0;
+ unsigned short sn_length = (unsigned short)mir_strlen(ft->sn);
+ char* buf = (char*)alloca(SNAC_SIZE + TLV_HEADER_SIZE * 2 + 12 + frag_offset + sn_length);
+ aim_writesnac(0x04, 0x06, offset, buf); // msg to host
+ aim_writegeneric(8, ft->icbm_cookie, offset, buf); // icbm cookie
+ aim_writeshort(2, offset, buf); // icbm channel
+ aim_writechar((unsigned char)sn_length, offset, buf); // screen name length
+ aim_writegeneric(sn_length, ft->sn, offset, buf); // screen name
+ aim_writetlv(0x05, frag_offset, msg_frag, offset, buf); // icbm tags
+ aim_writetlv(0x03, 0, 0, offset, buf); // request ack
char cip[20];
long_ip_to_char_ip(ip, cip);
debugLogA("IP for Buddy to connect to: %s:%u", cip, port);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno)==0;
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno) == 0;
}
-int CAimProto::aim_file_ad(HANDLE hServerConn,unsigned short &seqno,char* sn, char* icbm_cookie, bool deny, unsigned short)
-{
- unsigned short frag_offset=0;
- char msg_frag[10+AIM_CAPS_LENGTH+TLV_HEADER_SIZE*2+6];
- aim_writeshort(deny ? 1 : 2,frag_offset,msg_frag); // icbm accept / deny
- aim_writegeneric(8,icbm_cookie,frag_offset,msg_frag); // icbm cookie
+int CAimProto::aim_file_ad(HANDLE hServerConn, unsigned short &seqno, char* sn, char* icbm_cookie, bool deny, unsigned short)
+{
+ unsigned short frag_offset = 0;
+ char msg_frag[10 + AIM_CAPS_LENGTH + TLV_HEADER_SIZE * 2 + 6];
+ aim_writeshort(deny ? 1 : 2, frag_offset, msg_frag); // icbm accept / deny
+ aim_writegeneric(8, icbm_cookie, frag_offset, msg_frag); // icbm cookie
aim_writegeneric(AIM_CAPS_LENGTH,
- AIM_CAP_FILE_TRANSFER,frag_offset,msg_frag); // uuid
+ AIM_CAP_FILE_TRANSFER, frag_offset, msg_frag); // uuid
// if (max_ver > 1)
// aim_writetlvshort(0x12,2,frag_offset,msg_frag); // max protocol version
- unsigned short sn_length=(unsigned short)mir_strlen(sn);
- unsigned short offset=0;
- char* buf=(char*)alloca(SNAC_SIZE+TLV_HEADER_SIZE+21+frag_offset+sn_length);
- aim_writesnac(0x04,0x06,offset,buf); // msg to host
- aim_writegeneric(8,icbm_cookie,offset,buf); // icbm cookie
- aim_writeshort(2,offset,buf); // icbm channel
- aim_writechar((unsigned char)sn_length,offset,buf); // screen name length
- aim_writegeneric(sn_length,sn,offset,buf); // screen name
- aim_writetlv(0x05,frag_offset,msg_frag,offset,buf); // icbm tags
+ unsigned short sn_length = (unsigned short)mir_strlen(sn);
+ unsigned short offset = 0;
+ char* buf = (char*)alloca(SNAC_SIZE + TLV_HEADER_SIZE + 21 + frag_offset + sn_length);
+ aim_writesnac(0x04, 0x06, offset, buf); // msg to host
+ aim_writegeneric(8, icbm_cookie, offset, buf); // icbm cookie
+ aim_writeshort(2, offset, buf); // icbm channel
+ aim_writechar((unsigned char)sn_length, offset, buf); // screen name length
+ aim_writegeneric(sn_length, sn, offset, buf); // screen name
+ aim_writetlv(0x05, frag_offset, msg_frag, offset, buf); // icbm tags
debugLogA("%s a file transfer.", deny ? "Denying" : "Accepting");
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno)==0;
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno) == 0;
}
-int CAimProto::aim_typing_notification(HANDLE hServerConn,unsigned short &seqno,char* sn,unsigned short type)
+int CAimProto::aim_typing_notification(HANDLE hServerConn, unsigned short &seqno, char* sn, unsigned short type)
{
- unsigned short offset=0;
- unsigned short sn_length=(unsigned short)mir_strlen(sn);
- char* buf= (char*)alloca(SNAC_SIZE+sn_length+13);
- aim_writesnac(0x04,0x14,offset,buf);
- aim_writegeneric(8,"\0\0\0\0\0\0\0\0",offset,buf); // icbm cookie
- aim_writeshort(1,offset,buf); // icbm channel
- aim_writechar((unsigned char)sn_length,offset,buf); // screen name length
- aim_writegeneric(sn_length,sn,offset,buf); // screen name
- aim_writeshort(type,offset,buf); // typing event
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ unsigned short offset = 0;
+ unsigned short sn_length = (unsigned short)mir_strlen(sn);
+ char* buf = (char*)alloca(SNAC_SIZE + sn_length + 13);
+ aim_writesnac(0x04, 0x14, offset, buf);
+ aim_writegeneric(8, "\0\0\0\0\0\0\0\0", offset, buf); // icbm cookie
+ aim_writeshort(1, offset, buf); // icbm channel
+ aim_writechar((unsigned char)sn_length, offset, buf); // screen name length
+ aim_writegeneric(sn_length, sn, offset, buf); // screen name
+ aim_writeshort(type, offset, buf); // typing event
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
-int CAimProto::aim_set_idle(HANDLE hServerConn,unsigned short &seqno,unsigned long seconds)
+int CAimProto::aim_set_idle(HANDLE hServerConn, unsigned short &seqno, unsigned long seconds)
{
- unsigned short offset=0;
- char buf[SNAC_SIZE+4];
- aim_writesnac(0x01,0x11,offset,buf);
- aim_writelong(seconds,offset,buf);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ unsigned short offset = 0;
+ char buf[SNAC_SIZE + 4];
+ aim_writesnac(0x01, 0x11, offset, buf);
+ aim_writelong(seconds, offset, buf);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
-int CAimProto::aim_request_mail(HANDLE hServerConn,unsigned short &seqno)
+int CAimProto::aim_request_mail(HANDLE hServerConn, unsigned short &seqno)
{
- unsigned short offset=0;
- char buf[SNAC_SIZE+34];
- aim_writesnac(0x18,0x06,offset,buf);
+ unsigned short offset = 0;
+ char buf[SNAC_SIZE + 34];
+ aim_writesnac(0x18, 0x06, offset, buf);
aim_writegeneric(34,
"\x00\x02"
"\xb3\x80\x9a\xd8\x0d\xba\x11\xd5\x9f\x8a\x00\x60\xb0\xee\x06\x31"
"\x5d\x5e\x17\x08\x55\xaa\x11\xd3\xb1\x43\x00\x60\xb0\xfb\x1e\xcb",
- offset,buf);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ offset, buf);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
-int CAimProto::aim_activate_mail(HANDLE hServerConn,unsigned short &seqno)
+int CAimProto::aim_activate_mail(HANDLE hServerConn, unsigned short &seqno)
{
- unsigned short offset=0;
- char buf[SNAC_SIZE+17];
- aim_writesnac(0x18,0x16,offset,buf);
- aim_writegeneric(17,"\x02\x04\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00",offset,buf);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ unsigned short offset = 0;
+ char buf[SNAC_SIZE + 17];
+ aim_writesnac(0x18, 0x16, offset, buf);
+ aim_writegeneric(17, "\x02\x04\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00", offset, buf);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
-int CAimProto::aim_request_avatar(HANDLE hServerConn,unsigned short &seqno, const char* sn, unsigned short bart_type, const char* hash, unsigned short hash_size)
+int CAimProto::aim_request_avatar(HANDLE hServerConn, unsigned short &seqno, const char* sn, unsigned short bart_type, const char* hash, unsigned short hash_size)
{
- unsigned short offset=0;
- unsigned char sn_length=(unsigned char)mir_strlen(sn);
- char* buf= (char*)alloca(SNAC_SIZE+sn_length+hash_size+12);
- aim_writesnac(0x10,0x06,offset,buf);
- aim_writechar(sn_length,offset,buf); // screen name length
- aim_writegeneric(sn_length,sn,offset,buf); // screen name
- aim_writechar(1,offset,buf); // number of BART ID
- aim_writebartid(bart_type,0,hash_size,hash,offset,buf);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ unsigned short offset = 0;
+ unsigned char sn_length = (unsigned char)mir_strlen(sn);
+ char* buf = (char*)alloca(SNAC_SIZE + sn_length + hash_size + 12);
+ aim_writesnac(0x10, 0x06, offset, buf);
+ aim_writechar(sn_length, offset, buf); // screen name length
+ aim_writegeneric(sn_length, sn, offset, buf); // screen name
+ aim_writechar(1, offset, buf); // number of BART ID
+ aim_writebartid(bart_type, 0, hash_size, hash, offset, buf);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
int CAimProto::aim_set_avatar_hash(HANDLE hServerConn, unsigned short &seqno, char flags, unsigned short bart_type, unsigned short &id, char size, const char* hash)
{
- unsigned short offset=0;
-
+ unsigned short offset = 0;
+
char bart_type_txt[8];
ultoa(bart_type, bart_type_txt, 10);
unsigned short bart_type_len = (unsigned short)mir_strlen(bart_type_txt);
unsigned short req = 0x09;
- if (id == 0)
- {
+ if (id == 0) {
id = get_random();
req = 0x08;
}
char* buf = (char*)alloca(SNAC_SIZE + TLV_HEADER_SIZE * 2 + 20 + size + bart_type_len);
- aim_writesnac(0x13,req,offset,buf, get_random()); // SSI Edit/Add
- aim_writeshort(bart_type_len,offset,buf); // name length
- aim_writegeneric(bart_type_len,bart_type_txt,offset,buf); // name
- aim_writeshort(0,offset,buf); // group id
- aim_writeshort(id,offset,buf); // buddy id
- aim_writeshort(0x14,offset,buf); // buddy type: Buddy Icon
- aim_writeshort(2+size+TLV_HEADER_SIZE,offset,buf); // length of extra data
-
- char* buf2 = (char*)alloca(2+size);
+ aim_writesnac(0x13, req, offset, buf, get_random()); // SSI Edit/Add
+ aim_writeshort(bart_type_len, offset, buf); // name length
+ aim_writegeneric(bart_type_len, bart_type_txt, offset, buf); // name
+ aim_writeshort(0, offset, buf); // group id
+ aim_writeshort(id, offset, buf); // buddy id
+ aim_writeshort(0x14, offset, buf); // buddy type: Buddy Icon
+ aim_writeshort(2 + size + TLV_HEADER_SIZE, offset, buf); // length of extra data
+
+ char* buf2 = (char*)alloca(2 + size);
buf2[0] = flags;
buf2[1] = (char)size;
memcpy(&buf2[2], hash, size);
- aim_writetlv(0xd5, 2+size, buf2, offset, buf); // BART
+ aim_writetlv(0xd5, 2 + size, buf2, offset, buf); // BART
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
int CAimProto::aim_delete_avatar_hash(HANDLE hServerConn, unsigned short &seqno, char /*flags*/, unsigned short bart_type, unsigned short & id)
{
- unsigned short offset=0;
+ unsigned short offset = 0;
if (id == 0) return -1;
id = 0;
-
+
char bart_type_txt[8];
ultoa(bart_type, bart_type_txt, 10);
unsigned short bart_type_len = (unsigned short)mir_strlen(bart_type_txt);
char* buf = (char*)alloca(SNAC_SIZE + 20 + bart_type_len);
- aim_writesnac(0x13,0x0a,offset,buf, get_random()); // SSI Delete
- aim_writeshort(bart_type_len,offset,buf); // name length
- aim_writegeneric(bart_type_len,bart_type_txt,offset,buf); // name
- aim_writeshort(0,offset,buf); // group id
- aim_writeshort(id,offset,buf); // buddy id
- aim_writeshort(0x14,offset,buf); // buddy type: Buddy Icon
- aim_writeshort(0,offset,buf); // length of extra data
+ aim_writesnac(0x13, 0x0a, offset, buf, get_random()); // SSI Delete
+ aim_writeshort(bart_type_len, offset, buf); // name length
+ aim_writegeneric(bart_type_len, bart_type_txt, offset, buf); // name
+ aim_writeshort(0, offset, buf); // group id
+ aim_writeshort(id, offset, buf); // buddy id
+ aim_writeshort(0x14, offset, buf); // buddy type: Buddy Icon
+ aim_writeshort(0, offset, buf); // length of extra data
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
int CAimProto::aim_upload_avatar(HANDLE hServerConn, unsigned short &seqno, unsigned short bart_type, const char* avatar, unsigned short avatar_size)
{
- unsigned short offset=0;
- char* buf=(char*)alloca(SNAC_SIZE+22+avatar_size);
- aim_writesnac(0x10,0x02,offset,buf);
- aim_writeshort(bart_type,offset,buf); // BART id
- aim_writeshort(avatar_size,offset,buf);
- aim_writegeneric(avatar_size,avatar,offset,buf);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ unsigned short offset = 0;
+ char* buf = (char*)alloca(SNAC_SIZE + 22 + avatar_size);
+ aim_writesnac(0x10, 0x02, offset, buf);
+ aim_writeshort(bart_type, offset, buf); // BART id
+ aim_writeshort(avatar_size, offset, buf);
+ aim_writegeneric(avatar_size, avatar, offset, buf);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
-int CAimProto::aim_search_by_email(HANDLE hServerConn,unsigned short &seqno, const char* email)
+int CAimProto::aim_search_by_email(HANDLE hServerConn, unsigned short &seqno, const char* email)
{
- unsigned short offset=0;
- char em_length=(char)mir_strlen(email);
- char* buf= (char*)alloca(SNAC_SIZE+em_length);
- aim_writesnac(0x0a,0x02,offset,buf); // Email search
- aim_writegeneric(em_length,email,offset,buf);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ unsigned short offset = 0;
+ char em_length = (char)mir_strlen(email);
+ char* buf = (char*)alloca(SNAC_SIZE + em_length);
+ aim_writesnac(0x0a, 0x02, offset, buf); // Email search
+ aim_writegeneric(em_length, email, offset, buf);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
-int CAimProto::aim_chatnav_request_limits(HANDLE hServerConn,unsigned short &seqno)
+int CAimProto::aim_chatnav_request_limits(HANDLE hServerConn, unsigned short &seqno)
{
- unsigned short offset=0;
+ unsigned short offset = 0;
char buf[SNAC_SIZE];
- aim_writesnac(0x0d,0x02,offset,buf);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno) ? -1 : 0;
+ aim_writesnac(0x0d, 0x02, offset, buf);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno) ? -1 : 0;
}
-int CAimProto::aim_chatnav_create(HANDLE hServerConn,unsigned short &seqno, char* room, unsigned short exchage)
+int CAimProto::aim_chatnav_create(HANDLE hServerConn, unsigned short &seqno, char* room, unsigned short exchage)
{
//* Join Pseudo Room (Get's the info we need for the real connection)
unsigned short room_len = (unsigned short)mir_strlen(room);
- unsigned short offset=0;
- char* buf=(char*)alloca(SNAC_SIZE+10+room_len+26);
- aim_writesnac(0x0d,0x08,offset,buf);
- aim_writeshort(exchage,offset,buf); // Exchange
- aim_writechar(6,offset,buf); // Command Length
- aim_writegeneric(6,"create",offset,buf); // Command
- aim_writeshort(0xffff,offset,buf); // Last Instance
- aim_writechar(1,offset,buf); // Detail
- aim_writeshort(3,offset,buf); // Number of TLVs
- aim_writetlv(0xd3,room_len,room,offset,buf); // Room Name
- aim_writetlv(0xd6,8,"us-ascii",offset,buf); // Character Set
- aim_writetlv(0xd7,2,"en",offset,buf); // Language Encoding
+ unsigned short offset = 0;
+ char* buf = (char*)alloca(SNAC_SIZE + 10 + room_len + 26);
+ aim_writesnac(0x0d, 0x08, offset, buf);
+ aim_writeshort(exchage, offset, buf); // Exchange
+ aim_writechar(6, offset, buf); // Command Length
+ aim_writegeneric(6, "create", offset, buf); // Command
+ aim_writeshort(0xffff, offset, buf); // Last Instance
+ aim_writechar(1, offset, buf); // Detail
+ aim_writeshort(3, offset, buf); // Number of TLVs
+ aim_writetlv(0xd3, room_len, room, offset, buf); // Room Name
+ aim_writetlv(0xd6, 8, "us-ascii", offset, buf); // Character Set
+ aim_writetlv(0xd7, 2, "en", offset, buf); // Language Encoding
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
-int CAimProto::aim_chatnav_room_info(HANDLE hServerConn,unsigned short &seqno, char* chat_cookie, unsigned short exchange, unsigned short instance)
-{
- unsigned short offset=0;
- unsigned short chat_cookie_len = (unsigned short)mir_strlen(chat_cookie);
- char* buf=(char*)alloca(SNAC_SIZE+7+chat_cookie_len);
- aim_writesnac(0x0d,0x04,offset,buf);
- aim_writeshort(exchange,offset,buf); // Exchange
- aim_writechar((unsigned char)chat_cookie_len,offset,buf); // Chat Cookie Length
- aim_writegeneric(chat_cookie_len,chat_cookie,offset,buf); // Chat Cookie
- aim_writeshort(instance,offset,buf); // Last Instance
- aim_writechar(1,offset,buf); // Detail
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
-}
+int CAimProto::aim_chatnav_room_info(HANDLE hServerConn, unsigned short &seqno, char* chat_cookie, unsigned short exchange, unsigned short instance)
+{
+ unsigned short offset = 0;
+ unsigned short chat_cookie_len = (unsigned short)mir_strlen(chat_cookie);
+ char* buf = (char*)alloca(SNAC_SIZE + 7 + chat_cookie_len);
+ aim_writesnac(0x0d, 0x04, offset, buf);
+ aim_writeshort(exchange, offset, buf); // Exchange
+ aim_writechar((unsigned char)chat_cookie_len, offset, buf); // Chat Cookie Length
+ aim_writegeneric(chat_cookie_len, chat_cookie, offset, buf); // Chat Cookie
+ aim_writeshort(instance, offset, buf); // Last Instance
+ aim_writechar(1, offset, buf); // Detail
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
+}
-int CAimProto::aim_chat_join_room(HANDLE hServerConn,unsigned short &seqno, char* chat_cookie,
- unsigned short exchange, unsigned short instance, unsigned short id)
+int CAimProto::aim_chat_join_room(HANDLE hServerConn, unsigned short &seqno, char* chat_cookie,
+ unsigned short exchange, unsigned short instance, unsigned short id)
{
- unsigned short offset=0;
+ unsigned short offset = 0;
unsigned short cookie_len = (unsigned short)mir_strlen(chat_cookie);
- char* buf=(char*)alloca(SNAC_SIZE+TLV_HEADER_SIZE*2+cookie_len+8);
- aim_writesnac(0x01,0x04,offset,buf,id);
- aim_writeshort(0x0e,offset,buf); // Service request for Chat
+ char* buf = (char*)alloca(SNAC_SIZE + TLV_HEADER_SIZE * 2 + cookie_len + 8);
+ aim_writesnac(0x01, 0x04, offset, buf, id);
+ aim_writeshort(0x0e, offset, buf); // Service request for Chat
- aim_writeshort(0x01,offset,buf); // Tag
- aim_writeshort(cookie_len+5,offset,buf); // Length
- aim_writeshort(exchange,offset,buf); // Value - Exchange
- aim_writechar((unsigned char)cookie_len,offset,buf); // Value - Cookie Length
- aim_writegeneric(cookie_len,chat_cookie,offset,buf); // Value - Cookie
- aim_writeshort(instance,offset,buf); // Value - Instance
+ aim_writeshort(0x01, offset, buf); // Tag
+ aim_writeshort(cookie_len + 5, offset, buf); // Length
+ aim_writeshort(exchange, offset, buf); // Value - Exchange
+ aim_writechar((unsigned char)cookie_len, offset, buf); // Value - Cookie Length
+ aim_writegeneric(cookie_len, chat_cookie, offset, buf); // Value - Cookie
+ aim_writeshort(instance, offset, buf); // Value - Instance
if (!getByte(AIM_KEY_DSSL, 0))
- aim_writetlv(0x8c,0,NULL,offset,buf); // Request SSL connection
+ aim_writetlv(0x8c, 0, NULL, offset, buf); // Request SSL connection
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
int CAimProto::aim_chat_send_message(HANDLE hServerConn, unsigned short &seqno, char *amsg)
@@ -861,133 +852,133 @@ int CAimProto::aim_chat_send_message(HANDLE hServerConn, unsigned short &seqno, const char* msg = str.getBuf();
const unsigned short msg_len = str.getSize();
- unsigned short tlv_offset=0;
- char* tlv_buf=(char*)alloca(TLV_HEADER_SIZE*4+chrset_len+msg_len+20);
- aim_writetlv(0x04,13,"text/x-aolrtf",tlv_offset,tlv_buf); // Format
- aim_writetlv(0x02,chrset_len,charset,tlv_offset,tlv_buf); // Character Set
- aim_writetlv(0x03,2,"en",tlv_offset,tlv_buf); // Language Encoding
- aim_writetlv(0x01,msg_len,msg,tlv_offset,tlv_buf); // Message
+ unsigned short tlv_offset = 0;
+ char* tlv_buf = (char*)alloca(TLV_HEADER_SIZE * 4 + chrset_len + msg_len + 20);
+ aim_writetlv(0x04, 13, "text/x-aolrtf", tlv_offset, tlv_buf); // Format
+ aim_writetlv(0x02, chrset_len, charset, tlv_offset, tlv_buf); // Character Set
+ aim_writetlv(0x03, 2, "en", tlv_offset, tlv_buf); // Language Encoding
+ aim_writetlv(0x01, msg_len, msg, tlv_offset, tlv_buf); // Message
- unsigned short offset=0;
- char* buf=(char*)alloca(SNAC_SIZE+8+2+TLV_HEADER_SIZE*3+tlv_offset);
- aim_writesnac(0x0e,0x05,offset,buf);
- aim_writegeneric(8,"\0\0\0\0\0\0\0\0",offset,buf); // Message Cookie (can be random)
- aim_writeshort(0x03,offset,buf); // Message Channel (Always 3 for chat)
- aim_writetlv(0x01,0,NULL,offset,buf); // Public/Whisper flag
- aim_writetlv(0x06,0,NULL,offset,buf); // Enable Reflection flag
- aim_writetlv(0x05,tlv_offset,tlv_buf,offset,buf); // Message Information TLV
+ unsigned short offset = 0;
+ char* buf = (char*)alloca(SNAC_SIZE + 8 + 2 + TLV_HEADER_SIZE * 3 + tlv_offset);
+ aim_writesnac(0x0e, 0x05, offset, buf);
+ aim_writegeneric(8, "\0\0\0\0\0\0\0\0", offset, buf); // Message Cookie (can be random)
+ aim_writeshort(0x03, offset, buf); // Message Channel (Always 3 for chat)
+ aim_writetlv(0x01, 0, NULL, offset, buf); // Public/Whisper flag
+ aim_writetlv(0x06, 0, NULL, offset, buf); // Enable Reflection flag
+ aim_writetlv(0x05, tlv_offset, tlv_buf, offset, buf); // Message Information TLV
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
-int CAimProto::aim_chat_invite(HANDLE hServerConn,unsigned short &seqno, char* chat_cookie, unsigned short exchange, unsigned short instance, char* sn, char* msg)
+int CAimProto::aim_chat_invite(HANDLE hServerConn, unsigned short &seqno, char* chat_cookie, unsigned short exchange, unsigned short instance, char* sn, char* msg)
{
- unsigned short offset=0;
+ unsigned short offset = 0;
unsigned short chat_cookie_len = (unsigned short)mir_strlen(chat_cookie);
unsigned short sn_len = (unsigned short)mir_strlen(sn);
unsigned short msg_len = (unsigned short)mir_strlen(msg);
- char* buf=(char*)alloca(SNAC_SIZE+64+chat_cookie_len+sn_len+msg_len);
- aim_writesnac(0x04,0x06,offset,buf);
- aim_writegeneric(8,"\0\0\0\0\0\0\0\0",offset,buf); // ICBM Cookie
- aim_writeshort(2,offset,buf); // ICBM Channel
- aim_writechar((unsigned char)sn_len,offset,buf); // Screen Name Length
- aim_writegeneric(sn_len,sn,offset,buf); // Screen Name
-
- aim_writeshort(0x05,offset,buf); // Rendezvous Message Data TLV
- aim_writeshort(49+msg_len+chat_cookie_len,offset,buf); // TLV size
-
- aim_writeshort(0,offset,buf); // Message Type (0) - Request
- aim_writegeneric(8,"\0\0\0\0\0\0\0\0",offset,buf); // ICBM Cookie (same as above)
- aim_writegeneric(16,AIM_CAP_CHAT,offset,buf); // Capability
-
- aim_writetlvshort(0x0a,1,offset,buf); // Sequence Number TLV
- aim_writetlv(0x0f,0,NULL,offset,buf); // Request Host Caps Check TLV
- aim_writetlv(0x0c,msg_len,msg,offset,buf); // Invitation Message TLV
-
- aim_writeshort(0x2711,offset,buf); // Capability TLV
- aim_writeshort(chat_cookie_len+5,offset,buf); // Length
- aim_writeshort(exchange,offset,buf); // Value - Exchange
- aim_writechar((unsigned char)chat_cookie_len,offset,buf); // Value - Cookie Length
- aim_writegeneric(chat_cookie_len,chat_cookie,offset,buf); // Value - Cookie
- aim_writeshort(instance,offset,buf); // Value - Instance
+ char* buf = (char*)alloca(SNAC_SIZE + 64 + chat_cookie_len + sn_len + msg_len);
+ aim_writesnac(0x04, 0x06, offset, buf);
+ aim_writegeneric(8, "\0\0\0\0\0\0\0\0", offset, buf); // ICBM Cookie
+ aim_writeshort(2, offset, buf); // ICBM Channel
+ aim_writechar((unsigned char)sn_len, offset, buf); // Screen Name Length
+ aim_writegeneric(sn_len, sn, offset, buf); // Screen Name
+
+ aim_writeshort(0x05, offset, buf); // Rendezvous Message Data TLV
+ aim_writeshort(49 + msg_len + chat_cookie_len, offset, buf); // TLV size
+
+ aim_writeshort(0, offset, buf); // Message Type (0) - Request
+ aim_writegeneric(8, "\0\0\0\0\0\0\0\0", offset, buf); // ICBM Cookie (same as above)
+ aim_writegeneric(16, AIM_CAP_CHAT, offset, buf); // Capability
+
+ aim_writetlvshort(0x0a, 1, offset, buf); // Sequence Number TLV
+ aim_writetlv(0x0f, 0, NULL, offset, buf); // Request Host Caps Check TLV
+ aim_writetlv(0x0c, msg_len, msg, offset, buf); // Invitation Message TLV
+
+ aim_writeshort(0x2711, offset, buf); // Capability TLV
+ aim_writeshort(chat_cookie_len + 5, offset, buf); // Length
+ aim_writeshort(exchange, offset, buf); // Value - Exchange
+ aim_writechar((unsigned char)chat_cookie_len, offset, buf); // Value - Cookie Length
+ aim_writegeneric(chat_cookie_len, chat_cookie, offset, buf); // Value - Cookie
+ aim_writeshort(instance, offset, buf); // Value - Instance
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
-int CAimProto::aim_chat_deny(HANDLE hServerConn,unsigned short &seqno,char* sn,char* icbm_cookie)
-{
- unsigned short offset=0;
- unsigned short sn_length=(unsigned short)mir_strlen(sn);
- char* buf=(char*)alloca(SNAC_SIZE+20+sn_length);
- aim_writesnac(0x04,0x0b,offset,buf);
- aim_writegeneric(8,icbm_cookie,offset,buf); // ICBM Cookie
- aim_writeshort(2,offset,buf); // Channel
- aim_writechar((unsigned char)sn_length,offset,buf); // Screen Name length
- aim_writegeneric(sn_length,sn,offset,buf); // Screen Name
- aim_writeshort(3,offset,buf); // Error code
- aim_writeshort(2,offset,buf); // Error code
- aim_writeshort(1,offset,buf); // Error code
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno)==0;
+int CAimProto::aim_chat_deny(HANDLE hServerConn, unsigned short &seqno, char* sn, char* icbm_cookie)
+{
+ unsigned short offset = 0;
+ unsigned short sn_length = (unsigned short)mir_strlen(sn);
+ char* buf = (char*)alloca(SNAC_SIZE + 20 + sn_length);
+ aim_writesnac(0x04, 0x0b, offset, buf);
+ aim_writegeneric(8, icbm_cookie, offset, buf); // ICBM Cookie
+ aim_writeshort(2, offset, buf); // Channel
+ aim_writechar((unsigned char)sn_length, offset, buf); // Screen Name length
+ aim_writegeneric(sn_length, sn, offset, buf); // Screen Name
+ aim_writeshort(3, offset, buf); // Error code
+ aim_writeshort(2, offset, buf); // Error code
+ aim_writeshort(1, offset, buf); // Error code
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno) == 0;
}
-int CAimProto::aim_admin_ready(HANDLE hServerConn,unsigned short &seqno)
+int CAimProto::aim_admin_ready(HANDLE hServerConn, unsigned short &seqno)
{
- unsigned short offset=0;
- char buf[SNAC_SIZE+TLV_HEADER_SIZE*4];
- aim_writesnac(0x01,0x02,offset,buf);
- aim_writefamily(AIM_SERVICE_GENERIC,offset,buf);
- aim_writegeneric(4,AIM_TOOL_VERSION,offset,buf);
- aim_writefamily(AIM_SERVICE_ADMIN,offset,buf);
- aim_writegeneric(4,AIM_TOOL_VERSION,offset,buf);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ unsigned short offset = 0;
+ char buf[SNAC_SIZE + TLV_HEADER_SIZE * 4];
+ aim_writesnac(0x01, 0x02, offset, buf);
+ aim_writefamily(AIM_SERVICE_GENERIC, offset, buf);
+ aim_writegeneric(4, AIM_TOOL_VERSION, offset, buf);
+ aim_writefamily(AIM_SERVICE_ADMIN, offset, buf);
+ aim_writegeneric(4, AIM_TOOL_VERSION, offset, buf);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
-int CAimProto::aim_admin_format_name(HANDLE hServerConn,unsigned short &seqno, const char* sn)
+int CAimProto::aim_admin_format_name(HANDLE hServerConn, unsigned short &seqno, const char* sn)
{
- unsigned short offset=0;
+ unsigned short offset = 0;
unsigned short sn_len = (unsigned short)mir_strlen(sn);
- char* buf=(char*)alloca(SNAC_SIZE+TLV_HEADER_SIZE+sn_len);
- aim_writesnac(0x07,0x04,offset,buf);
- aim_writetlv(0x01,sn_len,sn,offset,buf);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ char* buf = (char*)alloca(SNAC_SIZE + TLV_HEADER_SIZE + sn_len);
+ aim_writesnac(0x07, 0x04, offset, buf);
+ aim_writetlv(0x01, sn_len, sn, offset, buf);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
-int CAimProto::aim_admin_change_email(HANDLE hServerConn,unsigned short &seqno, const char* email)
+int CAimProto::aim_admin_change_email(HANDLE hServerConn, unsigned short &seqno, const char* email)
{
- unsigned short offset=0;
+ unsigned short offset = 0;
unsigned short email_len = (unsigned short)mir_strlen(email);
- char* buf=(char*)alloca(SNAC_SIZE+TLV_HEADER_SIZE+email_len);
- aim_writesnac(0x07,0x04,offset,buf);
- aim_writetlv(0x11,email_len,email,offset,buf);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ char* buf = (char*)alloca(SNAC_SIZE + TLV_HEADER_SIZE + email_len);
+ aim_writesnac(0x07, 0x04, offset, buf);
+ aim_writetlv(0x11, email_len, email, offset, buf);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
-int CAimProto::aim_admin_change_password(HANDLE hServerConn,unsigned short &seqno, const char* cur_pw, const char* new_pw)
+int CAimProto::aim_admin_change_password(HANDLE hServerConn, unsigned short &seqno, const char* cur_pw, const char* new_pw)
{
- unsigned short offset=0;
+ unsigned short offset = 0;
unsigned short cur_pw_len = (unsigned short)mir_strlen(cur_pw);
unsigned short new_pw_len = (unsigned short)mir_strlen(new_pw);
- char* buf=(char*)alloca(SNAC_SIZE+2*TLV_HEADER_SIZE+cur_pw_len+new_pw_len);
- aim_writesnac(0x07,0x04,offset,buf);
- aim_writetlv(0x02,new_pw_len,new_pw,offset,buf);
- aim_writetlv(0x12,cur_pw_len,cur_pw,offset,buf);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ char* buf = (char*)alloca(SNAC_SIZE + 2 * TLV_HEADER_SIZE + cur_pw_len + new_pw_len);
+ aim_writesnac(0x07, 0x04, offset, buf);
+ aim_writetlv(0x02, new_pw_len, new_pw, offset, buf);
+ aim_writetlv(0x12, cur_pw_len, cur_pw, offset, buf);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
-int CAimProto::aim_admin_request_info(HANDLE hServerConn,unsigned short &seqno, const unsigned short &type)
+int CAimProto::aim_admin_request_info(HANDLE hServerConn, unsigned short &seqno, const unsigned short &type)
{
// types: 0x01 - nickname, 0x11 - email info, 0x13 - registration status
- unsigned short offset=0;
- char buf[SNAC_SIZE+TLV_HEADER_SIZE];
- aim_writesnac(0x07,0x02,offset,buf);
- aim_writetlv(type,0,NULL,offset,buf);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ unsigned short offset = 0;
+ char buf[SNAC_SIZE + TLV_HEADER_SIZE];
+ aim_writesnac(0x07, 0x02, offset, buf);
+ aim_writetlv(type, 0, NULL, offset, buf);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
-int CAimProto::aim_admin_account_confirm(HANDLE hServerConn,unsigned short &seqno)
+int CAimProto::aim_admin_account_confirm(HANDLE hServerConn, unsigned short &seqno)
{
- unsigned short offset=0;
- char buf[SNAC_SIZE+TLV_HEADER_SIZE];
- aim_writesnac(0x07,0x06,offset,buf);
- return aim_sendflap(hServerConn,0x02,offset,buf,seqno);
+ unsigned short offset = 0;
+ char buf[SNAC_SIZE + TLV_HEADER_SIZE];
+ aim_writesnac(0x07, 0x06, offset, buf);
+ return aim_sendflap(hServerConn, 0x02, offset, buf, seqno);
}
diff --git a/protocols/AimOscar/src/connection.cpp b/protocols/AimOscar/src/connection.cpp index 1961da1dbc..0a09c6d86c 100644 --- a/protocols/AimOscar/src/connection.cpp +++ b/protocols/AimOscar/src/connection.cpp @@ -16,6 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+
#include "stdafx.h"
HANDLE CAimProto::aim_connect(const char* server, unsigned short port, bool use_ssl, const char* host)
@@ -27,9 +28,9 @@ HANDLE CAimProto::aim_connect(const char* server, unsigned short port, bool use_ ncon.timeout = 6;
ncon.flags = NLOCF_V2;
debugLogA("%s:%u", server, port);
- HANDLE con = (HANDLE) CallService(MS_NETLIB_OPENCONNECTION, (WPARAM)m_hNetlibUser, (LPARAM)&ncon);
+ HANDLE con = (HANDLE)CallService(MS_NETLIB_OPENCONNECTION, (WPARAM)m_hNetlibUser, (LPARAM)&ncon);
if (con && use_ssl) {
- NETLIBSSL ssl = {0};
+ NETLIBSSL ssl = { 0 };
ssl.cbSize = sizeof(ssl);
ssl.host = host;
if (!CallService(MS_NETLIB_STARTSSL, (WPARAM)con, (LPARAM)&ssl)) {
@@ -41,14 +42,14 @@ HANDLE CAimProto::aim_connect(const char* server, unsigned short port, bool use_ }
HANDLE CAimProto::aim_peer_connect(const char* ip, unsigned short port)
-{
+{
NETLIBOPENCONNECTION ncon = { 0 };
ncon.cbSize = sizeof(ncon);
ncon.flags = NLOCF_V2;
ncon.szHost = ip;
ncon.wPort = port;
ncon.timeout = 3;
- return (HANDLE)CallService(MS_NETLIB_OPENCONNECTION, (WPARAM)hNetlibPeer, (LPARAM)&ncon);
+ return (HANDLE)CallService(MS_NETLIB_OPENCONNECTION, (WPARAM)m_hNetlibPeer, (LPARAM)&ncon);
}
HANDLE CAimProto::aim_peer_connect(unsigned long ip, unsigned short port)
@@ -64,15 +65,15 @@ void CAimProto::aim_connection_authorization(void) if (m_iDesiredStatus != ID_STATUS_OFFLINE) {
char *password = getStringA(AIM_KEY_PW);
if (password != NULL) {
- mir_free(username);
- username = getStringA(AIM_KEY_SN);
- if (username != NULL) {
- HANDLE hServerPacketRecver = (HANDLE)CallService(MS_NETLIB_CREATEPACKETRECVER, (WPARAM)hServerConn, 2048 * 4);
- NETLIBPACKETRECVER packetRecv = {0};
+ mir_free(m_username);
+ m_username = getStringA(AIM_KEY_SN);
+ if (m_username != NULL) {
+ HANDLE hServerPacketRecver = (HANDLE)CallService(MS_NETLIB_CREATEPACKETRECVER, (WPARAM)m_hServerConn, 2048 * 4);
+ NETLIBPACKETRECVER packetRecv = { 0 };
packetRecv.cbSize = sizeof(packetRecv);
packetRecv.dwTimeout = 5000;
for (;;) {
- int recvResult = CallService(MS_NETLIB_GETMOREPACKETS, (WPARAM) hServerPacketRecver, (LPARAM) & packetRecv);
+ int recvResult = CallService(MS_NETLIB_GETMOREPACKETS, (WPARAM)hServerPacketRecver, (LPARAM)& packetRecv);
if (recvResult == 0) {
debugLogA("Connection Closed: No Error? during Connection Authorization");
break;
@@ -82,24 +83,24 @@ void CAimProto::aim_connection_authorization(void) break;
}
else {
- unsigned short flap_length=0;
- for (;packetRecv.bytesUsed<packetRecv.bytesAvailable;packetRecv.bytesUsed = flap_length) {
+ unsigned short flap_length = 0;
+ for (; packetRecv.bytesUsed < packetRecv.bytesAvailable; packetRecv.bytesUsed = flap_length) {
if (!packetRecv.buffer)
break;
- FLAP flap((char*)&packetRecv.buffer[packetRecv.bytesUsed],(unsigned short)(packetRecv.bytesAvailable-packetRecv.bytesUsed));
+ FLAP flap((char*)&packetRecv.buffer[packetRecv.bytesUsed], (unsigned short)(packetRecv.bytesAvailable - packetRecv.bytesUsed));
if (!flap.len())
break;
- flap_length+=FLAP_SIZE+flap.len();
+ flap_length += FLAP_SIZE + flap.len();
if (flap.cmp(0x01)) {
- if (aim_send_connection_packet(hServerConn, seqno,flap.val())==0)//cookie challenge
- aim_authkey_request(hServerConn, seqno);//md5 authkey request
+ if (aim_send_connection_packet(m_hServerConn, m_seqno, flap.val()) == 0) // cookie challenge
+ aim_authkey_request(m_hServerConn, m_seqno); // md5 authkey request
}
else if (flap.cmp(0x02)) {
- SNAC snac(flap.val(),flap.snaclen());
+ SNAC snac(flap.val(), flap.snaclen());
if (snac.cmp(0x0017)) {
- snac_md5_authkey(snac,hServerConn,seqno, username, password);
+ snac_md5_authkey(snac, m_hServerConn, m_seqno, m_username, password);
int authres = snac_authorization_reply(snac);
switch (authres) {
case 1:
@@ -125,102 +126,88 @@ void CAimProto::aim_connection_authorization(void) }
}
}
-exit:
+ exit:
if (hServerPacketRecver)
- Netlib_CloseHandle(hServerPacketRecver);
+ Netlib_CloseHandle(hServerPacketRecver);
}
}
mir_free(password);
}
- if (m_iStatus!=ID_STATUS_OFFLINE)
+ if (m_iStatus != ID_STATUS_OFFLINE)
broadcast_status(ID_STATUS_OFFLINE);
- Netlib_CloseHandle(hServerConn);
- hServerConn=NULL;
+ Netlib_CloseHandle(m_hServerConn);
+ m_hServerConn = NULL;
debugLogA("Connection Authorization Thread Ending: End of Thread");
}
-void __cdecl CAimProto::aim_protocol_negotiation( void* )
+void __cdecl CAimProto::aim_protocol_negotiation(void*)
{
- HANDLE hServerPacketRecver = (HANDLE)CallService(MS_NETLIB_CREATEPACKETRECVER, (WPARAM)hServerConn, 2048 * 8);
+ HANDLE hServerPacketRecver = (HANDLE)CallService(MS_NETLIB_CREATEPACKETRECVER, (WPARAM)m_hServerConn, 2048 * 8);
- NETLIBPACKETRECVER packetRecv = {0};
+ NETLIBPACKETRECVER packetRecv = { 0 };
packetRecv.cbSize = sizeof(packetRecv);
- packetRecv.dwTimeout = DEFAULT_KEEPALIVE_TIMER*1000;
- for (;;)
- {
+ packetRecv.dwTimeout = DEFAULT_KEEPALIVE_TIMER * 1000;
+ for (;;) {
int recvResult = CallService(MS_NETLIB_GETMOREPACKETS, (WPARAM)hServerPacketRecver, (LPARAM)&packetRecv);
- if (recvResult == 0)
- {
+ if (recvResult == 0) {
debugLogA("Connection Closed: No Error during Connection Negotiation?");
break;
}
- else if (recvResult == SOCKET_ERROR)
- {
- if (WSAGetLastError() == ERROR_TIMEOUT)
- {
- if (aim_keepalive(hServerConn,seqno) < 0)
+ else if (recvResult == SOCKET_ERROR) {
+ if (WSAGetLastError() == ERROR_TIMEOUT) {
+ if (aim_keepalive(m_hServerConn, m_seqno) < 0)
break;
}
- else
- {
+ else {
debugLogA("Connection Closed: Socket Error during Connection Negotiation %d", WSAGetLastError());
break;
}
}
- else if (recvResult>0)
- {
- unsigned short flap_length=0;
- for (;packetRecv.bytesUsed<packetRecv.bytesAvailable;packetRecv.bytesUsed=flap_length)
- {
+ else if (recvResult > 0) {
+ unsigned short flap_length = 0;
+ for (; packetRecv.bytesUsed < packetRecv.bytesAvailable; packetRecv.bytesUsed = flap_length) {
if (!packetRecv.buffer)
break;
- FLAP flap((char*)&packetRecv.buffer[packetRecv.bytesUsed],packetRecv.bytesAvailable-packetRecv.bytesUsed);
+ FLAP flap((char*)&packetRecv.buffer[packetRecv.bytesUsed], packetRecv.bytesAvailable - packetRecv.bytesUsed);
if (!flap.len())
break;
- flap_length+=FLAP_SIZE+flap.len();
- if (flap.cmp(0x01))
- {
- aim_send_cookie(hServerConn,seqno,COOKIE_LENGTH,COOKIE);//cookie challenge
+ flap_length += FLAP_SIZE + flap.len();
+ if (flap.cmp(0x01)) {
+ aim_send_cookie(m_hServerConn, m_seqno, COOKIE_LENGTH, COOKIE);//cookie challenge
mir_free(COOKIE);
- COOKIE=NULL;
- COOKIE_LENGTH=0;
+ COOKIE = NULL;
+ COOKIE_LENGTH = 0;
}
- else if (flap.cmp(0x02))
- {
- SNAC snac(flap.val(),flap.snaclen());
- if (snac.cmp(0x0001))
- {
- snac_supported_families(snac,hServerConn,seqno);
- snac_supported_family_versions(snac,hServerConn,seqno);
- snac_rate_limitations(snac,hServerConn,seqno);
+ else if (flap.cmp(0x02)) {
+ SNAC snac(flap.val(), flap.snaclen());
+ if (snac.cmp(0x0001)) {
+ snac_supported_families(snac, m_hServerConn, m_seqno);
+ snac_supported_family_versions(snac, m_hServerConn, m_seqno);
+ snac_rate_limitations(snac, m_hServerConn, m_seqno);
snac_service_redirect(snac);
snac_self_info(snac);
snac_error(snac);
}
- else if (snac.cmp(0x0002))
- {
+ else if (snac.cmp(0x0002)) {
snac_received_info(snac);
snac_error(snac);
}
- else if (snac.cmp(0x0003))
- {
+ else if (snac.cmp(0x0003)) {
snac_user_online(snac);
snac_user_offline(snac);
snac_error(snac);
}
- else if (snac.cmp(0x0004))
- {
- snac_icbm_limitations(snac,hServerConn,seqno);
+ else if (snac.cmp(0x0004)) {
+ snac_icbm_limitations(snac, m_hServerConn, m_seqno);
snac_message_accepted(snac);
- snac_received_message(snac,hServerConn,seqno);
+ snac_received_message(snac, m_hServerConn, m_seqno);
snac_typing_notification(snac);
snac_error(snac);
snac_file_decline(snac);
}
- else if (snac.cmp(0x000A))
- {
+ else if (snac.cmp(0x000A)) {
snac_email_search_results(snac);
- /*
+ /*
If there's no match (error 0x14), AIM will pop up a message.
Since it's annoying and there's no other errors that'll get
generated, I just assume leave this commented out. It's here
@@ -228,15 +215,13 @@ void __cdecl CAimProto::aim_protocol_negotiation( void* ) */
//snac_error(snac);
}
- else if (snac.cmp(0x0013))
- {
- snac_contact_list(snac,hServerConn,seqno);
+ else if (snac.cmp(0x0013)) {
+ snac_contact_list(snac, m_hServerConn, m_seqno);
snac_list_modification_ack(snac);
snac_error(snac);
}
}
- else if (flap.cmp(0x04))
- {
+ else if (flap.cmp(0x04)) {
ProtoBroadcastAck(NULL, ACKTYPE_LOGIN, ACKRESULT_FAILED, NULL, LOGINERR_OTHERLOCATION);
debugLogA("Connection Negotiation Thread Ending: Flap 0x04");
goto exit;
@@ -246,67 +231,57 @@ void __cdecl CAimProto::aim_protocol_negotiation( void* ) }
exit:
- if (m_iStatus!=ID_STATUS_OFFLINE) broadcast_status(ID_STATUS_OFFLINE);
- Netlib_CloseHandle(hServerPacketRecver); hServerPacketRecver=NULL;
- Netlib_CloseHandle(hServerConn); hServerConn=NULL;
+ if (m_iStatus != ID_STATUS_OFFLINE) broadcast_status(ID_STATUS_OFFLINE);
+ Netlib_CloseHandle(hServerPacketRecver); hServerPacketRecver = NULL;
+ Netlib_CloseHandle(m_hServerConn); m_hServerConn = NULL;
debugLogA("Connection Negotiation Thread Ending: End of Thread");
offline_contacts();
}
-void __cdecl CAimProto::aim_mail_negotiation( void* )
+void __cdecl CAimProto::aim_mail_negotiation(void*)
{
- HANDLE hServerPacketRecver = (HANDLE) CallService(MS_NETLIB_CREATEPACKETRECVER, (WPARAM)hMailConn, 2048 * 8);
+ HANDLE hServerPacketRecver = (HANDLE)CallService(MS_NETLIB_CREATEPACKETRECVER, (WPARAM)m_hMailConn, 2048 * 8);
- NETLIBPACKETRECVER packetRecv = {0};
+ NETLIBPACKETRECVER packetRecv = { 0 };
packetRecv.cbSize = sizeof(packetRecv);
- packetRecv.dwTimeout = DEFAULT_KEEPALIVE_TIMER*1000;
- while(m_iStatus!=ID_STATUS_OFFLINE)
- {
+ packetRecv.dwTimeout = DEFAULT_KEEPALIVE_TIMER * 1000;
+ while (m_iStatus != ID_STATUS_OFFLINE) {
int recvResult = CallService(MS_NETLIB_GETMOREPACKETS, (WPARAM)hServerPacketRecver, (LPARAM)&packetRecv);
- if (recvResult == 0)
- {
+ if (recvResult == 0) {
break;
}
- if (recvResult == SOCKET_ERROR)
- {
- if (WSAGetLastError() == ERROR_TIMEOUT)
- {
- if (aim_keepalive(hMailConn, mail_seqno) < 0)
+ if (recvResult == SOCKET_ERROR) {
+ if (WSAGetLastError() == ERROR_TIMEOUT) {
+ if (aim_keepalive(m_hMailConn, m_mail_seqno) < 0)
break;
}
else
break;
}
- if (recvResult>0)
- {
- unsigned short flap_length=0;
- for (;packetRecv.bytesUsed<packetRecv.bytesAvailable;packetRecv.bytesUsed=flap_length)
- {
+ if (recvResult > 0) {
+ unsigned short flap_length = 0;
+ for (; packetRecv.bytesUsed < packetRecv.bytesAvailable; packetRecv.bytesUsed = flap_length) {
if (!packetRecv.buffer)
break;
- FLAP flap((char*)&packetRecv.buffer[packetRecv.bytesUsed],packetRecv.bytesAvailable-packetRecv.bytesUsed);
+ FLAP flap((char*)&packetRecv.buffer[packetRecv.bytesUsed], packetRecv.bytesAvailable - packetRecv.bytesUsed);
if (!flap.len())
break;
- flap_length+=FLAP_SIZE+flap.len();
- if (flap.cmp(0x01))
- {
- aim_send_cookie(hMailConn,mail_seqno,MAIL_COOKIE_LENGTH,MAIL_COOKIE);//cookie challenge
+ flap_length += FLAP_SIZE + flap.len();
+ if (flap.cmp(0x01)) {
+ aim_send_cookie(m_hMailConn, m_mail_seqno, MAIL_COOKIE_LENGTH, MAIL_COOKIE);//cookie challenge
mir_free(MAIL_COOKIE);
- MAIL_COOKIE=NULL;
- MAIL_COOKIE_LENGTH=0;
+ MAIL_COOKIE = NULL;
+ MAIL_COOKIE_LENGTH = 0;
}
- else if (flap.cmp(0x02))
- {
- SNAC snac(flap.val(),flap.snaclen());
- if (snac.cmp(0x0001))
- {
- snac_supported_families(snac,hMailConn,mail_seqno);
- snac_supported_family_versions(snac,hMailConn,mail_seqno);
- snac_mail_rate_limitations(snac,hMailConn,mail_seqno);
+ else if (flap.cmp(0x02)) {
+ SNAC snac(flap.val(), flap.snaclen());
+ if (snac.cmp(0x0001)) {
+ snac_supported_families(snac, m_hMailConn, m_mail_seqno);
+ snac_supported_family_versions(snac, m_hMailConn, m_mail_seqno);
+ snac_mail_rate_limitations(snac, m_hMailConn, m_mail_seqno);
snac_error(snac);
}
- else if (snac.cmp(0x0018))
- {
+ else if (snac.cmp(0x0018)) {
snac_mail_response(snac);
}
}
@@ -319,56 +294,49 @@ void __cdecl CAimProto::aim_mail_negotiation( void* ) exit:
debugLogA("Mail Server Connection has ended");
Netlib_CloseHandle(hServerPacketRecver);
- Netlib_CloseHandle(hMailConn);
- hMailConn=NULL;
+ Netlib_CloseHandle(m_hMailConn);
+ m_hMailConn = NULL;
}
-void __cdecl CAimProto::aim_avatar_negotiation( void* )
+void __cdecl CAimProto::aim_avatar_negotiation(void*)
{
- HANDLE hServerPacketRecver = (HANDLE) CallService(MS_NETLIB_CREATEPACKETRECVER, (WPARAM)hAvatarConn, 2048 * 8);
+ HANDLE hServerPacketRecver = (HANDLE)CallService(MS_NETLIB_CREATEPACKETRECVER, (WPARAM)m_hAvatarConn, 2048 * 8);
- NETLIBPACKETRECVER packetRecv = {0};
+ NETLIBPACKETRECVER packetRecv = { 0 };
packetRecv.cbSize = sizeof(packetRecv);
packetRecv.dwTimeout = 300000;//5 minutes connected
- for (;;)
- {
- int recvResult = CallService(MS_NETLIB_GETMOREPACKETS, (WPARAM) hServerPacketRecver, (LPARAM) & packetRecv);
+ for (;;) {
+ int recvResult = CallService(MS_NETLIB_GETMOREPACKETS, (WPARAM)hServerPacketRecver, (LPARAM)& packetRecv);
if (recvResult == 0)
break;
if (recvResult == SOCKET_ERROR)
break;
- if (recvResult > 0)
- {
- unsigned short flap_length=0;
- for (; packetRecv.bytesUsed < packetRecv.bytesAvailable; packetRecv.bytesUsed = flap_length)
- {
+ if (recvResult > 0) {
+ unsigned short flap_length = 0;
+ for (; packetRecv.bytesUsed < packetRecv.bytesAvailable; packetRecv.bytesUsed = flap_length) {
if (!packetRecv.buffer)
break;
- FLAP flap((char*)&packetRecv.buffer[packetRecv.bytesUsed],packetRecv.bytesAvailable-packetRecv.bytesUsed);
+ FLAP flap((char*)&packetRecv.buffer[packetRecv.bytesUsed], packetRecv.bytesAvailable - packetRecv.bytesUsed);
if (!flap.len())
break;
flap_length += FLAP_SIZE + flap.len();
- if (flap.cmp(0x01))
- {
- aim_send_cookie(hAvatarConn, avatar_seqno, AVATAR_COOKIE_LENGTH, AVATAR_COOKIE);//cookie challenge
+ if (flap.cmp(0x01)) {
+ aim_send_cookie(m_hAvatarConn, m_avatar_seqno, AVATAR_COOKIE_LENGTH, AVATAR_COOKIE); // cookie challenge
mir_free(AVATAR_COOKIE);
AVATAR_COOKIE = NULL;
AVATAR_COOKIE_LENGTH = 0;
}
- else if (flap.cmp(0x02))
- {
+ else if (flap.cmp(0x02)) {
SNAC snac(flap.val(), flap.snaclen());
- if (snac.cmp(0x0001))
- {
- snac_supported_families(snac, hAvatarConn, avatar_seqno);
- snac_supported_family_versions(snac, hAvatarConn, avatar_seqno);
- snac_avatar_rate_limitations(snac, hAvatarConn, avatar_seqno);
+ if (snac.cmp(0x0001)) {
+ snac_supported_families(snac, m_hAvatarConn, m_avatar_seqno);
+ snac_supported_family_versions(snac, m_hAvatarConn, m_avatar_seqno);
+ snac_avatar_rate_limitations(snac, m_hAvatarConn, m_avatar_seqno);
snac_error(snac);
}
- if (snac.cmp(0x0010))
- {
+ if (snac.cmp(0x0010)) {
snac_retrieve_avatar(snac);
snac_upload_reply_avatar(snac);
}
@@ -381,73 +349,64 @@ void __cdecl CAimProto::aim_avatar_negotiation( void* ) exit:
Netlib_CloseHandle(hServerPacketRecver);
- Netlib_CloseHandle(hAvatarConn);
- hAvatarConn=NULL;
- ResetEvent(hAvatarEvent);
+ Netlib_CloseHandle(m_hAvatarConn);
+ m_hAvatarConn = NULL;
+ ResetEvent(m_hAvatarEvent);
debugLogA("Avatar Server Connection has ended");
}
-void __cdecl CAimProto::aim_chatnav_negotiation( void* )
+void __cdecl CAimProto::aim_chatnav_negotiation(void*)
{
unsigned idle_chat = 0;
- HANDLE hServerPacketRecver = (HANDLE) CallService(MS_NETLIB_CREATEPACKETRECVER, (WPARAM)hChatNavConn, 2048 * 8);
+ HANDLE hServerPacketRecver = (HANDLE)CallService(MS_NETLIB_CREATEPACKETRECVER, (WPARAM)m_hChatNavConn, 2048 * 8);
- NETLIBPACKETRECVER packetRecv = {0};
+ NETLIBPACKETRECVER packetRecv = { 0 };
packetRecv.cbSize = sizeof(packetRecv);
- packetRecv.dwTimeout = DEFAULT_KEEPALIVE_TIMER*1000;
- for (;;)
- {
- int recvResult = CallService(MS_NETLIB_GETMOREPACKETS, (WPARAM) hServerPacketRecver, (LPARAM)&packetRecv);
+ packetRecv.dwTimeout = DEFAULT_KEEPALIVE_TIMER * 1000;
+ for (;;) {
+ int recvResult = CallService(MS_NETLIB_GETMOREPACKETS, (WPARAM)hServerPacketRecver, (LPARAM)&packetRecv);
if (recvResult == 0)
break;
- if (recvResult == SOCKET_ERROR)
- {
- if (WSAGetLastError() == ERROR_TIMEOUT)
- {
- if (chat_rooms.getCount())
+ if (recvResult == SOCKET_ERROR) {
+ if (WSAGetLastError() == ERROR_TIMEOUT) {
+ if (m_chat_rooms.getCount())
idle_chat = 0;
else if (++idle_chat >= 6)
break;
- if (aim_keepalive(hChatNavConn, chatnav_seqno) < 0)
+ if (aim_keepalive(m_hChatNavConn, m_chatnav_seqno) < 0)
break;
}
else
break;
}
- if (recvResult>0)
- {
- unsigned short flap_length=0;
- for (;packetRecv.bytesUsed<packetRecv.bytesAvailable;packetRecv.bytesUsed=flap_length)
- {
+ if (recvResult > 0) {
+ unsigned short flap_length = 0;
+ for (; packetRecv.bytesUsed < packetRecv.bytesAvailable; packetRecv.bytesUsed = flap_length) {
if (!packetRecv.buffer)
break;
- FLAP flap((char*)&packetRecv.buffer[packetRecv.bytesUsed],packetRecv.bytesAvailable-packetRecv.bytesUsed);
+ FLAP flap((char*)&packetRecv.buffer[packetRecv.bytesUsed], packetRecv.bytesAvailable - packetRecv.bytesUsed);
if (!flap.len())
break;
- flap_length+=FLAP_SIZE+flap.len();
- if (flap.cmp(0x01))
- {
- aim_send_cookie(hChatNavConn,chatnav_seqno,CHATNAV_COOKIE_LENGTH,CHATNAV_COOKIE);//cookie challenge
+ flap_length += FLAP_SIZE + flap.len();
+ if (flap.cmp(0x01)) {
+ aim_send_cookie(m_hChatNavConn, m_chatnav_seqno, CHATNAV_COOKIE_LENGTH, CHATNAV_COOKIE);//cookie challenge
mir_free(CHATNAV_COOKIE);
- CHATNAV_COOKIE=NULL;
- CHATNAV_COOKIE_LENGTH=0;
+ CHATNAV_COOKIE = NULL;
+ CHATNAV_COOKIE_LENGTH = 0;
}
- else if (flap.cmp(0x02))
- {
- SNAC snac(flap.val(),flap.snaclen());
- if (snac.cmp(0x0001))
- {
- snac_supported_families(snac,hChatNavConn,chatnav_seqno);
- snac_supported_family_versions(snac,hChatNavConn,chatnav_seqno);
- snac_chatnav_rate_limitations(snac,hChatNavConn,chatnav_seqno);
+ else if (flap.cmp(0x02)) {
+ SNAC snac(flap.val(), flap.snaclen());
+ if (snac.cmp(0x0001)) {
+ snac_supported_families(snac, m_hChatNavConn, m_chatnav_seqno);
+ snac_supported_family_versions(snac, m_hChatNavConn, m_chatnav_seqno);
+ snac_chatnav_rate_limitations(snac, m_hChatNavConn, m_chatnav_seqno);
snac_error(snac);
}
- if (snac.cmp(0x000D))
- {
- snac_chatnav_info_response(snac,hChatNavConn,chatnav_seqno);
+ if (snac.cmp(0x000D)) {
+ snac_chatnav_info_response(snac, m_hChatNavConn, m_chatnav_seqno);
snac_error(snac);
}
}
@@ -459,30 +418,27 @@ void __cdecl CAimProto::aim_chatnav_negotiation( void* ) exit:
Netlib_CloseHandle(hServerPacketRecver);
- Netlib_CloseHandle(hChatNavConn);
- hChatNavConn=NULL;
- ResetEvent(hChatNavEvent);
+ Netlib_CloseHandle(m_hChatNavConn);
+ m_hChatNavConn = NULL;
+ ResetEvent(m_hChatNavEvent);
debugLogA("Chat Navigation Server Connection has ended");
}
-void __cdecl CAimProto::aim_chat_negotiation( void* param )
+void __cdecl CAimProto::aim_chat_negotiation(void* param)
{
chat_list_item *item = (chat_list_item*)param;
HANDLE hServerPacketRecver = (HANDLE)CallService(MS_NETLIB_CREATEPACKETRECVER, (WPARAM)item->hconn, 2048 * 8);
- NETLIBPACKETRECVER packetRecv = {0};
+ NETLIBPACKETRECVER packetRecv = { 0 };
packetRecv.cbSize = sizeof(packetRecv);
- packetRecv.dwTimeout = DEFAULT_KEEPALIVE_TIMER*1000;
- for (;;)
- {
+ packetRecv.dwTimeout = DEFAULT_KEEPALIVE_TIMER * 1000;
+ for (;;) {
int recvResult = CallService(MS_NETLIB_GETMOREPACKETS, (WPARAM)hServerPacketRecver, (LPARAM)&packetRecv);
if (recvResult == 0)
break;
- if (recvResult == SOCKET_ERROR)
- {
- if (WSAGetLastError() == ERROR_TIMEOUT)
- {
+ if (recvResult == SOCKET_ERROR) {
+ if (WSAGetLastError() == ERROR_TIMEOUT) {
if (aim_keepalive(item->hconn, item->seqno) < 0)
break;
}
@@ -490,37 +446,31 @@ void __cdecl CAimProto::aim_chat_negotiation( void* param ) break;
}
- if (recvResult>0)
- {
- unsigned short flap_length=0;
- for (;packetRecv.bytesUsed<packetRecv.bytesAvailable;packetRecv.bytesUsed=flap_length)
- {
+ if (recvResult > 0) {
+ unsigned short flap_length = 0;
+ for (; packetRecv.bytesUsed < packetRecv.bytesAvailable; packetRecv.bytesUsed = flap_length) {
if (!packetRecv.buffer)
break;
- FLAP flap((char*)&packetRecv.buffer[packetRecv.bytesUsed],packetRecv.bytesAvailable-packetRecv.bytesUsed);
+ FLAP flap((char*)&packetRecv.buffer[packetRecv.bytesUsed], packetRecv.bytesAvailable - packetRecv.bytesUsed);
if (!flap.len())
break;
- flap_length+=FLAP_SIZE+flap.len();
- if (flap.cmp(0x01))
- {
- aim_send_cookie(item->hconn,item->seqno,item->CHAT_COOKIE_LENGTH,item->CHAT_COOKIE);//cookie challenge
+ flap_length += FLAP_SIZE + flap.len();
+ if (flap.cmp(0x01)) {
+ aim_send_cookie(item->hconn, item->seqno, item->CHAT_COOKIE_LENGTH, item->CHAT_COOKIE);//cookie challenge
mir_free(item->CHAT_COOKIE);
- item->CHAT_COOKIE=NULL;
- item->CHAT_COOKIE_LENGTH=0;
+ item->CHAT_COOKIE = NULL;
+ item->CHAT_COOKIE_LENGTH = 0;
}
- else if (flap.cmp(0x02))
- {
- SNAC snac(flap.val(),flap.snaclen());
- if (snac.cmp(0x0001))
- {
- snac_supported_families(snac,item->hconn,item->seqno);
- snac_supported_family_versions(snac,item->hconn,item->seqno);
- snac_chat_rate_limitations(snac,item->hconn,item->seqno);
+ else if (flap.cmp(0x02)) {
+ SNAC snac(flap.val(), flap.snaclen());
+ if (snac.cmp(0x0001)) {
+ snac_supported_families(snac, item->hconn, item->seqno);
+ snac_supported_family_versions(snac, item->hconn, item->seqno);
+ snac_chat_rate_limitations(snac, item->hconn, item->seqno);
snac_error(snac);
}
- if (snac.cmp(0x000E))
- {
+ if (snac.cmp(0x000E)) {
snac_chat_received_message(snac, item);
snac_chat_joined_left_users(snac, item);
snac_error(snac);
@@ -540,52 +490,45 @@ exit: debugLogA("Chat Server Connection has ended");
}
-void __cdecl CAimProto::aim_admin_negotiation( void* )
+void __cdecl CAimProto::aim_admin_negotiation(void*)
{
- HANDLE hServerPacketRecver = (HANDLE)CallService(MS_NETLIB_CREATEPACKETRECVER, (WPARAM)hAdminConn, 2048 * 8);
+ HANDLE hServerPacketRecver = (HANDLE)CallService(MS_NETLIB_CREATEPACKETRECVER, (WPARAM)m_hAdminConn, 2048 * 8);
- NETLIBPACKETRECVER packetRecv = {0};
+ NETLIBPACKETRECVER packetRecv = { 0 };
packetRecv.cbSize = sizeof(packetRecv);
packetRecv.dwTimeout = 300000;//5 minutes connected
- for (;;)
- {
- int recvResult = CallService(MS_NETLIB_GETMOREPACKETS, (WPARAM) hServerPacketRecver, (LPARAM) & packetRecv);
+ for (;;) {
+ int recvResult = CallService(MS_NETLIB_GETMOREPACKETS, (WPARAM)hServerPacketRecver, (LPARAM)& packetRecv);
if (recvResult == 0)
break;
if (recvResult == SOCKET_ERROR)
break;
- if (recvResult>0)
- {
- unsigned short flap_length=0;
- for (;packetRecv.bytesUsed<packetRecv.bytesAvailable;packetRecv.bytesUsed=flap_length)
- {
+ if (recvResult > 0) {
+ unsigned short flap_length = 0;
+ for (; packetRecv.bytesUsed < packetRecv.bytesAvailable; packetRecv.bytesUsed = flap_length) {
if (!packetRecv.buffer)
break;
- FLAP flap((char*)&packetRecv.buffer[packetRecv.bytesUsed],packetRecv.bytesAvailable-packetRecv.bytesUsed);
+ FLAP flap((char*)&packetRecv.buffer[packetRecv.bytesUsed], packetRecv.bytesAvailable - packetRecv.bytesUsed);
if (!flap.len())
break;
- flap_length+=FLAP_SIZE+flap.len();
- if (flap.cmp(0x01))
- {
- aim_send_cookie(hAdminConn,admin_seqno,ADMIN_COOKIE_LENGTH,ADMIN_COOKIE);//cookie challenge
+ flap_length += FLAP_SIZE + flap.len();
+ if (flap.cmp(0x01)) {
+ aim_send_cookie(m_hAdminConn, m_admin_seqno, ADMIN_COOKIE_LENGTH, ADMIN_COOKIE);//cookie challenge
mir_free(ADMIN_COOKIE);
- ADMIN_COOKIE=NULL;
- ADMIN_COOKIE_LENGTH=0;
+ ADMIN_COOKIE = NULL;
+ ADMIN_COOKIE_LENGTH = 0;
}
- else if (flap.cmp(0x02))
- {
- SNAC snac(flap.val(),flap.snaclen());
- if (snac.cmp(0x0001))
- {
- snac_supported_families(snac,hAdminConn,admin_seqno);
- snac_supported_family_versions(snac,hAdminConn,admin_seqno);
- snac_admin_rate_limitations(snac,hAdminConn,admin_seqno);
+ else if (flap.cmp(0x02)) {
+ SNAC snac(flap.val(), flap.snaclen());
+ if (snac.cmp(0x0001)) {
+ snac_supported_families(snac, m_hAdminConn, m_admin_seqno);
+ snac_supported_family_versions(snac, m_hAdminConn, m_admin_seqno);
+ snac_admin_rate_limitations(snac, m_hAdminConn, m_admin_seqno);
snac_error(snac);
}
- if (snac.cmp(0x0007))
- {
+ if (snac.cmp(0x0007)) {
snac_admin_account_infomod(snac);
snac_admin_account_confirm(snac);
snac_error(snac);
@@ -599,8 +542,8 @@ void __cdecl CAimProto::aim_admin_negotiation( void* ) exit:
Netlib_CloseHandle(hServerPacketRecver);
- Netlib_CloseHandle(hAdminConn);
- hAdminConn=NULL;
- ResetEvent(hAdminEvent);
+ Netlib_CloseHandle(m_hAdminConn);
+ m_hAdminConn = NULL;
+ ResetEvent(m_hAdminEvent);
debugLogA("Admin Server Connection has ended");
}
diff --git a/protocols/AimOscar/src/conv.cpp b/protocols/AimOscar/src/conv.cpp index 7f6d6f1a3e..f114c52311 100644 --- a/protocols/AimOscar/src/conv.cpp +++ b/protocols/AimOscar/src/conv.cpp @@ -16,11 +16,12 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+
#include "stdafx.h"
#pragma warning( disable: 4706 )
-char* process_status_msg (const char *str, const char* sn)
+char* process_status_msg(const char *str, const char* sn)
{
const char *src = str;
size_t size = mir_strlen(src) + 1;
@@ -28,18 +29,15 @@ char* process_status_msg (const char *str, const char* sn) char* dest = res;
size_t len = mir_strlen(sn);
- for (; *src; ++src)
- {
- if (src[0] == '\n' && (src == str || src[-1] != '\r'))
- {
+ for (; *src; ++src) {
+ if (src[0] == '\n' && (src == str || src[-1] != '\r')) {
int off = dest - res;
res = (char*)mir_realloc(res, ++size);
dest = res + off;
*(dest++) = '\r';
*(dest++) = *src;
}
- else if (src[0] == '%' && src[1] == 'n')
- {
+ else if (src[0] == '%' && src[1] == 'n') {
int off = dest - res;
res = (char*)mir_realloc(res, size + len);
dest = res + off;
@@ -48,26 +46,23 @@ char* process_status_msg (const char *str, const char* sn) dest += len;
++src;
}
- else if (src[0] == '%' && src[1] == 'd')
- {
+ else if (src[0] == '%' && src[1] == 'd') {
int off = dest - res;
res = (char*)mir_realloc(res, size + 20);
dest = res + off;
size += 20;
- dest += GetDateFormatA(LOCALE_USER_DEFAULT, 0, NULL, NULL, dest, 20)-1;
+ dest += GetDateFormatA(LOCALE_USER_DEFAULT, 0, NULL, NULL, dest, 20) - 1;
++src;
}
- else if (src[0] == '%' && src[1] == 't')
- {
+ else if (src[0] == '%' && src[1] == 't') {
int off = dest - res;
res = (char*)mir_realloc(res, size + 20);
dest = res + off;
size += 20;
- dest += GetTimeFormatA(LOCALE_USER_DEFAULT, 0, NULL, NULL, dest, 20)-1;
+ dest += GetTimeFormatA(LOCALE_USER_DEFAULT, 0, NULL, NULL, dest, 20) - 1;
++src;
}
- else
- *(dest++) = *src;
+ else *(dest++) = *src;
}
*dest = '\0';
return res;
@@ -77,28 +72,22 @@ char* process_status_msg (const char *str, const char* sn) void html_decode(char* str)
{
char *p, *q;
-// char *rstr = (char*)mir_alloc(mir_strlen(str)*2);
if (str == NULL) return;
- for ( p=q=str; *p!='\0'; p++,q++ )
- {
- if ( *p == '&' )
- {
- if ( !strnicmp( p, "&", 5 )) { *q = '&'; p += 4; }
- else if ( !strnicmp( p, "'", 6 )) { *q = '\''; p += 5; }
- else if ( !strnicmp( p, ">", 4 )) { *q = '>'; p += 3; }
- else if ( !strnicmp( p, "<", 4 )) { *q = '<'; p += 3; }
- else if ( !strnicmp( p, """, 6 )) { *q = '"'; p += 5; }
- else if ( *(p+1) == '#' )
- {
- char* s = strchr(p, ';');
- if (s)
- {
- wchar_t t[2] = { (wchar_t)atoi(p+2), 0 };
+ for (p = q = str; *p != '\0'; p++, q++) {
+ if (*p == '&') {
+ if (!strnicmp(p, "&", 5)) { *q = '&'; p += 4; }
+ else if (!strnicmp(p, "'", 6)) { *q = '\''; p += 5; }
+ else if (!strnicmp(p, ">", 4)) { *q = '>'; p += 3; }
+ else if (!strnicmp(p, "<", 4)) { *q = '<'; p += 3; }
+ else if (!strnicmp(p, """, 6)) { *q = '"'; p += 5; }
+ else if (*(p + 1) == '#') {
+ char *s = strchr(p, ';');
+ if (s) {
+ wchar_t t[2] = { (wchar_t)atoi(p + 2), 0 };
char *t1 = mir_utf8encodeW(t);
- if (t1 && *t1)
- {
+ if (t1 && *t1) {
mir_strcpy(q, t1);
q += mir_strlen(t1) - 1;
}
@@ -106,47 +95,24 @@ void html_decode(char* str) p = s;
}
else
- *q = *p;
+ *q = *p;
}
- else { *q = *p; }
- }
- else if ( *p == '<' )
- {
- if ( !strnicmp( p, "<p>", 3 )) { mir_strcpy(q, "\r\n\r\n"); q += 3; p += 2; }
- else if ( !strnicmp( p, "</p>", 4 )) { mir_strcpy(q, "\r\n\r\n"); q += 3; p += 3; }
- else if ( !strnicmp( p, "<br>", 4 )) { mir_strcpy(q, "\r\n"); ++q; p += 3; }
- else if ( !strnicmp( p, "<br />", 6 )) { mir_strcpy(q, "\r\n"); ++q; p += 5; }
- else if ( !strnicmp( p, "<hr>", 4 )) { mir_strcpy(q, "\r\n"); ++q; p += 3; }
- else if ( !strnicmp( p, "<hr />", 6 )) { mir_strcpy(q, "\r\n"); ++q; p += 5; }
-/*
- else if ( !strnicmp( p, "<b>", 3 )) { mir_strcpy(q, "[b]"); q += 2; p += 2; }
- else if ( !strnicmp( p, "</b>", 4 )) { mir_strcpy(q, "[/b]"); q += 3; p += 3; }
- else if ( !strnicmp( p, "<u>", 3 )) { mir_strcpy(q, "[u]"); q += 2; p += 2; }
- else if ( !strnicmp( p, "</u>", 4 )) { mir_strcpy(q, "[/u]"); q += 3; p += 3; }
- else if ( !strnicmp( p, "<i>", 3 )) { mir_strcpy(q, "[i]"); q += 2; p += 2; }
- else if ( !strnicmp( p, "</i>", 4 )) { mir_strcpy(q, "[/i]"); q += 3; p += 3; }
- else if ( !strnicmp( p, "<s>", 3 )) { mir_strcpy(q, "[s]"); q += 2; p += 2; }
- else if ( !strnicmp( p, "</s>", 4 )) { mir_strcpy(q, "[/s]"); q += 3; p += 3; }
- else if ( !strnicmp( p, "<a href", 7 )) {
- mir_strcpy(q, "[url"); q += 4; p += 7;
- while (*p != '>' && *p) *(q++) = *(p++);
- *q = ']'; --p;
- }
- else if ( !strnicmp( p, "<font", 5 )) {
- char *l = strchr(p, '>');
-
- mir_strcpy(q, "[url"); q += 4; p += 7;
- while (*p != '>' && *p) *(q++) = *(p++);
- *q = ']'; --p;
- }
-*/
- else {
+ else { *q = *p; }
+ }
+ else if (*p == '<') {
+ if (!strnicmp(p, "<p>", 3)) { mir_strcpy(q, "\r\n\r\n"); q += 3; p += 2; }
+ else if (!strnicmp(p, "</p>", 4)) { mir_strcpy(q, "\r\n\r\n"); q += 3; p += 3; }
+ else if (!strnicmp(p, "<br>", 4)) { mir_strcpy(q, "\r\n"); ++q; p += 3; }
+ else if (!strnicmp(p, "<br />", 6)) { mir_strcpy(q, "\r\n"); ++q; p += 5; }
+ else if (!strnicmp(p, "<hr>", 4)) { mir_strcpy(q, "\r\n"); ++q; p += 3; }
+ else if (!strnicmp(p, "<hr />", 6)) { mir_strcpy(q, "\r\n"); ++q; p += 5; }
+ else {
char *l = strchr(p, '>');
- if (l) { p = l; --q; } else *q = *p;
+ if (l) { p = l; --q; }
+ else *q = *p;
}
}
- else
- *q = *p;
+ else *q = *p;
}
*q = '\0';
}
@@ -154,39 +120,34 @@ void html_decode(char* str) char* html_encode(const char* str)
{
- char* s, *q;
+ char *s, *q;
const char *p;
int c;
if (str == NULL) return NULL;
- for ( c=0, p=str; *p!='\0'; p++ )
- {
- switch ( *p )
- {
- case '&' : c += 5; break;
+ for (c = 0, p = str; *p != '\0'; p++) {
+ switch (*p) {
+ case '&': c += 5; break;
case '\'': c += 6; break;
- case '>' : c += 4; break;
- case '<' : c += 4; break;
- case '"' : c += 6; break;
+ case '>': c += 4; break;
+ case '<': c += 4; break;
+ case '"': c += 6; break;
case '\n': c += 4; break;
default: c++; break;
}
}
- s = (char*)mir_alloc(c + 27);
+ s = (char*)mir_alloc(c + 27);
mir_strcpy(s, "<HTML><BODY>");
- for ( p=str,q=s+12; *p!='\0'; p++ )
- {
- switch ( *p )
- {
- case '&' : memcpy( q, "&", 5 ); q += 5; break;
-// case '\'': memcpy( q, "'", 6 ); q += 6; break;
- case '>' : memcpy( q, ">", 4 ); q += 4; break;
- case '<' : memcpy( q, "<", 4 ); q += 4; break;
- case '"' : memcpy( q, """, 6 ); q += 6; break;
+ for (p = str, q = s + 12; *p != '\0'; p++) {
+ switch (*p) {
+ case '&': memcpy(q, "&", 5); q += 5; break;
+ case '>': memcpy(q, ">", 4); q += 4; break;
+ case '<': memcpy(q, "<", 4); q += 4; break;
+ case '"': memcpy(q, """, 6); q += 6; break;
case '\r': break;
- case '\n': memcpy( q, "<BR>", 4 ); q += 4; break;
+ case '\n': memcpy(q, "<BR>", 4); q += 4; break;
default: *q = *p; ++q; break;
}
}
@@ -201,283 +162,226 @@ char* html_to_bbcodes(char *src) char *ptrl;
char *rptr;
char* dest = mir_strdup(src);
- while ((ptr = strstr(dest, "<B>")) != NULL || (ptr = strstr(dest, "<b>")) != NULL)
- {
+ while ((ptr = strstr(dest, "<B>")) != NULL || (ptr = strstr(dest, "<b>")) != NULL) {
*ptr = '[';
- *(ptr+1) = 'b';
- *(ptr+2) = ']';
- if ((ptr = strstr(dest, "</B>")) != NULL || (ptr = strstr(dest, "</b>")) != NULL)
- {
+ *(ptr + 1) = 'b';
+ *(ptr + 2) = ']';
+ if ((ptr = strstr(dest, "</B>")) != NULL || (ptr = strstr(dest, "</b>")) != NULL) {
*ptr = '[';
- *(ptr+2) = 'b';
- *(ptr+3) = ']';
+ *(ptr + 2) = 'b';
+ *(ptr + 3) = ']';
}
- else
- {
- dest=(char*)mir_realloc(dest,mir_strlen(dest)+6);
- memcpy(&dest[mir_strlen(dest)],"[/b]",5);
+ else {
+ dest = (char*)mir_realloc(dest, mir_strlen(dest) + 6);
+ memcpy(&dest[mir_strlen(dest)], "[/b]", 5);
}
}
- while ((ptr = strstr(dest, "<I>")) != NULL || (ptr = strstr(dest, "<i>")) != NULL)
- {
- *ptr = '[';
- *(ptr+1) = 'i';
- *(ptr+2) = ']';
- if ((ptr = strstr(dest, "</I>")) != NULL || (ptr = strstr(dest, "</i>")) != NULL)
- {
+ while ((ptr = strstr(dest, "<I>")) != NULL || (ptr = strstr(dest, "<i>")) != NULL) {
+ *ptr = '[';
+ *(ptr + 1) = 'i';
+ *(ptr + 2) = ']';
+ if ((ptr = strstr(dest, "</I>")) != NULL || (ptr = strstr(dest, "</i>")) != NULL) {
*ptr = '[';
- *(ptr+2) = 'i';
- *(ptr+3) = ']';
+ *(ptr + 2) = 'i';
+ *(ptr + 3) = ']';
}
- else
- {
- dest=(char*)mir_realloc(dest,mir_strlen(dest)+6);
- memcpy(&dest[mir_strlen(dest)],"[/i]",5);
+ else {
+ dest = (char*)mir_realloc(dest, mir_strlen(dest) + 6);
+ memcpy(&dest[mir_strlen(dest)], "[/i]", 5);
}
}
- while ((ptr = strstr(dest, "<U>")) != NULL || (ptr = strstr(dest, "<u>")) != NULL)
- {
+ while ((ptr = strstr(dest, "<U>")) != NULL || (ptr = strstr(dest, "<u>")) != NULL) {
*ptr = '[';
- *(ptr+1) = 'u';
- *(ptr+2) = ']';
- if ((ptr = strstr(dest, "</U>")) != NULL || (ptr = strstr(dest, "</u>")) != NULL)
- {
+ *(ptr + 1) = 'u';
+ *(ptr + 2) = ']';
+ if ((ptr = strstr(dest, "</U>")) != NULL || (ptr = strstr(dest, "</u>")) != NULL) {
*ptr = '[';
- *(ptr+2) = 'u';
- *(ptr+3) = ']';
+ *(ptr + 2) = 'u';
+ *(ptr + 3) = ']';
}
- else
- {
- dest=(char*)mir_realloc(dest,mir_strlen(dest)+6);
- memcpy(&dest[mir_strlen(dest)],"[/u]",5);
+ else {
+ dest = (char*)mir_realloc(dest, mir_strlen(dest) + 6);
+ memcpy(&dest[mir_strlen(dest)], "[/u]", 5);
}
}
- while ((ptr = strstr(dest, "<S>")) != NULL || (ptr = strstr(dest, "<s>")) != NULL)
- {
+ while ((ptr = strstr(dest, "<S>")) != NULL || (ptr = strstr(dest, "<s>")) != NULL) {
*ptr = '[';
- *(ptr+1) = 's';
- *(ptr+2) = ']';
- if ((ptr = strstr(dest, "</S>")) != NULL || (ptr = strstr(dest, "</s>")) != NULL)
- {
+ *(ptr + 1) = 's';
+ *(ptr + 2) = ']';
+ if ((ptr = strstr(dest, "</S>")) != NULL || (ptr = strstr(dest, "</s>")) != NULL) {
*ptr = '[';
- *(ptr+2) = 's';
- *(ptr+3) = ']';
+ *(ptr + 2) = 's';
+ *(ptr + 3) = ']';
}
- else
- {
- dest=(char*)mir_realloc(dest,mir_strlen(dest)+6);
- memcpy(&dest[mir_strlen(dest)],"[/s]",5);
+ else {
+ dest = (char*)mir_realloc(dest, mir_strlen(dest) + 6);
+ memcpy(&dest[mir_strlen(dest)], "[/s]", 5);
}
}
rptr = dest;
- while (ptr = strstr(rptr,"<A HREF"))
- {
- char* begin=ptr;
+ while (ptr = strstr(rptr, "<A HREF")) {
+ char* begin = ptr;
ptrl = ptr + 4;
- memcpy(ptrl,"[url=",5);
+ memcpy(ptrl, "[url=", 5);
memmove(ptr, ptrl, mir_strlen(ptrl) + 1);
- if ((ptr = strstr(ptrl,">")))
- {
- ptr-=1;
- memmove(ptr, ptr+1, mir_strlen(ptr+1) + 1);
- *(ptr)=']';
- ptrl-=1;
- char* s1 = strstr(ptrl,"</A");
- char* s2 = strstr(rptr,"<A HREF");
- if (s1&&s1<s2||s1&&!s2)
- {
- ptr=s1;
- ptr=strip_tag_within(begin,ptr);
- memmove(ptr+2, ptr, mir_strlen(ptr) + 1);
- memcpy(ptr,"[/url]",6);
+ if ((ptr = strstr(ptrl, ">"))) {
+ ptr -= 1;
+ memmove(ptr, ptr + 1, mir_strlen(ptr + 1) + 1);
+ *(ptr) = ']';
+ ptrl -= 1;
+ char* s1 = strstr(ptrl, "</A");
+ char* s2 = strstr(rptr, "<A HREF");
+ if (s1&&s1 < s2 || s1&&!s2) {
+ ptr = s1;
+ ptr = strip_tag_within(begin, ptr);
+ memmove(ptr + 2, ptr, mir_strlen(ptr) + 1);
+ memcpy(ptr, "[/url]", 6);
}
- else if (s2&&s2<s1||s2&&!s1)
- {
- ptr=s2;
- ptr=strip_tag_within(begin,ptr);
- int addr=ptr-rptr;
- dest=(char*)mir_realloc(dest,mir_strlen(dest)+8);
- rptr=dest;
- ptr=rptr+addr;
- memmove(ptr+6, ptr, mir_strlen(ptr) + 1);
- memcpy(ptr,"[/url]",6);
+ else if (s2&&s2 < s1 || s2&&!s1) {
+ ptr = s2;
+ ptr = strip_tag_within(begin, ptr);
+ int addr = ptr - rptr;
+ dest = (char*)mir_realloc(dest, mir_strlen(dest) + 8);
+ rptr = dest;
+ ptr = rptr + addr;
+ memmove(ptr + 6, ptr, mir_strlen(ptr) + 1);
+ memcpy(ptr, "[/url]", 6);
}
- else
- {
- strip_tag_within(begin,&dest[mir_strlen(dest)]);
+ else {
+ strip_tag_within(begin, &dest[mir_strlen(dest)]);
//int addr=ptr-rptr;
- dest=(char*)mir_realloc(dest,mir_strlen(dest)+8);
- rptr=dest;
- ptr=dest;
- memcpy(&ptr[mir_strlen(ptr)],"[/url]",7);
+ dest = (char*)mir_realloc(dest, mir_strlen(dest) + 8);
+ rptr = dest;
+ ptr = dest;
+ memcpy(&ptr[mir_strlen(ptr)], "[/url]", 7);
}
}
- else
- rptr++;
+ else rptr++;
}
rptr = dest;
- while (ptr = strstr(rptr,"<a href"))
- {
- char* begin=ptr;
+ while (ptr = strstr(rptr, "<a href")) {
+ char* begin = ptr;
ptrl = ptr + 4;
- memcpy(ptrl,"[url=",5);
+ memcpy(ptrl, "[url=", 5);
memmove(ptr, ptrl, mir_strlen(ptrl) + 1);
- if ((ptr = strstr(ptrl,">")))
- {
- ptr-=1;
- memmove(ptr, ptr+1, mir_strlen(ptr+1) + 1);
- *(ptr)=']';
- ptrl-=1;
- char* s1 = strstr(ptrl,"</a");
- char* s2 = strstr(ptrl,"<a href");
- if (s1&&s1<s2||s1&&!s2)
- {
- ptr=s1;
- ptr=strip_tag_within(begin,ptr);
- memmove(ptr+2, ptr, mir_strlen(ptr) + 1);
- memcpy(ptr,"[/url]",6);
+ if ((ptr = strstr(ptrl, ">"))) {
+ ptr -= 1;
+ memmove(ptr, ptr + 1, mir_strlen(ptr + 1) + 1);
+ *(ptr) = ']';
+ ptrl -= 1;
+ char* s1 = strstr(ptrl, "</a");
+ char* s2 = strstr(ptrl, "<a href");
+ if (s1&&s1 < s2 || s1&&!s2) {
+ ptr = s1;
+ ptr = strip_tag_within(begin, ptr);
+ memmove(ptr + 2, ptr, mir_strlen(ptr) + 1);
+ memcpy(ptr, "[/url]", 6);
}
- else if (s2&&s2<s1||s2&&!s1)
- {
- ptr=s2;
- ptr=strip_tag_within(begin,ptr);
- int addr=ptr-rptr;
- dest=(char*)mir_realloc(dest,mir_strlen(dest)+8);
- rptr=dest;
- ptr=rptr+addr;
- memmove(ptr+6, ptr, mir_strlen(ptr) + 1);
- memcpy(ptr,"[/url]",6);
+ else if (s2&&s2 < s1 || s2&&!s1) {
+ ptr = s2;
+ ptr = strip_tag_within(begin, ptr);
+ int addr = ptr - rptr;
+ dest = (char*)mir_realloc(dest, mir_strlen(dest) + 8);
+ rptr = dest;
+ ptr = rptr + addr;
+ memmove(ptr + 6, ptr, mir_strlen(ptr) + 1);
+ memcpy(ptr, "[/url]", 6);
}
- else
- {
- strip_tag_within(begin,&dest[mir_strlen(dest)]);
+ else {
+ strip_tag_within(begin, &dest[mir_strlen(dest)]);
//int addr=ptr-rptr;
- dest=(char*)mir_realloc(dest,mir_strlen(dest)+8);
- rptr=dest;
- ptr=dest;
- memcpy(&ptr[mir_strlen(ptr)],"[/url]",7);
+ dest = (char*)mir_realloc(dest, mir_strlen(dest) + 8);
+ rptr = dest;
+ ptr = dest;
+ memcpy(&ptr[mir_strlen(ptr)], "[/url]", 7);
}
}
- else
- rptr++;
+ else rptr++;
}
rptr = dest;
- while (ptr = strstr(rptr, "<FONT COLOR=\""))
- {
- int addr=ptr-rptr;
- dest=(char*)mir_realloc(dest,mir_strlen(dest)+8);
- rptr=dest;
- ptr=rptr+addr;
+ while (ptr = strstr(rptr, "<FONT COLOR=\"")) {
+ int addr = ptr - rptr;
+ dest = (char*)mir_realloc(dest, mir_strlen(dest) + 8);
+ rptr = dest;
+ ptr = rptr + addr;
ptrl = ptr + 6;
- memcpy(ptrl,"[color=",7);
+ memcpy(ptrl, "[color=", 7);
memmove(ptr, ptrl, mir_strlen(ptrl) + 1);
- if ((ptr = strstr(ptrl, ">")))
- {
- memmove(ptrl+7,ptr,mir_strlen(ptr)+1);
- *(ptrl+7)=']';
- ptr=ptrl+7;
- char* s1 = strstr(ptr,"</FONT");
- char* s2 = strstr(ptr,"<FONT COLOR=\"");
- if (s1&&s1<s2||s1&&!s2)
- {
- ptr=s1;
- memmove(ptr+1, ptr, mir_strlen(ptr) + 1);
- memcpy(ptr,"[/color]",8);
+ if ((ptr = strstr(ptrl, ">"))) {
+ memmove(ptrl + 7, ptr, mir_strlen(ptr) + 1);
+ *(ptrl + 7) = ']';
+ ptr = ptrl + 7;
+ char* s1 = strstr(ptr, "</FONT");
+ char* s2 = strstr(ptr, "<FONT COLOR=\"");
+ if (s1&&s1 < s2 || s1&&!s2) {
+ ptr = s1;
+ memmove(ptr + 1, ptr, mir_strlen(ptr) + 1);
+ memcpy(ptr, "[/color]", 8);
}
- else if (s2&&s2<s1||s2&&!s1)
- {
- ptr=s2;
- memmove(ptr+8, ptr, mir_strlen(ptr) + 1);
- memcpy(ptr,"[/color]",8);
+ else if (s2&&s2 < s1 || s2&&!s1) {
+ ptr = s2;
+ memmove(ptr + 8, ptr, mir_strlen(ptr) + 1);
+ memcpy(ptr, "[/color]", 8);
}
- else
- {
- ptr=dest;
- memcpy(&ptr[mir_strlen(ptr)],"[/color]",9);
+ else {
+ ptr = dest;
+ memcpy(&ptr[mir_strlen(ptr)], "[/color]", 9);
}
}
- else
- rptr++;
+ else rptr++;
}
rptr = dest;
- while (ptr = strstr(rptr, "<font color=\""))
- {
- int addr=ptr-rptr;
- dest=(char*)mir_realloc(dest,mir_strlen(dest)+8);
- rptr=dest;
- ptr=rptr+addr;
+ while (ptr = strstr(rptr, "<font color=\"")) {
+ int addr = ptr - rptr;
+ dest = (char*)mir_realloc(dest, mir_strlen(dest) + 8);
+ rptr = dest;
+ ptr = rptr + addr;
ptrl = ptr + 6;
- memcpy(ptrl,"[color=",7);
+ memcpy(ptrl, "[color=", 7);
memmove(ptr, ptrl, mir_strlen(ptrl) + 1);
- if ((ptr = strstr(ptrl, ">")))
- {
- memmove(ptrl+7,ptr,mir_strlen(ptr)+1);
- *(ptrl+7)=']';
- ptr=ptrl+7;
- char* s1 = strstr(ptr,"</font");
- char* s2 = strstr(ptr,"<font color=\"");
- if (s1&&s1<s2||s1&&!s2)
- {
- ptr=s1;
- memmove(ptr+1, ptr, mir_strlen(ptr) + 1);
- memcpy(ptr,"[/color]",8);
+ if ((ptr = strstr(ptrl, ">"))) {
+ memmove(ptrl + 7, ptr, mir_strlen(ptr) + 1);
+ *(ptrl + 7) = ']';
+ ptr = ptrl + 7;
+ char* s1 = strstr(ptr, "</font");
+ char* s2 = strstr(ptr, "<font color=\"");
+ if (s1&&s1 < s2 || s1&&!s2) {
+ ptr = s1;
+ memmove(ptr + 1, ptr, mir_strlen(ptr) + 1);
+ memcpy(ptr, "[/color]", 8);
}
- else if (s2&&s2<s1||s2&&!s1)
- {
- ptr=s2;
- memmove(ptr+8, ptr, mir_strlen(ptr) + 1);
- memcpy(ptr,"[/color]",8);
+ else if (s2&&s2 < s1 || s2&&!s1) {
+ ptr = s2;
+ memmove(ptr + 8, ptr, mir_strlen(ptr) + 1);
+ memcpy(ptr, "[/color]", 8);
}
- else
- {
- ptr=dest;
- memcpy(&ptr[mir_strlen(ptr)],"[/color]",9);
+ else {
+ ptr = dest;
+ memcpy(&ptr[mir_strlen(ptr)], "[/color]", 9);
}
}
- else
- rptr++;
+ else rptr++;
}
rptr = dest;
- while ((ptr = strstr(rptr, "<FONT COLOR=")) || (ptr = strstr(rptr, "<font color=")))
- {
- int addr=ptr-rptr;
- dest=(char*)mir_realloc(dest,mir_strlen(dest)+8);
- rptr=dest;
- ptr=rptr+addr;
+ while ((ptr = strstr(rptr, "<FONT COLOR=")) || (ptr = strstr(rptr, "<font color="))) {
+ int addr = ptr - rptr;
+ dest = (char*)mir_realloc(dest, mir_strlen(dest) + 8);
+ rptr = dest;
+ ptr = rptr + addr;
ptrl = ptr + 5;
- memcpy(ptrl,"[color=",7);
+ memcpy(ptrl, "[color=", 7);
memmove(ptr, ptrl, mir_strlen(ptrl) + 1);
- if ((ptr = strstr(ptrl, ">")))
- {
- *(ptr)=']';
- if ((ptrl = strstr(ptr, "</FONT")) || (ptrl = strstr(ptr, "</font")))
- {
- memmove(ptrl+1, ptrl, mir_strlen(ptrl) + 1);
- memcpy(ptrl,"[/color]",8);
- }
- else
- {
- memcpy(&dest[mir_strlen(dest)],"[/color]",9);
+ if ((ptr = strstr(ptrl, ">"))) {
+ *(ptr) = ']';
+ if ((ptrl = strstr(ptr, "</FONT")) || (ptrl = strstr(ptr, "</font"))) {
+ memmove(ptrl + 1, ptrl, mir_strlen(ptrl) + 1);
+ memcpy(ptrl, "[/color]", 8);
}
+ else memcpy(&dest[mir_strlen(dest)], "[/color]", 9);
}
- else
- rptr++;
- }
-/*
- rptr = dest;
- while ((ptr = strstr(rptr, "aim:")) || (ptr = strstr(rptr, "AIM:")))
- {
- int addr=ptr-rptr;
- int len=0;
- for (len
- dest=(char*)mir_realloc(dest,mir_strlen(dest)+8);
- rptr=dest;
- ptr=rptr+addr;
- ptrl = ptr + 5;
- memcpy(ptrl,"[url=",7);
- memmove(ptr, ptrl, mir_strlen(ptrl) + 1);
+ else rptr++;
}
-*/
+
return dest;
}
@@ -486,90 +390,76 @@ char* bbcodes_to_html(const char *src) char *ptr;
char *rptr;
char* dest = mir_strdup(src);
- while ((ptr = strstr(dest, "[b]")) != NULL)
- {
+ while ((ptr = strstr(dest, "[b]")) != NULL) {
*ptr = '<';
- *(ptr+1) = 'b';
- *(ptr+2) = '>';
+ *(ptr + 1) = 'b';
+ *(ptr + 2) = '>';
}
- while ((ptr = strstr(dest, "[/b]")) != NULL)
- {
+ while ((ptr = strstr(dest, "[/b]")) != NULL) {
*ptr = '<';
- *(ptr+2) = 'b';
- *(ptr+3) = '>';
+ *(ptr + 2) = 'b';
+ *(ptr + 3) = '>';
}
- while ((ptr = strstr(dest, "[i]")) != NULL)
- {
+ while ((ptr = strstr(dest, "[i]")) != NULL) {
*ptr = '<';
- *(ptr+1) = 'i';
- *(ptr+2) = '>';
+ *(ptr + 1) = 'i';
+ *(ptr + 2) = '>';
}
- while ((ptr = strstr(dest, "[/i]")) != NULL)
- {
+ while ((ptr = strstr(dest, "[/i]")) != NULL) {
*ptr = '<';
- *(ptr+2) = 'i';
- *(ptr+3) = '>';
+ *(ptr + 2) = 'i';
+ *(ptr + 3) = '>';
}
- while ((ptr = strstr(dest, "[u]")) != NULL)
- {
+ while ((ptr = strstr(dest, "[u]")) != NULL) {
*ptr = '<';
- *(ptr+1) = 'u';
- *(ptr+2) = '>';
+ *(ptr + 1) = 'u';
+ *(ptr + 2) = '>';
}
- while ((ptr = strstr(dest, "[/u]")) != NULL)
- {
+ while ((ptr = strstr(dest, "[/u]")) != NULL) {
*ptr = '<';
- *(ptr+2) = 'u';
- *(ptr+3) = '>';
+ *(ptr + 2) = 'u';
+ *(ptr + 3) = '>';
}
- while ((ptr = strstr(dest, "[s]")) != NULL)
- {
+ while ((ptr = strstr(dest, "[s]")) != NULL) {
*ptr = '<';
- *(ptr+1) = 's';
- *(ptr+2) = '>';
+ *(ptr + 1) = 's';
+ *(ptr + 2) = '>';
}
- while ((ptr = strstr(dest, "[/s]")) != NULL)
- {
+ while ((ptr = strstr(dest, "[/s]")) != NULL) {
*ptr = '<';
- *(ptr+2) = 's';
- *(ptr+3) = '>';
+ *(ptr + 2) = 's';
+ *(ptr + 3) = '>';
}
rptr = dest;
- while ((ptr = strstr(rptr, "[color=")))
- {
- int addr=ptr-rptr;
- dest=(char*)mir_realloc(dest,mir_strlen(dest)+8);
- rptr=dest;
- ptr=rptr+addr;
- memmove(ptr+5, ptr, mir_strlen(ptr) + 1);
- memcpy(ptr,"<font ",6);
- if ((ptr = strstr(ptr,"]")))
- {
- *(ptr)='>';
- if ((ptr = strstr(ptr,"[/color]")))
- {
- memcpy(ptr,"</font>",7);
- memmove(ptr+7,ptr+8,mir_strlen(ptr+8)+1);
+ while ((ptr = strstr(rptr, "[color="))) {
+ int addr = ptr - rptr;
+ dest = (char*)mir_realloc(dest, mir_strlen(dest) + 8);
+ rptr = dest;
+ ptr = rptr + addr;
+ memmove(ptr + 5, ptr, mir_strlen(ptr) + 1);
+ memcpy(ptr, "<font ", 6);
+ if ((ptr = strstr(ptr, "]"))) {
+ *(ptr) = '>';
+ if ((ptr = strstr(ptr, "[/color]"))) {
+ memcpy(ptr, "</font>", 7);
+ memmove(ptr + 7, ptr + 8, mir_strlen(ptr + 8) + 1);
}
}
else
rptr++;
}
- while ((ptr = strstr(rptr, "[url=")))
- {
- int addr=ptr-rptr;
- dest=(char*)mir_realloc(dest,mir_strlen(dest)+8);
- rptr=dest;
- ptr=rptr+addr;
- memmove(ptr+3, ptr, mir_strlen(ptr)+1);
- memcpy(ptr,"<a href",7);
- if ((ptr = strstr(ptr, "]")))
- {
- *(ptr)='>';
- if ((ptr = strstr(ptr, "[/url]")))
- {
- memcpy(ptr,"</a>",4);
- memmove(ptr+4,ptr+6,mir_strlen(ptr+6)+1);
+ while ((ptr = strstr(rptr, "[url="))) {
+ int addr = ptr - rptr;
+ dest = (char*)mir_realloc(dest, mir_strlen(dest) + 8);
+ rptr = dest;
+ ptr = rptr + addr;
+ memmove(ptr + 3, ptr, mir_strlen(ptr) + 1);
+ memcpy(ptr, "<a href", 7);
+ if ((ptr = strstr(ptr, "]"))) {
+ *(ptr) = '>';
+ if ((ptr = strstr(ptr, "[/url]"))) {
+ memcpy(ptr, "</a>", 4);
+ memmove(ptr + 4, ptr + 6, mir_strlen(ptr + 6) + 1);
}
}
else
@@ -580,19 +470,18 @@ char* bbcodes_to_html(const char *src) void strip_tag(char* begin, char* end)
{
- memmove(begin,end+1,mir_strlen(end+1)+1);
+ memmove(begin, end + 1, mir_strlen(end + 1) + 1);
}
//strip a tag within a string
char* strip_tag_within(char* begin, char* end)
{
- while(char* sub_begin=strchr(begin,'<'))
- {
- if (sub_begin<end)//less than the original ending
+ while (char *sub_begin = strchr(begin, '<')) {
+ if (sub_begin < end)//less than the original ending
{
- char* sub_end=strchr(begin,'>');
- strip_tag(sub_begin,sub_end);
- end=end-(sub_end-sub_begin)-1;
+ char *sub_end = strchr(begin, '>');
+ strip_tag(sub_begin, sub_end);
+ end = end - (sub_end - sub_begin) - 1;
}
else
break;
@@ -600,177 +489,156 @@ char* strip_tag_within(char* begin, char* end) return end;
}
-char* rtf_to_html(HWND hwndDlg,int DlgItem)
+char* rtf_to_html(HWND hwndDlg, int DlgItem)
{
- char* buf=(char*)mir_alloc(4024);
- size_t pos=0;
- int start=0;
- int end=1;
- BOOL Bold=false;
- BOOL Italic=false;
- BOOL Underline=false;
- char Face[32]="";
- COLORREF Color=0;
- COLORREF BackColor=0;
- int Size=0;
+ char* buf = (char*)mir_alloc(4024);
+ size_t pos = 0;
+ int start = 0;
+ int end = 1;
+ BOOL Bold = false;
+ BOOL Italic = false;
+ BOOL Underline = false;
+ char Face[32] = "";
+ COLORREF Color = 0;
+ COLORREF BackColor = 0;
+ int Size = 0;
GETTEXTLENGTHEX tl;
- tl.flags=GTL_DEFAULT;
- tl.codepage=CP_ACP;
+ tl.flags = GTL_DEFAULT;
+ tl.codepage = CP_ACP;
int oldstart = 0, oldend = 0;
SendDlgItemMessage(hwndDlg, DlgItem, EM_GETSEL, (WPARAM)&oldstart, (LPARAM)&oldend);
- int length=SendDlgItemMessage(hwndDlg, DlgItem, EM_GETTEXTLENGTHEX,(WPARAM)&tl,0);
- while(start<length)
- {
+ int length = SendDlgItemMessage(hwndDlg, DlgItem, EM_GETTEXTLENGTHEX, (WPARAM)&tl, 0);
+ while (start < length) {
SendDlgItemMessage(hwndDlg, DlgItem, EM_SETSEL, start, end);
CHARFORMAT2A cfOld;
cfOld.cbSize = sizeof(cfOld);
- cfOld.dwMask = CFM_BOLD|CFM_ITALIC|CFM_UNDERLINE|CFM_SIZE|CFM_COLOR|CFM_BACKCOLOR|CFM_FACE;
+ cfOld.dwMask = CFM_BOLD | CFM_ITALIC | CFM_UNDERLINE | CFM_SIZE | CFM_COLOR | CFM_BACKCOLOR | CFM_FACE;
SendDlgItemMessageA(hwndDlg, DlgItem, EM_GETCHARFORMAT, SCF_SELECTION, (LPARAM)&cfOld);
BOOL isBold = (cfOld.dwEffects & CFE_BOLD) && (cfOld.dwMask & CFM_BOLD);
BOOL isItalic = (cfOld.dwEffects & CFE_ITALIC) && (cfOld.dwMask & CFM_ITALIC);
BOOL isUnderline = (cfOld.dwEffects & CFE_UNDERLINE) && (cfOld.dwMask & CFM_UNDERLINE);
- COLORREF isColor=cfOld.crTextColor;
- COLORREF isBackColor=cfOld.crBackColor;
+ COLORREF isColor = cfOld.crTextColor;
+ COLORREF isBackColor = cfOld.crBackColor;
int isSize;
- if (cfOld.yHeight==38*20)
- isSize=7;
- else if (cfOld.yHeight==24*20)
- isSize=6;
- else if (cfOld.yHeight==18*20)
- isSize=5;
- else if (cfOld.yHeight==14*20)
- isSize=4;
- else if (cfOld.yHeight==12*20)
- isSize=3;
- else if (cfOld.yHeight==10*20)
- isSize=2;
- else if (cfOld.yHeight==8*20)
- isSize=1;
+ if (cfOld.yHeight == 38 * 20)
+ isSize = 7;
+ else if (cfOld.yHeight == 24 * 20)
+ isSize = 6;
+ else if (cfOld.yHeight == 18 * 20)
+ isSize = 5;
+ else if (cfOld.yHeight == 14 * 20)
+ isSize = 4;
+ else if (cfOld.yHeight == 12 * 20)
+ isSize = 3;
+ else if (cfOld.yHeight == 10 * 20)
+ isSize = 2;
+ else if (cfOld.yHeight == 8 * 20)
+ isSize = 1;
else
- isSize=3;
- TCHAR text[3] =_T("");
+ isSize = 3;
+ TCHAR text[3] = _T("");
SendDlgItemMessage(hwndDlg, DlgItem, EM_GETSELTEXT, 0, (LPARAM)&text);
- if (Bold!=isBold)
- {
- Bold=isBold;
- if (isBold)
- {
- mir_strcpy(&buf[pos],"<b>");
- pos+=3;
+ if (Bold != isBold) {
+ Bold = isBold;
+ if (isBold) {
+ mir_strcpy(&buf[pos], "<b>");
+ pos += 3;
}
- else
- {
- if (start!=0)
- {
- mir_strcpy(&buf[pos],"</b>");
- pos+=4;
+ else {
+ if (start != 0) {
+ mir_strcpy(&buf[pos], "</b>");
+ pos += 4;
}
}
}
- if (Italic!=isItalic)
- {
- Italic=isItalic;
- if (isItalic)
- {
- mir_strcpy(&buf[pos],"<i>");
- pos+=3;
+ if (Italic != isItalic) {
+ Italic = isItalic;
+ if (isItalic) {
+ mir_strcpy(&buf[pos], "<i>");
+ pos += 3;
}
- else
- {
- if (start!=0)
- {
- mir_strcpy(&buf[pos],"</i>");
- pos+=4;
+ else {
+ if (start != 0) {
+ mir_strcpy(&buf[pos], "</i>");
+ pos += 4;
}
}
}
- if (Underline!=isUnderline)
- {
- Underline=isUnderline;
- if (isUnderline)
- {
- mir_strcpy(&buf[pos],"<u>");
- pos+=3;
+ if (Underline != isUnderline) {
+ Underline = isUnderline;
+ if (isUnderline) {
+ mir_strcpy(&buf[pos], "<u>");
+ pos += 3;
}
- else
- {
- if (start!=0)
- {
- mir_strcpy(&buf[pos],"</u>");
- pos+=4;
+ else {
+ if (start != 0) {
+ mir_strcpy(&buf[pos], "</u>");
+ pos += 4;
}
}
}
- if (Size != isSize || Color != isColor || BackColor != isBackColor || mir_strcmp(Face, cfOld.szFaceName))
- {
- Size=isSize;
- Color=isColor;
- BackColor=isBackColor;
- mir_strcpy(Face,cfOld.szFaceName);
- if (start!=0)
- {
- mir_strcpy(&buf[pos],"</font>");
- pos+=7;
+ if (Size != isSize || Color != isColor || BackColor != isBackColor || mir_strcmp(Face, cfOld.szFaceName)) {
+ Size = isSize;
+ Color = isColor;
+ BackColor = isBackColor;
+ mir_strcpy(Face, cfOld.szFaceName);
+ if (start != 0) {
+ mir_strcpy(&buf[pos], "</font>");
+ pos += 7;
}
- mir_strcpy(&buf[pos],"<font");
- pos+=5;
- mir_strcpy(&buf[pos]," face=\"");
- pos+=7;
- mir_strcpy(&buf[pos],Face);
- pos+=mir_strlen(Face);
- mir_strcpy(&buf[pos],"\"");
+ mir_strcpy(&buf[pos], "<font");
+ pos += 5;
+ mir_strcpy(&buf[pos], " face=\"");
+ pos += 7;
+ mir_strcpy(&buf[pos], Face);
+ pos += mir_strlen(Face);
+ mir_strcpy(&buf[pos], "\"");
pos++;
- if (!(cfOld.dwEffects & CFE_AUTOBACKCOLOR))
- {
- mir_strcpy(&buf[pos]," back=#");
- pos+=6;
+ if (!(cfOld.dwEffects & CFE_AUTOBACKCOLOR)) {
+ mir_strcpy(&buf[pos], " back=#");
+ pos += 6;
char chBackColor[7];
- _itoa((_htonl(BackColor)>>8),chBackColor,16);
- size_t len=mir_strlen(chBackColor);
- if (len<6)
- {
- memmove(chBackColor+(6-len),chBackColor,len+1);
- for(int i=0;i<6;i++)
- chBackColor[i]='0';
+ _itoa((_htonl(BackColor) >> 8), chBackColor, 16);
+ size_t len = mir_strlen(chBackColor);
+ if (len < 6) {
+ memmove(chBackColor + (6 - len), chBackColor, len + 1);
+ for (int i = 0; i < 6; i++)
+ chBackColor[i] = '0';
}
- mir_strcpy(&buf[pos],chBackColor);
- pos+=6;
+ mir_strcpy(&buf[pos], chBackColor);
+ pos += 6;
}
- if (!(cfOld.dwEffects & CFE_AUTOCOLOR))
- {
- mir_strcpy(&buf[pos]," color=#");
- pos+=8;
+ if (!(cfOld.dwEffects & CFE_AUTOCOLOR)) {
+ mir_strcpy(&buf[pos], " color=#");
+ pos += 8;
char chColor[7];
- _itoa((_htonl(Color)>>8),chColor,16);
- size_t len=mir_strlen(chColor);
- if (len<6)
- {
- memmove(chColor+(6-len),chColor,len+1);
- for(int i=0;i<6;i++)
- chColor[i]='0';
+ _itoa((_htonl(Color) >> 8), chColor, 16);
+ size_t len = mir_strlen(chColor);
+ if (len < 6) {
+ memmove(chColor + (6 - len), chColor, len + 1);
+ for (int i = 0; i < 6; i++)
+ chColor[i] = '0';
}
- mir_strcpy(&buf[pos],chColor);
- pos+=6;
+ mir_strcpy(&buf[pos], chColor);
+ pos += 6;
}
- mir_strcpy(&buf[pos]," size=");
- pos+=6;
+ mir_strcpy(&buf[pos], " size=");
+ pos += 6;
char chSize[2];
- _itoa(Size,chSize,10);
- mir_strcpy(&buf[pos],chSize);
+ _itoa(Size, chSize, 10);
+ mir_strcpy(&buf[pos], chSize);
pos++;
- mir_strcpy(&buf[pos],">");
+ mir_strcpy(&buf[pos], ">");
pos++;
}
- if (text[0]=='\r')
- {
- mir_strcpy(&buf[pos],"<br>");
- pos+=4;
+ if (text[0] == '\r') {
+ mir_strcpy(&buf[pos], "<br>");
+ pos += 4;
}
- else
- {
+ else {
T2Utf txt(text);
mir_strcpy(&buf[pos], txt);
pos += mir_strlen(txt);
@@ -778,75 +646,68 @@ char* rtf_to_html(HWND hwndDlg,int DlgItem) start++;
end++;
}
- if (Bold)
- {
- mir_strcpy(&buf[pos],"</b>");
- pos+=4;
+ if (Bold) {
+ mir_strcpy(&buf[pos], "</b>");
+ pos += 4;
}
- if (Italic)
- {
- mir_strcpy(&buf[pos],"</i>");
- pos+=4;
+ if (Italic) {
+ mir_strcpy(&buf[pos], "</i>");
+ pos += 4;
}
- if (Underline)
- {
- mir_strcpy(&buf[pos],"</u>");
- pos+=4;
+ if (Underline) {
+ mir_strcpy(&buf[pos], "</u>");
+ pos += 4;
}
- mir_strcpy(&buf[pos],"</font>");
- pos+=7;
+ mir_strcpy(&buf[pos], "</font>");
+ pos += 7;
SendDlgItemMessage(hwndDlg, DlgItem, EM_SETSEL, oldstart, oldend);
return buf;
}
-void wcs_htons(wchar_t * ch)
+void wcs_htons(wchar_t *ch)
{
if (ch == NULL) return;
- for(size_t i=0;i<mir_wstrlen(ch);i++)
- ch[i]=_htons(ch[i]);
+ for (size_t i = 0; i < mir_wstrlen(ch); i++)
+ ch[i] = _htons(ch[i]);
}
-char* bytes_to_string(char* bytes, int num_bytes)
+char* bytes_to_string(char *bytes, int num_bytes)
{
if (num_bytes == 0) return NULL;
- char* string = (char*)mir_alloc(num_bytes*2+1);
- for(int i=0;i<num_bytes;i++)
- {
+ char *string = (char*)mir_alloc(num_bytes * 2 + 1);
+ for (int i = 0; i < num_bytes; i++) {
char store[2];
- unsigned char bit=(bytes[i]&0xF0)>>4;
- _itoa(bit,store,16);
- memcpy(&string[i*2],store,1);
- bit=(bytes[i]&0x0F);
- _itoa(bit,store,16);
- memcpy(&string[i*2+1],store,1);
- }
- string[num_bytes*2]='\0';
+ unsigned char bit = (bytes[i] & 0xF0) >> 4;
+ _itoa(bit, store, 16);
+ memcpy(&string[i * 2], store, 1);
+ bit = (bytes[i] & 0x0F);
+ _itoa(bit, store, 16);
+ memcpy(&string[i * 2 + 1], store, 1);
+ }
+ string[num_bytes * 2] = '\0';
return string;
}
-void string_to_bytes(char* string, char* bytes)
+void string_to_bytes(char *string, char *bytes)
{
char sbyte[3];
- sbyte[2]='\0';
- size_t length=mir_strlen(string);
- for (size_t i=0; i<length; i+=2)
- {
- sbyte[0]=string[i];
- sbyte[1]=string[i+1];
- bytes[i/2]=(char)strtol(sbyte,NULL,16);
+ sbyte[2] = '\0';
+ size_t length = mir_strlen(string);
+ for (size_t i = 0; i < length; i += 2) {
+ sbyte[0] = string[i];
+ sbyte[1] = string[i + 1];
+ bytes[i / 2] = (char)strtol(sbyte, NULL, 16);
}
}
-bool is_utf(const char* msg)
+bool is_utf(const char *msg)
{
bool res = false;
- if (msg)
- {
- for (unsigned i=0; !res; ++i)
- {
+ if (msg) {
+ for (unsigned i = 0; !res; ++i) {
char c = msg[i];
if (c == 0) break;
res = (c & 0x80) != 0;
@@ -855,43 +716,39 @@ bool is_utf(const char* msg) return res;
}
-char* get_fname(char* path)
+char* get_fname(char *path)
{
- char* pszFile = strrchr(path, '\\');
+ char *pszFile = strrchr(path, '\\');
if (pszFile) pszFile++; else pszFile = path;
return pszFile;
}
-TCHAR* get_dir(TCHAR* path)
+TCHAR* get_dir(TCHAR *path)
{
TCHAR *cpath = mir_tstrdup(path);
- TCHAR* swd = _tcsrchr(cpath, '\\');
+ TCHAR *swd = _tcsrchr(cpath, '\\');
if (swd) swd[1] = 0; else cpath[0] = 0;
return cpath;
}
-aimString::aimString(char* str)
+aimString::aimString(char *str)
{
- if (str == NULL)
- {
+ if (str == NULL) {
szString = NULL;
size = 0;
unicode = false;
}
- else
- {
+ else {
unicode = is_utf(str);
- if (unicode)
- {
+ if (unicode) {
wszString = mir_utf8decodeW(str);
wcs_htons(wszString);
size = mir_wstrlen(wszString) * sizeof(wchar_t);
}
- else
- {
+ else {
szString = mir_utf8decodeA(str);
size = mir_strlen(szString);
}
diff --git a/protocols/AimOscar/src/defines.h b/protocols/AimOscar/src/defines.h index 95e756d119..2caf13aa05 100644 --- a/protocols/AimOscar/src/defines.h +++ b/protocols/AimOscar/src/defines.h @@ -305,7 +305,7 @@ public: unsigned short LocalPort;// our port
//Peer connection stuff
- HANDLE hNetlibPeer;//handle to the peer netlib
+ HANDLE m_hNetlibPeer;//handle to the peer netlib
HANDLE hDirectBoundPort;//direct connection listening port
HANDLE current_rendezvous_accept_user;//hack
@@ -322,12 +322,12 @@ public: unsigned int services_size;//current services size
//Some mail connection stuff
- HANDLE hMailConn;
+ HANDLE m_hMailConn;
unsigned short mail_seqno;
int mail_packet_offset;
//avatar connection stuff
- HANDLE hAvatarConn;
+ HANDLE m_hAvatarConn;
unsigned short avatar_seqno;
HANDLE hAvatarEvent;
bool AvatarLimitThread;
diff --git a/protocols/AimOscar/src/direct_connect.cpp b/protocols/AimOscar/src/direct_connect.cpp index 0ed07c535c..c4d026515d 100644 --- a/protocols/AimOscar/src/direct_connect.cpp +++ b/protocols/AimOscar/src/direct_connect.cpp @@ -16,24 +16,25 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+
#include "stdafx.h"
void __cdecl CAimProto::aim_dc_helper(void* param) //only called when we are initiating a direct connection with someone else
{
- file_transfer *ft = (file_transfer*)param;
+ file_transfer *ft = (file_transfer*)param;
ProtoBroadcastAck(ft->hContact, ACKTYPE_FILE, ACKRESULT_CONNECTED, ft, 0);
- NETLIBPACKETRECVER packetRecv = {0};
+ NETLIBPACKETRECVER packetRecv = { 0 };
packetRecv.cbSize = sizeof(packetRecv);
packetRecv.dwTimeout = 350000;
- HANDLE hServerPacketRecver = (HANDLE) CallService(MS_NETLIB_CREATEPACKETRECVER, (WPARAM)ft->hConn, 2048 * 4);
+ HANDLE hServerPacketRecver = (HANDLE)CallService(MS_NETLIB_CREATEPACKETRECVER, (WPARAM)ft->hConn, 2048 * 4);
int result;
if (ft->sending)//we are sending
result = sending_file(ft, hServerPacketRecver, packetRecv);
- else
+ else
result = receiving_file(ft, hServerPacketRecver, packetRecv);
Netlib_CloseHandle(hServerPacketRecver);
@@ -41,17 +42,12 @@ void __cdecl CAimProto::aim_dc_helper(void* param) //only called when we are ini ft->hConn = NULL;
if (result == 0)
- {
ProtoBroadcastAck(ft->hContact, ACKTYPE_FILE, ACKRESULT_SUCCESS, ft, 0);
- }
- else
- {
- if (!ft->requester && result == 1 && !Miranda_Terminated())
- {
+ else {
+ if (!ft->requester && result == 1 && !Miranda_Terminated()) {
ft->accepted = false;
HANDLE hConn = aim_peer_connect(AIM_PROXY_SERVER, get_default_port());
- if (hConn)
- {
+ if (hConn) {
debugLogA("Connected to proxy ip because we want to use a proxy for the file transfer.");
ft->requester = true;
ft->hConn = hConn;
@@ -59,30 +55,27 @@ void __cdecl CAimProto::aim_dc_helper(void* param) //only called when we are ini return;
}
}
- aim_file_ad(hServerConn, seqno, ft->sn, ft->icbm_cookie, true, 0);
+ aim_file_ad(m_hServerConn, m_seqno, ft->sn, ft->icbm_cookie, true, 0);
ProtoBroadcastAck(ft->hContact, ACKTYPE_FILE, ACKRESULT_FAILED, ft, 0);
}
- ft_list.remove_by_ft(ft);
+ m_ft_list.remove_by_ft(ft);
}
void aim_direct_connection_initiated(HANDLE hNewConnection, DWORD, void* extra)//for receiving stuff via dc
{
- CAimProto* ppro = (CAimProto*)extra;
- file_transfer *ft;
+ CAimProto *ppro = (CAimProto*)extra;
- NETLIBCONNINFO connInfo = { sizeof(connInfo) };
+ NETLIBCONNINFO connInfo = { sizeof(connInfo) };
CallService(MS_NETLIB_GETCONNECTIONINFO, (WPARAM)hNewConnection, (LPARAM)&connInfo);
ppro->debugLogA("Buddy connected: %s", connInfo.szIpPort);
// okay someone connected to us or we initiated the connection- we need to figure out who they are and if they belong
- ft = ppro->ft_list.find_by_port(connInfo.wPort);
- if (ft)
- {
+ file_transfer *ft = ppro->m_ft_list.find_by_port(connInfo.wPort);
+ if (ft) {
ft->hConn = hNewConnection;
ppro->aim_dc_helper(ft);
}
- else
- Netlib_CloseHandle(hNewConnection);
+ else Netlib_CloseHandle(hNewConnection);
}
diff --git a/protocols/AimOscar/src/error.cpp b/protocols/AimOscar/src/error.cpp index f9ecf33108..885d13deb0 100644 --- a/protocols/AimOscar/src/error.cpp +++ b/protocols/AimOscar/src/error.cpp @@ -16,12 +16,12 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+
#include "stdafx.h"
void CAimProto::login_error(unsigned short error)
{
- switch(error)
- {
+ switch (error) {
case 0x0004:
ShowPopup(LPGEN("Invalid Screen Name or password."), ERROR_POPUP);
break;
@@ -42,8 +42,7 @@ void CAimProto::login_error(unsigned short error) void CAimProto::get_error(unsigned short error)
{
- switch(error)
- {
+ switch (error) {
case 0x01:
ShowPopup(LPGEN("Invalid SNAC header."), ERROR_POPUP);
break;
@@ -144,8 +143,7 @@ void CAimProto::get_error(unsigned short error) void CAimProto::admin_error(unsigned short error)
{
- switch(error)
- {
+ switch (error) {
case 0x01:
ShowPopup(LPGEN("Check your Screen Name."), ERROR_POPUP);
break;
@@ -249,39 +247,39 @@ void CAimProto::admin_error(unsigned short error) case 0x1a:
ShowPopup(LPGEN("Bad Database status."), ERROR_POPUP);
break;
-
+
case 0x1b:
ShowPopup(LPGEN("Migration Cancel."), ERROR_POPUP);
break;
-
+
case 0x1c:
ShowPopup(LPGEN("Internal Error."), ERROR_POPUP);
break;
-
+
case 0x1d:
ShowPopup(LPGEN("There is already a Pending Request for this Screen Name."), ERROR_POPUP);
break;
-
+
case 0x1e:
ShowPopup(LPGEN("Not DT status."), ERROR_POPUP);
break;
-
+
case 0x1f:
ShowPopup(LPGEN("Outstanding Confirmation."), ERROR_POPUP);
break;
-
+
case 0x20:
ShowPopup(LPGEN("No Email Address."), ERROR_POPUP);
break;
-
+
case 0x21:
ShowPopup(LPGEN("Over Limit."), ERROR_POPUP);
break;
-
+
case 0x22:
ShowPopup(LPGEN("Email Host Fail."), ERROR_POPUP);
break;
-
+
case 0x23:
ShowPopup(LPGEN("DNS Fail."), ERROR_POPUP);
break;
diff --git a/protocols/AimOscar/src/file.cpp b/protocols/AimOscar/src/file.cpp index 19efeee646..33bcbf0afe 100644 --- a/protocols/AimOscar/src/file.cpp +++ b/protocols/AimOscar/src/file.cpp @@ -16,10 +16,13 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+
#include "stdafx.h"
#pragma pack(push, 1)
-struct oft2//oscar file transfer 2 class- See On_Sending_Files_via_OSCAR.pdf
+
+// oscar file transfer 2 class- See On_Sending_Files_via_OSCAR.pdf
+struct oft2
{
char protocol_version[4];//4
unsigned short length;//6
@@ -64,24 +67,24 @@ bool send_init_oft2(file_transfer *ft, char* file) memset(oft, 0, len);
memcpy(oft->protocol_version, "OFT2", 4);
- oft->length = _htons(len);
- oft->type = 0x0101;
- oft->total_files = _htons(ft->pfts.totalFiles);
- oft->num_files_left = _htons(ft->pfts.totalFiles - ft->pfts.currentFileNumber);
- oft->total_parts = _htons(1);
- oft->parts_left = _htons(1);
- oft->total_size = _htonl(ft->pfts.totalBytes);
- oft->size = _htonl(ft->pfts.currentFileSize);
- oft->mod_time = _htonl(ft->pfts.currentFileTime);
- oft->checksum = _htonl(aim_oft_checksum_file(ft->pfts.tszCurrentFile));
- oft->recv_RFchecksum = 0x0000FFFF;
- oft->RFchecksum = 0x0000FFFF;
- oft->recv_checksum = 0x0000FFFF;
+ oft->length = _htons(len);
+ oft->type = 0x0101;
+ oft->total_files = _htons(ft->pfts.totalFiles);
+ oft->num_files_left = _htons(ft->pfts.totalFiles - ft->pfts.currentFileNumber);
+ oft->total_parts = _htons(1);
+ oft->parts_left = _htons(1);
+ oft->total_size = _htonl(ft->pfts.totalBytes);
+ oft->size = _htonl(ft->pfts.currentFileSize);
+ oft->mod_time = _htonl(ft->pfts.currentFileTime);
+ oft->checksum = _htonl(aim_oft_checksum_file(ft->pfts.tszCurrentFile));
+ oft->recv_RFchecksum = 0x0000FFFF;
+ oft->RFchecksum = 0x0000FFFF;
+ oft->recv_checksum = 0x0000FFFF;
memcpy(oft->idstring, "Cool FileXfer", 13);
- oft->flags = 0x20;
+ oft->flags = 0x20;
oft->list_name_offset = 0x1c;
oft->list_size_offset = 0x11;
- oft->encoding = _htons(astr.isUnicode() ? 2 : 0);
+ oft->encoding = _htons(astr.isUnicode() ? 2 : 0);
memcpy(oft->filename, astr.getBuf(), astr.getTermSize());
if (!ft->requester || ft->pfts.currentFileNumber)
@@ -103,12 +106,11 @@ bool setup_next_file_send(file_transfer *ft) {
TCHAR *file;
struct _stati64 statbuf;
- for (;;)
- {
+ for (;;) {
file = ft->pfts.ptszFiles[ft->cf];
if (file == NULL) return false;
- if (_tstati64(file, &statbuf) == 0 && (statbuf.st_mode & _S_IFDIR) == 0)
+ if (_tstati64(file, &statbuf) == 0 && (statbuf.st_mode & _S_IFDIR) == 0)
break;
++ft->cf;
@@ -121,12 +123,10 @@ bool setup_next_file_send(file_transfer *ft) char* fnamea;
T2Utf fname(file);
- if (ft->pfts.totalFiles > 1 && ft->file[0])
- {
+ if (ft->pfts.totalFiles > 1 && ft->file[0]) {
size_t dlen = mir_strlen(ft->file);
- if (strncmp(fname, ft->file, dlen) == 0 && fname[dlen] == '\\')
- {
- fnamea = &fname[dlen+1];
+ if (strncmp(fname, ft->file, dlen) == 0 && fname[dlen] == '\\') {
+ fnamea = &fname[dlen + 1];
for (char *p = fnamea; *p; ++p)
if (*p == '\\')
*p = 1;
@@ -151,26 +151,22 @@ int CAimProto::sending_file(file_transfer *ft, HANDLE hServerPacketRecver, NETLI debugLogA("Sent file information to buddy.");
//start listen for packets stuff
- for (;;)
- {
+ for (;;) {
int recvResult = packetRecv.bytesAvailable - packetRecv.bytesUsed;
if (recvResult <= 0)
recvResult = CallService(MS_NETLIB_GETMOREPACKETS, (WPARAM)hServerPacketRecver, (LPARAM)&packetRecv);
- if (recvResult == 0)
- {
+ if (recvResult == 0) {
debugLogA("P2P: File transfer connection Error: 0");
break;
}
- if (recvResult == SOCKET_ERROR)
- {
+ if (recvResult == SOCKET_ERROR) {
failed_conn = true;
debugLogA("P2P: File transfer connection Error: -1");
break;
}
- if (recvResult > 0)
- {
+ if (recvResult > 0) {
if (recvResult < 0x100) continue;
-
+
oft2* recv_ft = (oft2*)&packetRecv.buffer[packetRecv.bytesUsed];
unsigned short pkt_len = _htons(recv_ft->length);
@@ -178,28 +174,25 @@ int CAimProto::sending_file(file_transfer *ft, HANDLE hServerPacketRecver, NETLI packetRecv.bytesUsed += pkt_len;
unsigned short type = _htons(recv_ft->type);
- if (type == 0x0202 || type == 0x0207)
- {
+ if (type == 0x0202 || type == 0x0207) {
debugLogA("P2P: Buddy Accepts our file transfer.");
int fid = _topen(ft->pfts.tszCurrentFile, _O_RDONLY | _O_BINARY, _S_IREAD);
- if (fid < 0)
- {
+ if (fid < 0) {
report_file_error(ft->pfts.tszCurrentFile);
return 2;
}
if (ft->pfts.currentFileProgress) _lseeki64(fid, ft->pfts.currentFileProgress, SEEK_SET);
- NETLIBSELECT tSelect = {0};
+ NETLIBSELECT tSelect = { 0 };
tSelect.cbSize = sizeof(tSelect);
tSelect.hReadConns[0] = ft->hConn;
ProtoBroadcastAck(ft->hContact, ACKTYPE_FILE, ACKRESULT_DATA, ft, (LPARAM)&ft->pfts);
clock_t lNotify = clock();
- for (;;)
- {
+ for (;;) {
char buffer[4096];
int bytes = _read(fid, buffer, sizeof(buffer));
if (bytes <= 0) break;
@@ -207,9 +200,8 @@ int CAimProto::sending_file(file_transfer *ft, HANDLE hServerPacketRecver, NETLI if (Netlib_Send(ft->hConn, buffer, bytes, MSG_NODUMP) <= 0) break;
ft->pfts.currentFileProgress += bytes;
ft->pfts.totalProgress += bytes;
-
- if (clock() >= lNotify)
- {
+
+ if (clock() >= lNotify) {
ProtoBroadcastAck(ft->hContact, ACKTYPE_FILE, ACKRESULT_DATA, ft, (LPARAM)&ft->pfts);
if (CallService(MS_NETLIB_SELECT, 0, (LPARAM)&tSelect)) break;
@@ -220,40 +212,33 @@ int CAimProto::sending_file(file_transfer *ft, HANDLE hServerPacketRecver, NETLI debugLogA("P2P: Finished sending file bytes.");
_close(fid);
}
- else if (type == 0x0204)
- {
+ else if (type == 0x0204) {
// Handle file skip case
- if (ft->pfts.currentFileProgress == 0)
- {
+ if (ft->pfts.currentFileProgress == 0) {
ft->pfts.totalProgress += ft->pfts.currentFileSize;
}
debugLogA("P2P: Buddy says they got the file successfully");
- if ((ft->pfts.currentFileNumber + 1) < ft->pfts.totalFiles)
- {
+ if ((ft->pfts.currentFileNumber + 1) < ft->pfts.totalFiles) {
ProtoBroadcastAck(ft->hContact, ACKTYPE_FILE, ACKRESULT_NEXTFILE, ft, 0);
++ft->pfts.currentFileNumber; ++ft->cf;
- if (!setup_next_file_send(ft))
- {
+ if (!setup_next_file_send(ft)) {
report_file_error(ft->pfts.tszCurrentFile);
return 2;
}
}
- else
- {
+ else {
failed = _htonl(recv_ft->recv_bytes) != ft->pfts.currentFileSize;
break;
}
}
- else if (type == 0x0205)
- {
+ else if (type == 0x0205) {
recv_ft = (oft2*)packetRecv.buffer;
recv_ft->type = _htons(0x0106);
-
+
ft->pfts.currentFileProgress = _htonl(recv_ft->recv_bytes);
- if (aim_oft_checksum_file(ft->pfts.tszCurrentFile, ft->pfts.currentFileProgress) != _htonl(recv_ft->recv_checksum))
- {
+ if (aim_oft_checksum_file(ft->pfts.tszCurrentFile, ft->pfts.currentFileProgress) != _htonl(recv_ft->recv_checksum)) {
ft->pfts.currentFileProgress = 0;
recv_ft->recv_bytes = 0;
}
@@ -284,28 +269,23 @@ int CAimProto::receiving_file(file_transfer *ft, HANDLE hServerPacketRecver, NET ft->pfts.tszWorkingDir = mir_utf8decodeT(ft->file);
//start listen for packets stuff
- for (;;)
- {
+ for (;;) {
int recvResult = packetRecv.bytesAvailable - packetRecv.bytesUsed;
if (recvResult <= 0)
recvResult = CallService(MS_NETLIB_GETMOREPACKETS, (WPARAM)hServerPacketRecver, (LPARAM)&packetRecv);
- if (recvResult == 0)
- {
+ if (recvResult == 0) {
debugLogA("P2P: File transfer connection Error: 0");
break;
}
- if (recvResult == SOCKET_ERROR)
- {
+ if (recvResult == SOCKET_ERROR) {
failed_conn = true;
debugLogA("P2P: File transfer connection Error: -1");
break;
}
- if (recvResult > 0)
- {
- if (!accepted_file)
- {
+ if (recvResult > 0) {
+ if (!accepted_file) {
if (recvResult < 0x100) continue;
-
+
oft2* recv_ft = (oft2*)&packetRecv.buffer[packetRecv.bytesUsed];
unsigned short pkt_len = _htons(recv_ft->length);
@@ -313,8 +293,7 @@ int CAimProto::receiving_file(file_transfer *ft, HANDLE hServerPacketRecver, NET packetRecv.bytesUsed += pkt_len;
unsigned short type = _htons(recv_ft->type);
- if (type == 0x0101)
- {
+ if (type == 0x0101) {
debugLogA("P2P: Buddy Ready to begin transfer.");
oft = (oft2*)mir_realloc(oft, pkt_len);
memcpy(oft, recv_ft, pkt_len);
@@ -331,15 +310,13 @@ int CAimProto::receiving_file(file_transfer *ft, HANDLE hServerPacketRecver, NET enc = _htons(recv_ft->encoding);
TCHAR *name;
- if (enc == 2)
- {
+ if (enc == 2) {
wchar_t* wbuf = (wchar_t*)buf;
wcs_htons(wbuf);
for (wchar_t *p = wbuf; *p; ++p) { if (*p == 1) *p = '\\'; }
name = mir_u2t(wbuf);
}
- else
- {
+ else {
for (char *p = buf; *p; ++p) { if (*p == 1) *p = '\\'; }
name = mir_a2t(buf);
}
@@ -356,8 +333,7 @@ int CAimProto::receiving_file(file_transfer *ft, HANDLE hServerPacketRecver, NET if (ProtoBroadcastAck(ft->hContact, ACKTYPE_FILE, ACKRESULT_FILERESUME, ft, (LPARAM)&ft->pfts))
WaitForSingleObject(ft->hResumeEvent, INFINITE);
- if (ft->pfts.tszCurrentFile)
- {
+ if (ft->pfts.tszCurrentFile) {
TCHAR* dir = get_dir(ft->pfts.tszCurrentFile);
CreateDirectoryTreeT(dir);
mir_free(dir);
@@ -367,22 +343,19 @@ int CAimProto::receiving_file(file_transfer *ft, HANDLE hServerPacketRecver, NET const int flag = ft->pfts.currentFileProgress ? 0 : _O_TRUNC;
fid = _topen(ft->pfts.tszCurrentFile, _O_CREAT | _O_WRONLY | _O_BINARY | flag, _S_IREAD | _S_IWRITE);
- if (fid < 0)
- {
+ if (fid < 0) {
report_file_error(fname);
break;
}
accepted_file = ft->pfts.currentFileProgress == 0;
- if (ft->pfts.currentFileProgress)
- {
+ if (ft->pfts.currentFileProgress) {
bool the_same;
oft->recv_bytes = _htonl(ft->pfts.currentFileProgress);
oft->recv_checksum = _htonl(aim_oft_checksum_file(ft->pfts.tszCurrentFile));
the_same = oft->size == oft->recv_bytes && oft->checksum == oft->recv_checksum;
- if (the_same)
- {
+ if (the_same) {
ft->pfts.totalProgress += ft->pfts.currentFileProgress;
oft->type = _htons(0x0204);
_close(fid);
@@ -393,8 +366,7 @@ int CAimProto::receiving_file(file_transfer *ft, HANDLE hServerPacketRecver, NET }
}
}
- else
- {
+ else {
oft->type = _htons(0x0204);
ProtoBroadcastAck(ft->hContact, ACKTYPE_FILE, ACKRESULT_NEXTFILE, ft, 0);
@@ -405,14 +377,12 @@ int CAimProto::receiving_file(file_transfer *ft, HANDLE hServerPacketRecver, NET if (Netlib_Send(ft->hConn, (char*)oft, pkt_len, 0) == SOCKET_ERROR)
break;
- if (ft->pfts.currentFileNumber >= ft->pfts.totalFiles && _htons(oft->type) == 0x0204)
- {
+ if (ft->pfts.currentFileNumber >= ft->pfts.totalFiles && _htons(oft->type) == 0x0204) {
failed = false;
break;
}
}
- else if (type == 0x0106)
- {
+ else if (type == 0x0106) {
oft = (oft2*)mir_realloc(oft, pkt_len);
memcpy(oft, recv_ft, pkt_len);
@@ -426,31 +396,26 @@ int CAimProto::receiving_file(file_transfer *ft, HANDLE hServerPacketRecver, NET if (Netlib_Send(ft->hConn, (char*)oft, pkt_len, 0) == SOCKET_ERROR)
break;
}
- else
- break;
+ else break;
}
- else
- {
+ else {
packetRecv.bytesUsed = packetRecv.bytesAvailable;
_write(fid, packetRecv.buffer, packetRecv.bytesAvailable);
ft->pfts.currentFileProgress += packetRecv.bytesAvailable;
- ft->pfts.totalProgress += packetRecv.bytesAvailable;
+ ft->pfts.totalProgress += packetRecv.bytesAvailable;
ProtoBroadcastAck(ft->hContact, ACKTYPE_FILE, ACKRESULT_DATA, ft, (LPARAM)&ft->pfts);
- if (ft->pfts.currentFileSize == ft->pfts.currentFileProgress)
- {
+ if (ft->pfts.currentFileSize == ft->pfts.currentFileProgress) {
oft->type = _htons(0x0204);
oft->recv_bytes = _htonl(ft->pfts.currentFileProgress);
oft->recv_checksum = _htonl(aim_oft_checksum_file(ft->pfts.tszCurrentFile));
debugLogA("P2P: We got the file successfully");
Netlib_Send(ft->hConn, (char*)oft, _htons(oft->length), 0);
- if (_htons(oft->num_files_left) == 1)
- {
+ if (_htons(oft->num_files_left) == 1) {
failed = false;
break;
}
- else
- {
+ else {
accepted_file = false;
_close(fid);
@@ -472,20 +437,18 @@ int CAimProto::receiving_file(file_transfer *ft, HANDLE hServerPacketRecver, NET void CAimProto::shutdown_file_transfers(void)
{
- for(int i=0; i<ft_list.getCount(); ++i)
- {
- file_transfer& ft = ft_list[i];
+ for (int i = 0; i < m_ft_list.getCount(); ++i) {
+ file_transfer& ft = m_ft_list[i];
if (ft.hConn)
Netlib_Shutdown(ft.hConn);
}
}
-ft_list_type::ft_list_type() : OBJLIST <file_transfer>(10) {};
+ft_list_type::ft_list_type() : OBJLIST <file_transfer>(10) {};
file_transfer* ft_list_type::find_by_cookie(char* cookie, MCONTACT hContact)
{
- for (int i = 0; i < getCount(); ++i)
- {
+ for (int i = 0; i < getCount(); ++i) {
file_transfer *ft = items[i];
if (ft->hContact == hContact && memcmp(ft->icbm_cookie, cookie, 8) == 0)
return ft;
@@ -495,10 +458,9 @@ file_transfer* ft_list_type::find_by_cookie(char* cookie, MCONTACT hContact) file_transfer* ft_list_type::find_by_port(unsigned short port)
{
- for (int i = getCount(); i--; )
- {
+ for (int i = getCount(); i--; ) {
file_transfer *ft = items[i];
- if (ft->requester && ft->local_port == port)
+ if (ft->requester && ft->local_port == port)
return ft;
}
return NULL;
@@ -508,18 +470,16 @@ file_transfer* ft_list_type::find_by_port(unsigned short port) bool ft_list_type::find_by_ft(file_transfer *ft)
{
for (int i = 0; i < getCount(); ++i)
- {
- if (items[i] == ft) return true;
- }
+ if (items[i] == ft)
+ return true;
+
return false;
}
void ft_list_type::remove_by_ft(file_transfer *ft)
{
- for (int i = 0; i < getCount(); ++i)
- {
- if (items[i] == ft)
- {
+ for (int i = 0; i < getCount(); ++i) {
+ if (items[i] == ft) {
remove(i);
break;
}
@@ -527,8 +487,8 @@ void ft_list_type::remove_by_ft(file_transfer *ft) }
file_transfer::file_transfer(MCONTACT hCont, char* nick, char* cookie)
-{
- memset(this, 0, sizeof(*this));
+{
+ memset(this, 0, sizeof(*this));
pfts.cbSize = sizeof(pfts);
pfts.flags = PFTS_TCHAR;
@@ -541,23 +501,22 @@ file_transfer::file_transfer(MCONTACT hCont, char* nick, char* cookie) memcpy(icbm_cookie, cookie, 8);
else
Utils_GetRandom(icbm_cookie, 8);
-
+
hResumeEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
}
-file_transfer::~file_transfer()
-{
+file_transfer::~file_transfer()
+{
stop_listen();
- mir_free(file);
- mir_free(message);
- mir_free(sn);
+ mir_free(file);
+ mir_free(message);
+ mir_free(sn);
mir_free(pfts.tszWorkingDir);
if (!sending) mir_free(pfts.tszCurrentFile);
- if (success && pfts.ptszFiles)
- {
+ if (success && pfts.ptszFiles) {
for (int i = 0; pfts.ptszFiles[i]; i++)
mir_free(pfts.ptszFiles[i]);
@@ -566,22 +525,21 @@ file_transfer::~file_transfer() CloseHandle(hResumeEvent);
}
-void file_transfer::listen(CAimProto* ppro)
-{
+void file_transfer::listen(CAimProto* ppro)
+{
if (hDirectBoundPort) return;
- NETLIBBIND nlb = {0};
+ NETLIBBIND nlb = { 0 };
nlb.cbSize = sizeof(nlb);
nlb.pfnNewConnectionV2 = aim_direct_connection_initiated;
nlb.pExtra = ppro;
- hDirectBoundPort = (HANDLE)CallService(MS_NETLIB_BINDPORT, (WPARAM)ppro->hNetlibPeer, (LPARAM)&nlb);
+ hDirectBoundPort = (HANDLE)CallService(MS_NETLIB_BINDPORT, (WPARAM)ppro->m_hNetlibPeer, (LPARAM)&nlb);
local_port = hDirectBoundPort ? nlb.wPort : 0;
}
-void file_transfer::stop_listen(void)
-{
- if (hDirectBoundPort)
- {
+void file_transfer::stop_listen(void)
+{
+ if (hDirectBoundPort) {
Netlib_CloseHandle(hDirectBoundPort);
hDirectBoundPort = NULL;
local_port = 0;
diff --git a/protocols/AimOscar/src/flap.cpp b/protocols/AimOscar/src/flap.cpp index 96b164fa9c..960034d8a0 100644 --- a/protocols/AimOscar/src/flap.cpp +++ b/protocols/AimOscar/src/flap.cpp @@ -18,23 +18,17 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "stdafx.h"
-FLAP::FLAP(char* buf,int num_bytes)
+FLAP::FLAP(char* buf, int num_bytes)
{
- if (FLAP_SIZE>num_bytes)
- {
- length_=0;
- }
- else
- {
- length_=_htons((*(unsigned short*)&buf[4]));
- if (FLAP_SIZE+length_>num_bytes)
- {
- length_=0;
- }
- else
- {
- type_=buf[1];
- value_=&buf[FLAP_SIZE];
+ if (FLAP_SIZE > num_bytes)
+ length_ = 0;
+ else {
+ length_ = _htons((*(unsigned short*)&buf[4]));
+ if (FLAP_SIZE + length_ > num_bytes)
+ length_ = 0;
+ else {
+ type_ = buf[1];
+ value_ = &buf[FLAP_SIZE];
}
}
}
@@ -42,17 +36,17 @@ unsigned short FLAP::len() {
return length_;
}
+
unsigned short FLAP::snaclen()
{
- return length_-10;
+ return length_ - 10;
}
+
int FLAP::cmp(unsigned short type)
{
- if (type_==type)
- return 1;
- else
- return 0;
+ return (type_ == type);
}
+
char* FLAP::val()
{
return value_;
diff --git a/protocols/AimOscar/src/links.cpp b/protocols/AimOscar/src/links.cpp index ee4709ac0c..ea187bfbe6 100644 --- a/protocols/AimOscar/src/links.cpp +++ b/protocols/AimOscar/src/links.cpp @@ -22,7 +22,6 @@ static HANDLE hServiceParseLink; extern OBJLIST<CAimProto> g_Instances;
-
static int SingleHexToDecimal(TCHAR c)
{
if (c >= '0' && c <= '9') return c - '0';
@@ -35,21 +34,17 @@ static TCHAR* url_decode(TCHAR* str) {
TCHAR* s = str, *d = str;
- while(*s)
- {
- if (*s == '%')
- {
+ while (*s) {
+ if (*s == '%') {
int digit1 = SingleHexToDecimal(s[1]);
- if (digit1 != -1)
- {
+ if (digit1 != -1) {
int digit2 = SingleHexToDecimal(s[2]);
- if (digit2 != -1)
- {
+ if (digit2 != -1) {
s += 3;
*d++ = (TCHAR)((digit1 << 4) | digit2);
continue;
- }
- }
+ }
+ }
}
*d++ = *s++;
}
@@ -58,7 +53,7 @@ static TCHAR* url_decode(TCHAR* str) return str;
}
-static INT_PTR ServiceParseAimLink(WPARAM,LPARAM lParam)
+static INT_PTR ServiceParseAimLink(WPARAM, LPARAM lParam)
{
if (lParam == 0) return 1; /* sanity check */
@@ -75,10 +70,8 @@ static INT_PTR ServiceParseAimLink(WPARAM,LPARAM lParam) if (g_Instances.getCount() == 0) return 0;
CAimProto *proto = &g_Instances[0];
- for (int i = 0; i < g_Instances.getCount(); ++i)
- {
- if (g_Instances[i].m_iStatus != ID_STATUS_OFFLINE && !IsStatusConnecting(g_Instances[i].m_iStatus))
- {
+ for (int i = 0; i < g_Instances.getCount(); ++i) {
+ if (g_Instances[i].m_iStatus != ID_STATUS_OFFLINE && !IsStatusConnecting(g_Instances[i].m_iStatus)) {
proto = &g_Instances[i];
break;
}
@@ -91,13 +84,11 @@ static INT_PTR ServiceParseAimLink(WPARAM,LPARAM lParam) open chatroom: aim:gochat?roomname=ROOM&exchange=NUM
*/
/* add a contact to the list */
- if (!_tcsnicmp(arg, _T("addbuddy?"), 9))
- {
- TCHAR *tok, *tok2;
+ if (!_tcsnicmp(arg, _T("addbuddy?"), 9)) {
+ TCHAR *tok, *tok2;
char *sn = NULL, *group = NULL;
-
- for (tok = arg + 8; tok != NULL; tok = tok2)
- {
+
+ for (tok = arg + 8; tok != NULL; tok = tok2) {
tok2 = _tcschr(++tok, '&'); /* first token */
if (tok2) *tok2 = 0;
if (!_tcsnicmp(tok, _T("screenname="), 11) && *(tok + 11) != 0)
@@ -105,8 +96,7 @@ static INT_PTR ServiceParseAimLink(WPARAM,LPARAM lParam) if (!_tcsnicmp(tok, _T("groupname="), 10) && *(tok + 10) != 0)
group = mir_utf8encodeT(url_decode(tok + 10)); /* group is currently ignored */
}
- if (sn == NULL)
- {
+ if (sn == NULL) {
mir_free(group);
return 1;
}
@@ -121,15 +111,13 @@ static INT_PTR ServiceParseAimLink(WPARAM,LPARAM lParam) return 0;
}
/* send a message to a contact */
- else if (!_tcsnicmp(arg, _T("goim?"), 5))
- {
+ else if (!_tcsnicmp(arg, _T("goim?"), 5)) {
TCHAR *tok, *tok2, *msg = NULL;
char *sn = NULL;
- for (tok = arg + 4; tok != NULL; tok = tok2)
- {
+ for (tok = arg + 4; tok != NULL; tok = tok2) {
tok2 = _tcschr(++tok, '&'); /* first token */
- if (tok2) *tok2=0;
+ if (tok2) *tok2 = 0;
if (!_tcsnicmp(tok, _T("screenname="), 11) && *(tok + 11) != 0)
sn = mir_t2a(url_decode(tok + 11));
if (!_tcsnicmp(tok, _T("message="), 8) && *(tok + 8) != 0)
@@ -144,35 +132,32 @@ static INT_PTR ServiceParseAimLink(WPARAM,LPARAM lParam) mir_free(sn);
return 0;
}
+
/* open a chatroom */
- else if (!_tcsnicmp(arg, _T("gochat?"), 7))
- {
+ else if (!_tcsnicmp(arg, _T("gochat?"), 7)) {
TCHAR *tok, *tok2;
char *rm = NULL;
int exchange = 0;
- for (tok = arg + 6; tok != NULL; tok = tok2)
- {
+ for (tok = arg + 6; tok != NULL; tok = tok2) {
tok2 = _tcschr(++tok, '&'); /* first token */
if (tok2) *tok2 = 0;
- if (!_tcsnicmp(tok, _T("roomname="), 9) && *(tok + 9) != 0)
- {
+ if (!_tcsnicmp(tok, _T("roomname="), 9) && *(tok + 9) != 0) {
rm = mir_t2a(url_decode(tok + 9));
for (char *ch = rm; *ch; ++ch)
if (*ch == '+') *ch = ' ';
}
if (!_tcsnicmp(tok, _T("exchange="), 9))
- exchange = _ttoi(tok + 9);
+ exchange = _ttoi(tok + 9);
}
- if (rm == NULL || exchange <= 0)
- {
+ if (rm == NULL || exchange <= 0) {
mir_free(rm);
return 1;
}
chatnav_param* par = new chatnav_param(rm, (unsigned short)exchange);
proto->ForkThread(&CAimProto::chatnav_request_thread, par);
-
+
mir_free(rm);
return 0;
}
diff --git a/protocols/AimOscar/src/proto.cpp b/protocols/AimOscar/src/proto.cpp index 4dc782f75a..869c081787 100644 --- a/protocols/AimOscar/src/proto.cpp +++ b/protocols/AimOscar/src/proto.cpp @@ -19,42 +19,42 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. CAimProto::CAimProto(const char* aProtoName, const TCHAR* aUserName) :
PROTO<CAimProto>(aProtoName, aUserName),
- chat_rooms(5)
+ m_chat_rooms(5)
{
debugLogA("Setting protocol/module name to '%s'", m_szModuleName);
//create some events
- hAvatarEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
- hChatNavEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
- hAdminEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
+ m_hAvatarEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
+ m_hChatNavEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
+ m_hAdminEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
CreateProtoService(PS_CREATEACCMGRUI, &CAimProto::SvcCreateAccMgrUI);
- CreateProtoService(PS_GETMYAWAYMSG, &CAimProto::GetMyAwayMsg);
+ CreateProtoService(PS_GETMYAWAYMSG, &CAimProto::GetMyAwayMsg);
CreateProtoService(PS_GETAVATARINFO, &CAimProto::GetAvatarInfo);
- CreateProtoService(PS_GETMYAVATAR, &CAimProto::GetAvatar);
- CreateProtoService(PS_SETMYAVATAR, &CAimProto::SetAvatar);
- CreateProtoService(PS_GETAVATARCAPS, &CAimProto::GetAvatarCaps);
+ CreateProtoService(PS_GETMYAVATAR, &CAimProto::GetAvatar);
+ CreateProtoService(PS_SETMYAVATAR, &CAimProto::SetAvatar);
+ CreateProtoService(PS_GETAVATARCAPS, &CAimProto::GetAvatarCaps);
- CreateProtoService(PS_JOINCHAT, &CAimProto::OnJoinChat);
- CreateProtoService(PS_LEAVECHAT, &CAimProto::OnLeaveChat);
+ CreateProtoService(PS_JOINCHAT, &CAimProto::OnJoinChat);
+ CreateProtoService(PS_LEAVECHAT, &CAimProto::OnLeaveChat);
HookProtoEvent(ME_CLIST_PREBUILDCONTACTMENU, &CAimProto::OnPreBuildContactMenu);
- HookProtoEvent(ME_CLIST_GROUPCHANGE, &CAimProto::OnGroupChange);
- HookProtoEvent(ME_OPT_INITIALISE, &CAimProto::OnOptionsInit);
+ HookProtoEvent(ME_CLIST_GROUPCHANGE, &CAimProto::OnGroupChange);
+ HookProtoEvent(ME_OPT_INITIALISE, &CAimProto::OnOptionsInit);
offline_contacts();
TCHAR descr[MAX_PATH];
- NETLIBUSER nlu = {0};
+ NETLIBUSER nlu = { 0 };
nlu.cbSize = sizeof(nlu);
nlu.flags = NUF_OUTGOING | NUF_HTTPCONNS | NUF_TCHAR;
nlu.szSettingsModule = m_szModuleName;
mir_sntprintf(descr, TranslateT("%s server connection"), m_tszUserName);
nlu.ptszDescriptiveName = descr;
- m_hNetlibUser = (HANDLE) CallService(MS_NETLIB_REGISTERUSER, 0, (LPARAM)&nlu);
+ m_hNetlibUser = (HANDLE)CallService(MS_NETLIB_REGISTERUSER, 0, (LPARAM)&nlu);
char szP2P[128];
mir_snprintf(szP2P, _countof(szP2P), "%sP2P", m_szModuleName);
@@ -62,41 +62,41 @@ CAimProto::CAimProto(const char* aProtoName, const TCHAR* aUserName) : mir_sntprintf(descr, TranslateT("%s Client-to-client connection"), m_tszUserName);
nlu.szSettingsModule = szP2P;
nlu.minIncomingPorts = 1;
- hNetlibPeer = (HANDLE) CallService(MS_NETLIB_REGISTERUSER, 0, (LPARAM)&nlu);
+ m_hNetlibPeer = (HANDLE)CallService(MS_NETLIB_REGISTERUSER, 0, (LPARAM)&nlu);
}
CAimProto::~CAimProto()
{
- if (hServerConn)
- Netlib_CloseHandle(hServerConn);
- if (hAvatarConn && hAvatarConn != (HANDLE)1)
- Netlib_CloseHandle(hAvatarConn);
- if (hChatNavConn && hChatNavConn != (HANDLE)1)
- Netlib_CloseHandle(hChatNavConn);
- if (hAdminConn && hAdminConn != (HANDLE)1)
- Netlib_CloseHandle(hAdminConn);
+ if (m_hServerConn)
+ Netlib_CloseHandle(m_hServerConn);
+ if (m_hAvatarConn && m_hAvatarConn != (HANDLE)1)
+ Netlib_CloseHandle(m_hAvatarConn);
+ if (m_hChatNavConn && m_hChatNavConn != (HANDLE)1)
+ Netlib_CloseHandle(m_hChatNavConn);
+ if (m_hAdminConn && m_hAdminConn != (HANDLE)1)
+ Netlib_CloseHandle(m_hAdminConn);
close_chat_conn();
Netlib_CloseHandle(m_hNetlibUser);
- Netlib_CloseHandle(hNetlibPeer);
+ Netlib_CloseHandle(m_hNetlibPeer);
- CloseHandle(hAvatarEvent);
- CloseHandle(hChatNavEvent);
- CloseHandle(hAdminEvent);
+ CloseHandle(m_hAvatarEvent);
+ CloseHandle(m_hChatNavEvent);
+ CloseHandle(m_hAdminEvent);
- for (int i=0; i<9; ++i)
- mir_free(modeMsgs[i]);
+ for (int i = 0; i < 9; ++i)
+ mir_free(m_modeMsgs[i]);
- mir_free(pref2_flags);
- mir_free(pref2_set_flags);
+ mir_free(m_pref2_flags);
+ mir_free(m_pref2_set_flags);
mir_free(COOKIE);
mir_free(MAIL_COOKIE);
mir_free(AVATAR_COOKIE);
mir_free(CHATNAV_COOKIE);
mir_free(ADMIN_COOKIE);
- mir_free(username);
+ mir_free(m_username);
}
////////////////////////////////////////////////////////////////////////////////////////
@@ -119,7 +119,9 @@ int CAimProto::OnModulesLoaded(WPARAM, LPARAM) MCONTACT CAimProto::AddToList(int flags, PROTOSEARCHRESULT* psr)
{
- if (state != 1) return 0;
+ if (m_state != 1)
+ return 0;
+
TCHAR *id = psr->id.t ? psr->id.t : psr->nick.t;
char *sn = psr->flags & PSR_UNICODE ? mir_u2a((wchar_t*)id) : mir_strdup((char*)id);
MCONTACT hContact = contact_from_sn(sn, true, (flags & PALF_TEMPORARY) != 0);
@@ -133,12 +135,11 @@ MCONTACT CAimProto::AddToList(int flags, PROTOSEARCHRESULT* psr) int __cdecl CAimProto::AuthRequest(MCONTACT hContact, const TCHAR*)
{
//Not a real authrequest- only used b/c we don't know the group until now.
- if (state != 1)
+ if (m_state != 1)
return 1;
DBVARIANT dbv;
- if (!db_get_utf(hContact, MOD_KEY_CL, OTH_KEY_GP, &dbv) && dbv.pszVal[0])
- {
+ if (!db_get_utf(hContact, MOD_KEY_CL, OTH_KEY_GP, &dbv) && dbv.pszVal[0]) {
add_contact_to_group(hContact, dbv.pszVal);
db_free(&dbv);
}
@@ -150,15 +151,13 @@ int __cdecl CAimProto::AuthRequest(MCONTACT hContact, const TCHAR*) ////////////////////////////////////////////////////////////////////////////////////////
// FileAllow - starts a file transfer
-HANDLE __cdecl CAimProto::FileAllow(MCONTACT, HANDLE hTransfer, const TCHAR* szPath)
+HANDLE __cdecl CAimProto::FileAllow(MCONTACT, HANDLE hTransfer, const TCHAR *szPath)
{
file_transfer *ft = (file_transfer*)hTransfer;
- if (ft && ft_list.find_by_ft(ft))
- {
+ if (ft && m_ft_list.find_by_ft(ft)) {
char *path = mir_utf8encodeT(szPath);
- if (ft->pfts.totalFiles > 1 && ft->file[0])
- {
+ if (ft->pfts.totalFiles > 1 && ft->file[0]) {
size_t path_len = mir_strlen(path);
size_t len = mir_strlen(ft->file) + 2;
@@ -181,19 +180,18 @@ HANDLE __cdecl CAimProto::FileAllow(MCONTACT, HANDLE hTransfer, const TCHAR* szP int __cdecl CAimProto::FileCancel(MCONTACT, HANDLE hTransfer)
{
file_transfer *ft = (file_transfer*)hTransfer;
- if (!ft_list.find_by_ft(ft)) return 0;
+ if (!m_ft_list.find_by_ft(ft))
+ return 0;
debugLogA("We are cancelling a file transfer.");
- aim_chat_deny(hServerConn, seqno, ft->sn, ft->icbm_cookie);
+ aim_chat_deny(m_hServerConn, m_seqno, ft->sn, ft->icbm_cookie);
- if (ft->hConn)
- {
+ if (ft->hConn) {
Netlib_Shutdown(ft->hConn);
SetEvent(ft->hResumeEvent);
}
- else
- ft_list.remove_by_ft(ft);
+ else m_ft_list.remove_by_ft(ft);
return 0;
}
@@ -204,11 +202,12 @@ int __cdecl CAimProto::FileCancel(MCONTACT, HANDLE hTransfer) int __cdecl CAimProto::FileDeny(MCONTACT, HANDLE hTransfer, const TCHAR* /*szReason*/)
{
file_transfer *ft = (file_transfer*)hTransfer;
- if (!ft_list.find_by_ft(ft)) return 0;
+ if (!m_ft_list.find_by_ft(ft))
+ return 0;
debugLogA("We are denying a file transfer.");
- aim_chat_deny(hServerConn, seqno, ft->sn, ft->icbm_cookie);
+ aim_chat_deny(m_hServerConn, m_seqno, ft->sn, ft->icbm_cookie);
return 0;
}
@@ -218,7 +217,8 @@ int __cdecl CAimProto::FileDeny(MCONTACT, HANDLE hTransfer, const TCHAR* /*szRea int __cdecl CAimProto::FileResume(HANDLE hTransfer, int* action, const TCHAR** szFilename)
{
file_transfer *ft = (file_transfer*)hTransfer;
- if (!ft_list.find_by_ft(ft)) return 0;
+ if (!m_ft_list.find_by_ft(ft))
+ return 0;
switch (*action) {
case FILERESUME_RESUME:
@@ -244,7 +244,7 @@ int __cdecl CAimProto::FileResume(HANDLE hTransfer, int* action, const TCHAR** s break;
default:
- aim_file_ad(hServerConn, seqno, ft->sn, ft->icbm_cookie, true, ft->max_ver);
+ aim_file_ad(m_hServerConn, m_seqno, ft->sn, ft->icbm_cookie, true, ft->max_ver);
break;
}
SetEvent(ft->hResumeEvent);
@@ -262,18 +262,18 @@ DWORD_PTR __cdecl CAimProto::GetCaps(int type, MCONTACT) return PF1_IM | PF1_MODEMSG | PF1_BASICSEARCH | PF1_SEARCHBYEMAIL | PF1_FILE;
case PFLAGNUM_2:
-#ifdef ALLOW_BUSY
+ #ifdef ALLOW_BUSY
return PF2_ONLINE | PF2_INVISIBLE | PF2_SHORTAWAY | PF2_ONTHEPHONE | PF2_LIGHTDND;
-#else
+ #else
return PF2_ONLINE | PF2_INVISIBLE | PF2_SHORTAWAY | PF2_ONTHEPHONE;
-#endif
+ #endif
case PFLAGNUM_3:
-#ifdef ALLOW_BUSY
+ #ifdef ALLOW_BUSY
return PF2_ONLINE | PF2_SHORTAWAY | PF2_INVISIBLE | PF2_LIGHTDND;
-#else
+ #else
return PF2_ONLINE | PF2_SHORTAWAY | PF2_INVISIBLE;
-#endif
+ #endif
case PFLAGNUM_4:
return PF4_SUPPORTTYPING | PF4_FORCEAUTH | PF4_NOCUSTOMAUTH | PF4_FORCEADDED |
@@ -289,7 +289,7 @@ DWORD_PTR __cdecl CAimProto::GetCaps(int type, MCONTACT) return (DWORD_PTR) "Screen Name";
case PFLAG_UNIQUEIDSETTING:
- return (DWORD_PTR) AIM_KEY_SN;
+ return (DWORD_PTR)AIM_KEY_SN;
}
return 0;
}
@@ -297,31 +297,27 @@ DWORD_PTR __cdecl CAimProto::GetCaps(int type, MCONTACT) ////////////////////////////////////////////////////////////////////////////////////////
// SearchBasic - searches the contact by JID
-void __cdecl CAimProto::basic_search_ack_success(void* p)
+void __cdecl CAimProto::basic_search_ack_success(void *p)
{
char *sn = normalize_name((char*)p);
- if (sn) // normalize it
- {
+ if (sn) { // normalize it
if (mir_strlen(sn) > 32)
- {
- ProtoBroadcastAck(NULL, ACKTYPE_SEARCH, ACKRESULT_SUCCESS, (HANDLE) 1, 0);
- }
- else
- {
- PROTOSEARCHRESULT psr = {0};
+ ProtoBroadcastAck(NULL, ACKTYPE_SEARCH, ACKRESULT_SUCCESS, (HANDLE)1, 0);
+ else {
+ PROTOSEARCHRESULT psr = { 0 };
psr.cbSize = sizeof(psr);
psr.id.t = (TCHAR*)sn;
- ProtoBroadcastAck(NULL, ACKTYPE_SEARCH, ACKRESULT_DATA, (HANDLE) 1, (LPARAM) & psr);
- ProtoBroadcastAck(NULL, ACKTYPE_SEARCH, ACKRESULT_SUCCESS, (HANDLE) 1, 0);
+ ProtoBroadcastAck(NULL, ACKTYPE_SEARCH, ACKRESULT_DATA, (HANDLE)1, (LPARAM)& psr);
+ ProtoBroadcastAck(NULL, ACKTYPE_SEARCH, ACKRESULT_SUCCESS, (HANDLE)1, 0);
}
}
mir_free(sn);
mir_free(p);
}
-HANDLE __cdecl CAimProto::SearchBasic(const TCHAR* szId)
+HANDLE __cdecl CAimProto::SearchBasic(const TCHAR *szId)
{
- if (state != 1)
+ if (m_state != 1)
return 0;
//duplicating the parameter so that it isn't deleted before it's needed- e.g. this function ends before it's used
@@ -332,14 +328,14 @@ HANDLE __cdecl CAimProto::SearchBasic(const TCHAR* szId) ////////////////////////////////////////////////////////////////////////////////////////
// SearchByEmail - searches the contact by its e-mail
-HANDLE __cdecl CAimProto::SearchByEmail(const TCHAR* email)
+HANDLE __cdecl CAimProto::SearchByEmail(const TCHAR *email)
{
// Maximum email size should really be 320, but the char string is limited to 255.
- if (state != 1 || email == NULL || mir_tstrlen(email) >= 254)
+ if (m_state != 1 || email == NULL || mir_tstrlen(email) >= 254)
return NULL;
- char* szEmail = mir_t2a(email);
- aim_search_by_email(hServerConn, seqno, szEmail);
+ char *szEmail = mir_t2a(email);
+ aim_search_by_email(m_hServerConn, m_seqno, szEmail);
mir_free(szEmail);
return (HANDLE)1;
}
@@ -347,12 +343,11 @@ HANDLE __cdecl CAimProto::SearchByEmail(const TCHAR* email) ////////////////////////////////////////////////////////////////////////////////////////
// RecvMsg
-int __cdecl CAimProto::RecvMsg(MCONTACT hContact, PROTORECVEVENT* pre)
+int __cdecl CAimProto::RecvMsg(MCONTACT hContact, PROTORECVEVENT *pre)
{
char *omsg = pre->szMessage;
char *bbuf = NULL;
- if (getByte(AIM_KEY_FI, 1))
- {
+ if (getByte(AIM_KEY_FI, 1)) {
debugLogA("Converting from html to bbcodes then stripping leftover html.");
pre->szMessage = bbuf = html_to_bbcodes(pre->szMessage);
}
@@ -360,9 +355,9 @@ int __cdecl CAimProto::RecvMsg(MCONTACT hContact, PROTORECVEVENT* pre) html_decode(pre->szMessage);
INT_PTR res = Proto_RecvMessage(hContact, pre);
- mir_free(bbuf);
+ mir_free(bbuf);
pre->szMessage = omsg;
- return ( int )res;
+ return (int)res;
}
////////////////////////////////////////////////////////////////////////////////////////
@@ -370,36 +365,30 @@ int __cdecl CAimProto::RecvMsg(MCONTACT hContact, PROTORECVEVENT* pre) HANDLE __cdecl CAimProto::SendFile(MCONTACT hContact, const TCHAR* szDescription, TCHAR** ppszFiles)
{
- if (state != 1) return 0;
+ if (m_state != 1)
+ return 0;
- if (hContact && szDescription && ppszFiles)
- {
+ if (hContact && szDescription && ppszFiles) {
DBVARIANT dbv;
- if (!getString(hContact, AIM_KEY_SN, &dbv))
- {
+ if (!getString(hContact, AIM_KEY_SN, &dbv)) {
file_transfer *ft = new file_transfer(hContact, dbv.pszVal, NULL);
bool isDir = false;
int count = 0;
- while (ppszFiles[count] != NULL)
- {
+ while (ppszFiles[count] != NULL) {
struct _stati64 statbuf;
- if (_tstati64(ppszFiles[count++], &statbuf) == 0)
- {
- if (statbuf.st_mode & _S_IFDIR)
- {
+ if (_tstati64(ppszFiles[count++], &statbuf) == 0) {
+ if (statbuf.st_mode & _S_IFDIR) {
if (ft->pfts.totalFiles == 0) isDir = true;
}
- else
- {
+ else {
ft->pfts.totalBytes += statbuf.st_size;
++ft->pfts.totalFiles;
}
}
}
- if (ft->pfts.totalFiles == 0)
- {
+ if (ft->pfts.totalFiles == 0) {
delete ft;
return NULL;
}
@@ -413,21 +402,18 @@ HANDLE __cdecl CAimProto::SendFile(MCONTACT hContact, const TCHAR* szDescription ft->me_force_proxy = getByte(AIM_KEY_FP, 0) != 0;
ft->requester = true;
- ft_list.insert(ft);
+ m_ft_list.insert(ft);
- if (ft->me_force_proxy)
- {
+ if (ft->me_force_proxy) {
debugLogA("We are forcing a proxy file transfer.");
ForkThread(&CAimProto::accept_file_thread, ft);
}
- else
- {
+ else {
ft->listen(this);
- aim_send_file(hServerConn, seqno, detected_ip, ft->local_port, false, ft);
+ aim_send_file(m_hServerConn, m_seqno, m_detected_ip, ft->local_port, false, ft);
}
db_free(&dbv);
-
return ft;
}
}
@@ -453,10 +439,10 @@ void __cdecl CAimProto::msg_ack_success(void* param) int __cdecl CAimProto::SendMsg(MCONTACT hContact, int, const char* pszSrc)
{
- if (pszSrc == NULL) return 0;
+ if (pszSrc == NULL)
+ return 0;
- if (state != 1)
- {
+ if (m_state != 1) {
msg_ack_param *msg_ack = (msg_ack_param*)mir_calloc(sizeof(msg_ack_param));
msg_ack->hContact = hContact;
msg_ack->msg = "Message cannot be sent, when protocol offline";
@@ -464,8 +450,7 @@ int __cdecl CAimProto::SendMsg(MCONTACT hContact, int, const char* pszSrc) }
char *sn = getStringA(hContact, AIM_KEY_SN);
- if (sn == NULL)
- {
+ if (sn == NULL) {
msg_ack_param *msg_ack = (msg_ack_param*)mir_calloc(sizeof(msg_ack_param));
msg_ack->hContact = hContact;
msg_ack->msg = "Screen Name for the contact not available";
@@ -473,21 +458,19 @@ int __cdecl CAimProto::SendMsg(MCONTACT hContact, int, const char* pszSrc) }
char *smsg = html_encode(pszSrc), *msg;
- if (getByte(AIM_KEY_FO, 1))
- {
+ if (getByte(AIM_KEY_FO, 1)) {
msg = bbcodes_to_html(smsg);
mir_free(smsg);
}
else msg = smsg;
bool blast = getBool(hContact, AIM_KEY_BLS, false);
- int res = aim_send_message(hServerConn, seqno, sn, msg, false, blast);
+ int res = aim_send_message(m_hServerConn, m_seqno, sn, msg, false, blast);
mir_free(msg);
mir_free(sn);
- if (!res || blast || 0 == getByte(AIM_KEY_DC, 1))
- {
+ if (!res || blast || 0 == getByte(AIM_KEY_DC, 1)) {
msg_ack_param *msg_ack = (msg_ack_param*)mir_alloc(sizeof(msg_ack_param));
msg_ack->hContact = hContact;
msg_ack->msg = NULL;
@@ -504,8 +487,7 @@ int __cdecl CAimProto::SendMsg(MCONTACT hContact, int, const char* pszSrc) int __cdecl CAimProto::SetStatus(int iNewStatus)
{
- switch (iNewStatus)
- {
+ switch (iNewStatus) {
case ID_STATUS_FREECHAT:
iNewStatus = ID_STATUS_ONLINE;
break;
@@ -513,10 +495,10 @@ int __cdecl CAimProto::SetStatus(int iNewStatus) case ID_STATUS_DND:
case ID_STATUS_OCCUPIED:
case ID_STATUS_ONTHEPHONE:
-#ifdef ALLOW_BUSY
+ #ifdef ALLOW_BUSY
iNewStatus = ID_STATUS_OCCUPIED;
break;
-#endif
+ #endif
case ID_STATUS_OUTTOLUNCH:
case ID_STATUS_NA:
@@ -527,39 +509,35 @@ int __cdecl CAimProto::SetStatus(int iNewStatus) if (iNewStatus == m_iStatus)
return 0;
- if (iNewStatus == ID_STATUS_OFFLINE)
- {
+ if (iNewStatus == ID_STATUS_OFFLINE) {
broadcast_status(ID_STATUS_OFFLINE);
return 0;
}
m_iDesiredStatus = iNewStatus;
- if (m_iStatus == ID_STATUS_OFFLINE)
- {
+ if (m_iStatus == ID_STATUS_OFFLINE) {
broadcast_status(ID_STATUS_CONNECTING);
ForkThread(&CAimProto::start_connection, (void*)iNewStatus);
}
- else if (m_iStatus > ID_STATUS_OFFLINE)
- {
- switch(iNewStatus)
- {
+ else if (m_iStatus > ID_STATUS_OFFLINE) {
+ switch (iNewStatus) {
case ID_STATUS_ONLINE:
- aim_set_status(hServerConn, seqno, AIM_STATUS_ONLINE);
+ aim_set_status(m_hServerConn, m_seqno, AIM_STATUS_ONLINE);
broadcast_status(ID_STATUS_ONLINE);
break;
case ID_STATUS_INVISIBLE:
- aim_set_status(hServerConn, seqno, AIM_STATUS_INVISIBLE);
+ aim_set_status(m_hServerConn, m_seqno, AIM_STATUS_INVISIBLE);
broadcast_status(ID_STATUS_INVISIBLE);
break;
case ID_STATUS_OCCUPIED:
- aim_set_status(hServerConn, seqno, AIM_STATUS_BUSY | AIM_STATUS_AWAY);
+ aim_set_status(m_hServerConn, m_seqno, AIM_STATUS_BUSY | AIM_STATUS_AWAY);
broadcast_status(ID_STATUS_OCCUPIED);
break;
case ID_STATUS_AWAY:
- aim_set_status(hServerConn, seqno, AIM_STATUS_AWAY);
+ aim_set_status(m_hServerConn, m_seqno, AIM_STATUS_AWAY);
broadcast_status(ID_STATUS_AWAY);
break;
}
@@ -586,7 +564,7 @@ void __cdecl CAimProto::get_online_msg_thread(void* arg) HANDLE __cdecl CAimProto::GetAwayMsg(MCONTACT hContact)
{
- if (state != 1)
+ if (m_state != 1)
return 0;
int status = getWord(hContact, AIM_KEY_ST, ID_STATUS_OFFLINE);
@@ -617,14 +595,13 @@ int __cdecl CAimProto::RecvAwayMsg(MCONTACT hContact, int, PROTORECVEVENT* pre) int __cdecl CAimProto::SetAwayMsg(int status, const TCHAR* msg)
{
- char** msgptr = get_status_msg_loc(status);
+ char **msgptr = get_status_msg_loc(status);
if (msgptr == NULL) return 1;
- char* nmsg = mir_utf8encodeT(msg);
+ char *nmsg = mir_utf8encodeT(msg);
mir_free(*msgptr); *msgptr = nmsg;
- switch (status)
- {
+ switch (status) {
case ID_STATUS_FREECHAT:
status = ID_STATUS_ONLINE;
break;
@@ -632,10 +609,10 @@ int __cdecl CAimProto::SetAwayMsg(int status, const TCHAR* msg) case ID_STATUS_DND:
case ID_STATUS_OCCUPIED:
case ID_STATUS_ONTHEPHONE:
-#ifdef ALLOW_BUSY
+ #ifdef ALLOW_BUSY
status = ID_STATUS_OCCUPIED;
break;
-#endif
+ #endif
case ID_STATUS_OUTTOLUNCH:
case ID_STATUS_NA:
@@ -643,15 +620,13 @@ int __cdecl CAimProto::SetAwayMsg(int status, const TCHAR* msg) break;
}
- if (state == 1 && status == m_iStatus)
- {
- if (!mir_strcmp(last_status_msg, nmsg))
+ if (m_state == 1 && status == m_iStatus) {
+ if (!mir_strcmp(m_last_status_msg, nmsg))
return 0;
- mir_free(last_status_msg);
- last_status_msg = mir_strdup(nmsg);
- aim_set_statusmsg(hServerConn, seqno, nmsg);
- aim_set_away(hServerConn, seqno, nmsg,
+ replaceStr(m_last_status_msg, nmsg);
+ aim_set_statusmsg(m_hServerConn, m_seqno, nmsg);
+ aim_set_away(m_hServerConn, m_seqno, nmsg,
status == ID_STATUS_AWAY || status == ID_STATUS_OCCUPIED);
}
return 0;
@@ -662,18 +637,18 @@ int __cdecl CAimProto::SetAwayMsg(int status, const TCHAR* msg) int __cdecl CAimProto::UserIsTyping(MCONTACT hContact, int type)
{
- if (state != 1) return 0;
+ if (m_state != 1)
+ return 0;
if (getWord(hContact, AIM_KEY_ST, ID_STATUS_OFFLINE) == ID_STATUS_ONTHEPHONE)
return 0;
DBVARIANT dbv;
- if (!getBool(hContact, AIM_KEY_BLS, false) && !getString(hContact, AIM_KEY_SN, &dbv))
- {
+ if (!getBool(hContact, AIM_KEY_BLS, false) && !getString(hContact, AIM_KEY_SN, &dbv)) {
if (type == PROTOTYPE_SELFTYPING_ON)
- aim_typing_notification(hServerConn, seqno, dbv.pszVal, 0x0002);
+ aim_typing_notification(m_hServerConn, m_seqno, dbv.pszVal, 0x0002);
else if (type == PROTOTYPE_SELFTYPING_OFF)
- aim_typing_notification(hServerConn, seqno, dbv.pszVal, 0x0000);
+ aim_typing_notification(m_hServerConn, m_seqno, dbv.pszVal, 0x0000);
db_free(&dbv);
}
return 0;
@@ -696,11 +671,9 @@ int __cdecl CAimProto::OnEvent(PROTOEVENTTYPE eventType, WPARAM wParam, LPARAM l return OnOptionsInit(wParam, lParam);
case EV_PROTO_ONERASE:
- {
- char szDbsettings[64];
- mir_snprintf(szDbsettings, _countof(szDbsettings), "%sP2P", m_szModuleName);
- CallService(MS_DB_MODULE_DELETE, 0, (LPARAM)szDbsettings);
- }
+ char szDbsettings[64];
+ mir_snprintf(szDbsettings, _countof(szDbsettings), "%sP2P", m_szModuleName);
+ CallService(MS_DB_MODULE_DELETE, 0, (LPARAM)szDbsettings);
break;
case EV_PROTO_ONCONTACTDELETED:
diff --git a/protocols/AimOscar/src/proto.h b/protocols/AimOscar/src/proto.h index ea4688b1ef..10e49759a5 100644 --- a/protocols/AimOscar/src/proto.h +++ b/protocols/AimOscar/src/proto.h @@ -108,89 +108,88 @@ struct CAimProto : public PROTO<CAimProto> char* ADMIN_COOKIE;
int ADMIN_COOKIE_LENGTH;
- char *username;
- unsigned short seqno;//main connection sequence number
- int state;//m_iStatus of the connection; e.g. whether connected or not
- unsigned short port;
+ char *m_username;
+ unsigned short m_seqno;//main connection sequence number
+ int m_state;//m_iStatus of the connection; e.g. whether connected or not
+ unsigned short m_port;
//Some bools to keep track of different things
- bool request_HTML_profile;
- bool request_away_message;
- bool extra_icons_loaded;
- bool idle;
- bool instantidle;
- bool list_received;
+ bool m_request_HTML_profile;
+ bool m_request_away_message;
+ bool m_extra_icons_loaded;
+ bool m_idle;
+ bool m_instantidle;
+ bool m_list_received;
//Some main connection stuff
- HANDLE hServerConn;//handle to the main connection
+ HANDLE m_hServerConn; // handle to the main connection
- unsigned long internal_ip; // our ip
- unsigned long detected_ip; // our ip
- unsigned short local_port; // our port
+ unsigned long m_internal_ip; // our ip
+ unsigned long m_detected_ip; // our ip
+ unsigned short m_local_port; // our port
//Peer connection stuff
- HANDLE hNetlibPeer;//handle to the peer netlib
- HANDLE hDirectBoundPort;//direct connection listening port
+ HANDLE m_hNetlibPeer;//handle to the peer netlib
+ HANDLE m_hDirectBoundPort;//direct connection listening port
//Handles for the context menu items
- HGENMENU hHTMLAwayContextMenuItem;
- HGENMENU hAddToServerListContextMenuItem;
- HGENMENU hBlockContextMenuItem;
- HGENMENU hMainMenu[3];
+ HGENMENU m_hHTMLAwayContextMenuItem;
+ HGENMENU m_hAddToServerListContextMenuItem;
+ HGENMENU m_hBlockContextMenuItem;
+ HGENMENU m_hMainMenu[3];
//Some mail connection stuff
- HANDLE hMailConn;
- unsigned short mail_seqno;
+ HANDLE m_hMailConn;
+ unsigned short m_mail_seqno;
//avatar connection stuff
- unsigned short avatar_seqno;
- unsigned short avatar_id_sm;
- unsigned short avatar_id_lg;
- HANDLE hAvatarConn;
- HANDLE hAvatarEvent;
+ unsigned short m_avatar_seqno;
+ unsigned short m_avatar_id_sm;
+ unsigned short m_avatar_id_lg;
+ HANDLE m_hAvatarConn;
+ HANDLE m_hAvatarEvent;
- ft_list_type ft_list;
+ ft_list_type m_ft_list;
//chatnav connection stuff
- unsigned short chatnav_seqno;
- HANDLE hChatNavConn;
- HANDLE hChatNavEvent;
+ unsigned short m_chatnav_seqno;
+ HANDLE m_hChatNavConn;
+ HANDLE m_hChatNavEvent;
char MAX_ROOMS;
- OBJLIST<chat_list_item> chat_rooms;
+ OBJLIST<chat_list_item> m_chat_rooms;
//admin connection stuff
- unsigned short admin_seqno;
- HANDLE hAdminConn;
- HANDLE hAdminEvent;
+ unsigned short m_admin_seqno;
+ HANDLE m_hAdminConn;
+ HANDLE m_hAdminEvent;
// privacy settings
- unsigned long pd_flags;
- unsigned short pd_info_id;
- char pd_mode;
+ unsigned long m_pd_flags;
+ unsigned short m_pd_info_id;
+ char m_pd_mode;
// prefernces
- unsigned short pref1_id;
- unsigned long pref1_flags;
- unsigned long pref1_set_flags;
- unsigned long pref2_len;
- unsigned long pref2_set_len;
- char *pref2_flags;
- char *pref2_set_flags;
-
- BdList allow_list;
- BdList block_list;
-
- BdList group_list;
+ unsigned short m_pref1_id;
+ unsigned long m_pref1_flags;
+ unsigned long m_pref1_set_flags;
+ unsigned long m_pref2_len;
+ unsigned long m_pref2_set_len;
+ char *m_pref2_flags;
+ char *m_pref2_set_flags;
+
+ BdList m_allow_list;
+ BdList m_block_list;
+ BdList m_group_list;
//away message retrieval stuff
- char *modeMsgs[9];
- char *last_status_msg;
+ char *m_modeMsgs[9];
+ char *m_last_status_msg;
//////////////////////////////////////////////////////////////////////////////////////
// avatars.cpp
- char *hash_sm, *hash_lg;
+ char *m_hash_sm, *m_hash_lg;
void __cdecl avatar_request_thread( void* param );
void __cdecl avatar_upload_thread( void* param );
diff --git a/protocols/AimOscar/src/proxy.cpp b/protocols/AimOscar/src/proxy.cpp index 3ed34d54af..35076518ae 100644 --- a/protocols/AimOscar/src/proxy.cpp +++ b/protocols/AimOscar/src/proxy.cpp @@ -24,12 +24,12 @@ void __cdecl CAimProto::aim_proxy_helper(void* param) if (ft->requester)
{
- if (proxy_initialize_send(ft->hConn, username, ft->icbm_cookie))
+ if (proxy_initialize_send(ft->hConn, m_username, ft->icbm_cookie))
return;//error
}
else
{
- if (proxy_initialize_recv(ft->hConn, username, ft->icbm_cookie, ft->port))
+ if (proxy_initialize_recv(ft->hConn, m_username, ft->icbm_cookie, ft->port))
return;//error
}
@@ -89,14 +89,14 @@ void __cdecl CAimProto::aim_proxy_helper(void* param) unsigned short port = _htons(*(unsigned short*)&packetRecv.buffer[12]);
unsigned long ip = _htonl(*(unsigned long*)&packetRecv.buffer[14]);
- aim_send_file(hServerConn, seqno, ip, port, true, ft);
+ aim_send_file(m_hServerConn, m_seqno, ip, port, true, ft);
debugLogA("Stage %d Proxy ft and we are not the sender.", ft->req_num);
}
else if (type == 0x0005)
{
if (!ft->requester)
{
- aim_file_ad(hServerConn, seqno, ft->sn, ft->icbm_cookie, false, ft->max_ver);
+ aim_file_ad(m_hServerConn, m_seqno, ft->sn, ft->icbm_cookie, false, ft->max_ver);
ft->accepted = true;
}
@@ -131,7 +131,7 @@ void __cdecl CAimProto::aim_proxy_helper(void* param) Netlib_CloseHandle(hServerPacketRecver);
Netlib_CloseHandle(ft->hConn);
- ft_list.remove_by_ft(ft);
+ m_ft_list.remove_by_ft(ft);
}
diff --git a/protocols/AimOscar/src/server.cpp b/protocols/AimOscar/src/server.cpp index 15d9e4babe..a69a768d25 100644 --- a/protocols/AimOscar/src/server.cpp +++ b/protocols/AimOscar/src/server.cpp @@ -16,13 +16,14 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+
#include "stdafx.h"
-void CAimProto::snac_md5_authkey(SNAC &snac,HANDLE hServerConn,unsigned short &seqno, const char* username, const char* password)//family 0x0017
+void CAimProto::snac_md5_authkey(SNAC &snac, HANDLE hServerConn, unsigned short &seqno, const char* username, const char* password)//family 0x0017
{
if (snac.subcmp(0x0007))//md5 authkey string
{
- unsigned short length=snac.ushort();
+ unsigned short length = snac.ushort();
char* authkey = snac.part(2, length);
aim_auth_request(hServerConn, seqno, authkey, AIM_LANGUAGE, AIM_COUNTRY, username, password);
mir_free(authkey);
@@ -32,31 +33,27 @@ void CAimProto::snac_md5_authkey(SNAC &snac,HANDLE hServerConn,unsigned short &s int CAimProto::snac_authorization_reply(SNAC &snac)//family 0x0017
{
int res = 0;
-
- if (snac.subcmp(0x0003))
- {
+
+ if (snac.subcmp(0x0003)) {
char* server = NULL;
int address = 0;
unsigned short port;
unsigned char use_ssl = 0;
- while (address < snac.len())
- {
+ while (address < snac.len()) {
TLV tlv(snac.val(address));
if (tlv.cmp(0x0005))
server = tlv.dup();
- else if (tlv.cmp(0x0006))
- {
- Netlib_CloseHandle(hServerConn);
+ else if (tlv.cmp(0x0006)) {
+ Netlib_CloseHandle(m_hServerConn);
if (server == NULL) return 3;
char* delim = strchr(server, ':');
port = delim ? (unsigned short)atoi(delim + 1) : get_default_port();
if (delim) *delim = 0;
- hServerConn = aim_connect(server, port, use_ssl != 0, "bos.oscar.aol.com");
- if (hServerConn)
- {
+ m_hServerConn = aim_connect(server, port, use_ssl != 0, "bos.oscar.aol.com");
+ if (m_hServerConn) {
mir_free(COOKIE);
COOKIE_LENGTH = tlv.len();
COOKIE = tlv.dup();
@@ -67,138 +64,125 @@ int CAimProto::snac_authorization_reply(SNAC &snac)//family 0x0017 res = 3;
break;
}
- else if (tlv.cmp(0x0008))
- {
+ else if (tlv.cmp(0x0008)) {
login_error(tlv.ushort());
res = 2;
break;
}
- else if (tlv.cmp(0x0011))
- {
+ else if (tlv.cmp(0x0011)) {
char* email = tlv.dup();
setString(AIM_KEY_EM, email);
mir_free(email);
}
- else if (tlv.cmp(0x008e))
- {
+ else if (tlv.cmp(0x008e)) {
use_ssl = tlv.ubyte();
}
address += tlv.len() + 4;
}
mir_free(server);
- }
+ }
return res;
}
-void CAimProto::snac_supported_families(SNAC &snac,HANDLE hServerConn,unsigned short &seqno)//family 0x0001
+void CAimProto::snac_supported_families(SNAC &snac, HANDLE hServerConn, unsigned short &seqno)//family 0x0001
{
if (snac.subcmp(0x0003))//server supported service list
{
- aim_send_service_request(hServerConn,seqno);
+ aim_send_service_request(hServerConn, seqno);
}
}
-void CAimProto::snac_supported_family_versions(SNAC &snac,HANDLE hServerConn,unsigned short &seqno)//family 0x0001
+void CAimProto::snac_supported_family_versions(SNAC &snac, HANDLE hServerConn, unsigned short &seqno)//family 0x0001
{
if (snac.subcmp(0x0018))//service list okayed
{
- aim_request_rates(hServerConn,seqno);//request some rate crap
+ aim_request_rates(hServerConn, seqno);//request some rate crap
}
}
-void CAimProto::snac_rate_limitations(SNAC &snac,HANDLE hServerConn,unsigned short &seqno)// family 0x0001
+void CAimProto::snac_rate_limitations(SNAC &snac, HANDLE hServerConn, unsigned short &seqno)// family 0x0001
{
- if (snac.subcmp(0x0007))
- {
- aim_accept_rates(hServerConn,seqno);
- aim_request_icbm(hServerConn,seqno);
+ if (snac.subcmp(0x0007)) {
+ aim_accept_rates(hServerConn, seqno);
+ aim_request_icbm(hServerConn, seqno);
}
}
-void CAimProto::snac_mail_rate_limitations(SNAC &snac,HANDLE hServerConn,unsigned short &seqno)// family 0x0001
+void CAimProto::snac_mail_rate_limitations(SNAC &snac, HANDLE hServerConn, unsigned short &seqno)// family 0x0001
{
- if (snac.subcmp(0x0007))
- {
- aim_accept_rates(hServerConn,seqno);
- aim_request_mail(hServerConn,seqno);
- aim_activate_mail(hServerConn,seqno);
- aim_mail_ready(hServerConn,seqno);
+ if (snac.subcmp(0x0007)) {
+ aim_accept_rates(hServerConn, seqno);
+ aim_request_mail(hServerConn, seqno);
+ aim_activate_mail(hServerConn, seqno);
+ aim_mail_ready(hServerConn, seqno);
}
}
-void CAimProto::snac_avatar_rate_limitations(SNAC &snac,HANDLE hServerConn,unsigned short &seqno)// family 0x0001
+void CAimProto::snac_avatar_rate_limitations(SNAC &snac, HANDLE hServerConn, unsigned short &seqno)// family 0x0001
{
- if (snac.subcmp(0x0007))
- {
- aim_accept_rates(hServerConn,seqno);
- aim_avatar_ready(hServerConn,seqno);
- SetEvent(hAvatarEvent);
+ if (snac.subcmp(0x0007)) {
+ aim_accept_rates(hServerConn, seqno);
+ aim_avatar_ready(hServerConn, seqno);
+ SetEvent(m_hAvatarEvent);
}
}
-void CAimProto::snac_chatnav_rate_limitations(SNAC &snac,HANDLE hServerConn,unsigned short &seqno)// family 0x0001
+void CAimProto::snac_chatnav_rate_limitations(SNAC &snac, HANDLE hServerConn, unsigned short &seqno)// family 0x0001
{
- if (snac.subcmp(0x0007))
- {
- aim_accept_rates(hServerConn,seqno);
- aim_chatnav_request_limits(hChatNavConn,chatnav_seqno); // Get the max number of rooms we're allowed in.
+ if (snac.subcmp(0x0007)) {
+ aim_accept_rates(hServerConn, seqno);
+ aim_chatnav_request_limits(m_hChatNavConn, m_chatnav_seqno); // Get the max number of rooms we're allowed in.
}
}
-void CAimProto::snac_chat_rate_limitations(SNAC &snac,HANDLE hServerConn,unsigned short &seqno)// family 0x0001
+void CAimProto::snac_chat_rate_limitations(SNAC &snac, HANDLE hServerConn, unsigned short &seqno)// family 0x0001
{
- if (snac.subcmp(0x0007))
- {
- aim_accept_rates(hServerConn,seqno);
- aim_chat_ready(hServerConn,seqno);
+ if (snac.subcmp(0x0007)) {
+ aim_accept_rates(hServerConn, seqno);
+ aim_chat_ready(hServerConn, seqno);
}
}
-void CAimProto::snac_icbm_limitations(SNAC &snac,HANDLE hServerConn,unsigned short &seqno)//family 0x0004
+void CAimProto::snac_icbm_limitations(SNAC &snac, HANDLE hServerConn, unsigned short &seqno)//family 0x0004
{
- if (snac.subcmp(0x0005))
- {
- switch (m_iDesiredStatus)
- {
+ if (snac.subcmp(0x0005)) {
+ switch (m_iDesiredStatus) {
case ID_STATUS_ONLINE:
broadcast_status(ID_STATUS_ONLINE);
- aim_set_status(hServerConn,seqno,AIM_STATUS_ONLINE);
+ aim_set_status(hServerConn, seqno, AIM_STATUS_ONLINE);
break;
case ID_STATUS_INVISIBLE:
broadcast_status(ID_STATUS_INVISIBLE);
- aim_set_status(hServerConn,seqno,AIM_STATUS_INVISIBLE);
+ aim_set_status(hServerConn, seqno, AIM_STATUS_INVISIBLE);
break;
case ID_STATUS_OCCUPIED:
broadcast_status(ID_STATUS_OCCUPIED);
- aim_set_status(hServerConn,seqno,AIM_STATUS_BUSY|AIM_STATUS_AWAY);
+ aim_set_status(hServerConn, seqno, AIM_STATUS_BUSY | AIM_STATUS_AWAY);
break;
case ID_STATUS_AWAY:
broadcast_status(ID_STATUS_AWAY);
- aim_set_status(hServerConn,seqno,AIM_STATUS_AWAY);
+ aim_set_status(hServerConn, seqno, AIM_STATUS_AWAY);
break;
}
char** msgptr = get_status_msg_loc(m_iDesiredStatus);
- mir_free(last_status_msg);
- last_status_msg = msgptr ? mir_strdup(*msgptr) : NULL;
- aim_set_statusmsg(hServerConn, seqno, last_status_msg);
+ replaceStr(m_last_status_msg, msgptr ? *msgptr: NULL);
+ aim_set_statusmsg(hServerConn, seqno, m_last_status_msg);
if (m_iDesiredStatus == ID_STATUS_AWAY)
- aim_set_away(hServerConn, seqno, last_status_msg, true);
+ aim_set_away(hServerConn, seqno, m_last_status_msg, true);
- if (getByte(AIM_KEY_II,0))
- {
+ if (getByte(AIM_KEY_II, 0)) {
unsigned long time = getDword(AIM_KEY_IIT, 0);
- aim_set_idle(hServerConn,seqno,time*60);
- instantidle=1;
+ aim_set_idle(hServerConn, seqno, time * 60);
+ m_instantidle = 1;
}
- aim_request_list(hServerConn,seqno);
+ aim_request_list(hServerConn, seqno);
}
}
void CAimProto::snac_self_info(SNAC &snac)//family 0x0001
{
- if (snac.subcmp(0x000f))
- {
+ if (snac.subcmp(0x000f)) {
int offset = snac.flags() & 0x8000 ? snac.ushort(0) + 2 : 0;
unsigned char sn_len = snac.ubyte(offset++);
@@ -208,14 +192,12 @@ void CAimProto::snac_self_info(SNAC &snac)//family 0x0001 int tlv_count = snac.ushort(offset);
offset += 2;
- for (int i = 0; i < tlv_count; i++)
- {
+ for (int i = 0; i < tlv_count; i++) {
TLV tlv(snac.val(offset));
offset += TLV_HEADER_SIZE + tlv.len();
- if (tlv.cmp(0x000a))
- {
- detected_ip = tlv.ulong();
+ if (tlv.cmp(0x000a)) {
+ m_detected_ip = tlv.ulong();
}
}
mir_free(sn);
@@ -224,8 +206,7 @@ void CAimProto::snac_self_info(SNAC &snac)//family 0x0001 void CAimProto::snac_user_online(SNAC &snac)//family 0x0003
{
- if (snac.subcmp(0x000b))
- {
+ if (snac.subcmp(0x000b)) {
char client[100] = "";
bool hiptop_user = false;
bool bot_user = false;
@@ -244,53 +225,48 @@ void CAimProto::snac_user_online(SNAC &snac)//family 0x0003 int tlv_count = snac.ushort(offset);
offset += 2;
- for (int i = 0; i < tlv_count; i++)
- {
+ for (int i = 0; i < tlv_count; i++) {
TLV tlv(snac.val(offset));
offset += TLV_HEADER_SIZE;
- if (tlv.cmp(0x0001))//user m_iStatus
- {
+ if (tlv.cmp(0x0001)) { // user m_iStatus
unsigned short status = tlv.ushort();
int unconfirmed = status & 0x0001;
- int admin_aol = status & 0x0002;
- int aol = status & 0x0004;
+ int admin_aol = status & 0x0002;
+ int aol = status & 0x0004;
//int nonfree = status & 0x0008;
//int aim = status & 0x0010;
- int away = status & 0x0020;
- int icq = status & 0x0040;
- int wireless = status & 0x0080;
- int bot = status & 0x0400;
+ int away = status & 0x0020;
+ int icq = status & 0x0040;
+ int wireless = status & 0x0080;
+ int bot = status & 0x0400;
setString(hContact, AIM_KEY_NK, sn);
if (icq)
setString(hContact, "Transport", "ICQ");
else
- delSetting(hContact, "Transport" );
+ delSetting(hContact, "Transport");
if (admin_aol)
setByte(hContact, AIM_KEY_AC, ACCOUNT_TYPE_ADMIN);
else if (aol)
- setByte(hContact, AIM_KEY_AC, ACCOUNT_TYPE_AOL);
+ setByte(hContact, AIM_KEY_AC, ACCOUNT_TYPE_AOL);
else if (icq)
- setByte(hContact, AIM_KEY_AC, ACCOUNT_TYPE_ICQ);
+ setByte(hContact, AIM_KEY_AC, ACCOUNT_TYPE_ICQ);
else if (unconfirmed)
setByte(hContact, AIM_KEY_AC, ACCOUNT_TYPE_UNCONFIRMED);
else
setByte(hContact, AIM_KEY_AC, ACCOUNT_TYPE_CONFIRMED);
- if (bot)
- {
- mir_strcpy(client,CLIENT_BOT);
- bot_user=1;
+ if (bot) {
+ mir_strcpy(client, CLIENT_BOT);
+ bot_user = 1;
}
- if (wireless)
- {
- mir_strcpy(client,CLIENT_SMS);
- wireless_user=1;
+ if (wireless) {
+ mir_strcpy(client, CLIENT_SMS);
+ wireless_user = 1;
}
- else if (away)
- {
- away_user=1;
+ else if (away) {
+ away_user = 1;
}
setDword(hContact, AIM_KEY_IT, 0);//erase idle time
setDword(hContact, AIM_KEY_OT, 0);//erase online time
@@ -299,241 +275,215 @@ void CAimProto::snac_user_online(SNAC &snac)//family 0x0003 {
status_type = tlv.ulong() & 0x00000FFF;
}
- else if (tlv.cmp(0x000d))
- {
+ else if (tlv.cmp(0x000d)) {
caps_included = true;
- for(int i = 0; i<tlv.len(); i += 16)
- {
- char* cap = tlv.part(i,16);
- if (memcmp(cap, "MirandaM", 8) == 0)
- {
- char a =cap[8];
- char b =cap[9];
- char c =cap[10];
- char d =cap[11];
- char e =cap[12];
- char f =cap[13];
- char g =cap[14];
- char h =cap[15];
- mir_snprintf(client,_countof(client),CLIENT_OSCARJ,a&0x7f,b,c,d,alpha_cap_str(a),e&0x7f,f,g,h,alpha_cap_str(e));
+ for (int k = 0; k < tlv.len(); k += 16) {
+ char *cap = tlv.part(k, 16);
+ if (memcmp(cap, "MirandaM", 8) == 0) {
+ char a = cap[8];
+ char b = cap[9];
+ char c = cap[10];
+ char d = cap[11];
+ char e = cap[12];
+ char f = cap[13];
+ char g = cap[14];
+ char h = cap[15];
+ mir_snprintf(client, _countof(client), CLIENT_OSCARJ, a & 0x7f, b, c, d, alpha_cap_str(a), e & 0x7f, f, g, h, alpha_cap_str(e));
}
- else if (memcmp(cap, "MirandaA", 8) == 0)
- {
- char a =cap[8];
- char b =cap[9];
- char c =cap[10];
- char d =cap[11];
- char e =cap[12];
- char f =cap[13];
- char g =cap[14];
- char h =cap[15];
- mir_snprintf(client,_countof(client),CLIENT_AIMOSCAR,a,b,c,d,e,f,g,h);
+ else if (memcmp(cap, "MirandaA", 8) == 0) {
+ char a = cap[8];
+ char b = cap[9];
+ char c = cap[10];
+ char d = cap[11];
+ char e = cap[12];
+ char f = cap[13];
+ char g = cap[14];
+ char h = cap[15];
+ mir_snprintf(client, _countof(client), CLIENT_AIMOSCAR, a, b, c, d, e, f, g, h);
}
- if (memcmp(cap, "sinj", 4) == 0)
- {
- char a =cap[4];
- char b =cap[5];
- char c =cap[6];
- char d =cap[7];
- char e =cap[8];
- char f =cap[9];
- char g =cap[10];
- char h =cap[11];
- mir_snprintf(client,_countof(client),CLIENT_OSCARSN,a&0x7f,b,c,d,alpha_cap_str(a),e&0x7f,f,g,h,alpha_cap_str(e),secure_cap_str(&cap[12]));
+ if (memcmp(cap, "sinj", 4) == 0) {
+ char a = cap[4];
+ char b = cap[5];
+ char c = cap[6];
+ char d = cap[7];
+ char e = cap[8];
+ char f = cap[9];
+ char g = cap[10];
+ char h = cap[11];
+ mir_snprintf(client, _countof(client), CLIENT_OSCARSN, a & 0x7f, b, c, d, alpha_cap_str(a), e & 0x7f, f, g, h, alpha_cap_str(e), secure_cap_str(&cap[12]));
}
- if (memcmp(cap, "icqp", 4) == 0)
- {
- char a =cap[4];
- char b =cap[5];
- char c =cap[6];
- char d =cap[7];
- char e =cap[8];
- char f =cap[9];
- char g =cap[10];
- char h =cap[11];
- mir_snprintf(client,_countof(client),CLIENT_OSCARPL,a&0x7f,b,c,d,alpha_cap_str(a),e&0x7f,f,g,h,alpha_cap_str(e),secure_cap_str(&cap[12]));
+ if (memcmp(cap, "icqp", 4) == 0) {
+ char a = cap[4];
+ char b = cap[5];
+ char c = cap[6];
+ char d = cap[7];
+ char e = cap[8];
+ char f = cap[9];
+ char g = cap[10];
+ char h = cap[11];
+ mir_snprintf(client, _countof(client), CLIENT_OSCARPL, a & 0x7f, b, c, d, alpha_cap_str(a), e & 0x7f, f, g, h, alpha_cap_str(e), secure_cap_str(&cap[12]));
}
- else if (memcmp(cap, "Kopete ICQ", 10) == 0)
- {
- mir_strcpy(client,CLIENT_KOPETE);
+ else if (memcmp(cap, "Kopete ICQ", 10) == 0) {
+ mir_strcpy(client, CLIENT_KOPETE);
}
- else if (memcmp(&cap[7], "QIP", 3) == 0)
- {
- mir_strcpy(client,CLIENT_QIP);
+ else if (memcmp(&cap[7], "QIP", 3) == 0) {
+ mir_strcpy(client, CLIENT_QIP);
}
- else if (memcmp(cap, "mICQ", 4) == 0)
- {
- mir_strcpy(client,CLIENT_MICQ);
+ else if (memcmp(cap, "mICQ", 4) == 0) {
+ mir_strcpy(client, CLIENT_MICQ);
}
- else if (cap_cmp(cap, AIM_CAP_IM2) == 0)
- {
- mir_strcpy(client,CLIENT_IM2);
+ else if (cap_cmp(cap, AIM_CAP_IM2) == 0) {
+ mir_strcpy(client, CLIENT_IM2);
}
- else if (memcmp(cap, "SIM client", 10) == 0)
- {
- mir_strcpy(client,CLIENT_SIM);
+ else if (memcmp(cap, "SIM client", 10) == 0) {
+ mir_strcpy(client, CLIENT_SIM);
}
- else if (memcmp(cap+4, "naim", 4) == 0)
- {
- mir_strcpy(client,CLIENT_NAIM);
+ else if (memcmp(cap + 4, "naim", 4) == 0) {
+ mir_strcpy(client, CLIENT_NAIM);
}
- else if (memcmp(cap, "digsby", 6) == 0)
- {
- mir_strcpy(client,CLIENT_DIGSBY);
+ else if (memcmp(cap, "digsby", 6) == 0) {
+ mir_strcpy(client, CLIENT_DIGSBY);
}
mir_free(cap);
}
}
- else if (tlv.cmp(0x0019))//new caps
- {
- caps_included=1;
- bool f002=0, f003=0, f004=0, f005=0, f007=0, f008=0,
- O101=0, O102=0, O103=0, O104=0, O105=0, O107=0, O1ff=0,
- O10a=0, O10c=0, O10d=0,
- l341=0, l343=0, l345=0, l346=0, l347=0, l348=0, l349=0, l34b=0, l34e=0;
- //utf8=0;//O actually means 0 in this case
- for(int i=0;i<tlv.len();i=i+2)
- {
- unsigned short cap=tlv.ushort(i);
- //if (cap==0x134E)
- // utf8=1;
- if (cap==0xf002)
- f002=1;
- if (cap==0xf003)
- f003=1;
- if (cap==0xf004)
- f004=1;
- if (cap==0xf005)
- f005=1;
- if (cap==0xf007)
- f007=1;
- if (cap==0xf008)
- f008=1;
- if (cap==0x0101)
- O101=1;
- if (cap==0x0102)
- O102=1;
- if (cap==0x0103)
- O103=1;
- if (cap==0x0104)
- O104=1;
- if (cap==0x0105)
- O105=1;
- if (cap==0x0107)
- O107=1;
- if (cap==0x010a)
- O10a=1;
- if (cap==0x010c)
- O10c=1;
- if (cap==0x010d)
- O10d=1;
- if (cap==0x01ff)
- O1ff=1;
- if (cap==0x1323)
- {
- mir_strcpy(client,CLIENT_GPRS);
- hiptop_user=1;
+ else if (tlv.cmp(0x0019)) { // new caps
+ caps_included = 1;
+ bool f002 = 0, f003 = 0, f004 = 0, f005 = 0, f007 = 0, f008 = 0,
+ O101 = 0, O102 = 0, O103 = 0, O104 = 0, O105 = 0, O107 = 0, O1ff = 0,
+ O10a = 0, O10c = 0, O10d = 0,
+ l341 = 0, l343 = 0, l345 = 0, l346 = 0, l347 = 0, l348 = 0, l349 = 0, l34b = 0, l34e = 0;
+
+ for (int k = 0; k < tlv.len(); k = k + 2) {
+ unsigned short cap = tlv.ushort(k);
+ if (cap == 0xf002)
+ f002 = 1;
+ if (cap == 0xf003)
+ f003 = 1;
+ if (cap == 0xf004)
+ f004 = 1;
+ if (cap == 0xf005)
+ f005 = 1;
+ if (cap == 0xf007)
+ f007 = 1;
+ if (cap == 0xf008)
+ f008 = 1;
+ if (cap == 0x0101)
+ O101 = 1;
+ if (cap == 0x0102)
+ O102 = 1;
+ if (cap == 0x0103)
+ O103 = 1;
+ if (cap == 0x0104)
+ O104 = 1;
+ if (cap == 0x0105)
+ O105 = 1;
+ if (cap == 0x0107)
+ O107 = 1;
+ if (cap == 0x010a)
+ O10a = 1;
+ if (cap == 0x010c)
+ O10c = 1;
+ if (cap == 0x010d)
+ O10d = 1;
+ if (cap == 0x01ff)
+ O1ff = 1;
+ if (cap == 0x1323) {
+ mir_strcpy(client, CLIENT_GPRS);
+ hiptop_user = 1;
}
- if (cap==0x1341)
- l341=1;
- if (cap==0x1343)
- l343=1;
- if (cap==0x1345)
- l345=1;
- if (cap==0x1346)
- l346=1;
- if (cap==0x1347)
- l347=1;
- if (cap==0x1348)
- l348=1;
- if (cap==0x1349)
- l349=1;
- if (cap==0x134b)
- l34b=1;
- if (cap==0x134e)
- l34e=1;
+ if (cap == 0x1341)
+ l341 = 1;
+ if (cap == 0x1343)
+ l343 = 1;
+ if (cap == 0x1345)
+ l345 = 1;
+ if (cap == 0x1346)
+ l346 = 1;
+ if (cap == 0x1347)
+ l347 = 1;
+ if (cap == 0x1348)
+ l348 = 1;
+ if (cap == 0x1349)
+ l349 = 1;
+ if (cap == 0x134b)
+ l34b = 1;
+ if (cap == 0x134e)
+ l34e = 1;
}
- if (f002&&f003&&f004&&f005)
- mir_strcpy(client,CLIENT_TRILLIAN_PRO);
- else if ((f004&&f005&&f007&&f008) || (f004&&f005&&O104&&O105))
- mir_strcpy(client,CLIENT_ICHAT);
+
+ if (f002 && f003 && f004 && f005)
+ mir_strcpy(client, CLIENT_TRILLIAN_PRO);
+ else if ((f004 && f005 && f007 && f008) || (f004 && f005 && O104 && O105))
+ mir_strcpy(client, CLIENT_ICHAT);
else if (f003&f004&f005)
- mir_strcpy(client,CLIENT_TRILLIAN);
- else if (l343&&O1ff&&tlv.len()==4)
- mir_strcpy(client,CLIENT_TRILLIAN_ASTRA);
- else if (l343&&tlv.len()==2)
- mir_strcpy(client,CLIENT_AIMTOC);
- else if (l343&&l345&&l346&&tlv.len()==6)
- mir_strcpy(client,CLIENT_GAIM);
- else if (l343&&l345&&l346&&l34e&&tlv.len()==8)
- mir_strcpy(client,CLIENT_PURPLE);
- else if (l343&&l345&&l346&&l349&&l34e&&tlv.len()==10)
- mir_strcpy(client,CLIENT_PURPLE);
- else if (l343&&l345&&l34e&&tlv.len()==6)
- mir_strcpy(client,CLIENT_ADIUM);
- else if (l343&&l346&&l34e&&tlv.len()==6)
- mir_strcpy(client,CLIENT_TERRAIM);
- else if (tlv.len()==0 && getWord(hContact, AIM_KEY_ST,0)!=ID_STATUS_ONTHEPHONE)
- mir_strcpy(client,CLIENT_AIMEXPRESS5);
- else if (l34b&&l343&&O1ff&&l345&&l346&&tlv.len()==10)
- mir_strcpy(client,CLIENT_AIMEXPRESS6);
- else if (l34b&&l341&&l343&&O1ff&&l345&&l346&&l347)
- mir_strcpy(client,CLIENT_AIM5);
- else if (l34b&&l341&&l343&&l345&l346&&l347&&l348)
- mir_strcpy(client,CLIENT_AIM4);
- else if (O1ff&&l343&&O107&&l341&&O104&&O105&&O101&&l346)
- {
+ mir_strcpy(client, CLIENT_TRILLIAN);
+ else if (l343 && O1ff && tlv.len() == 4)
+ mir_strcpy(client, CLIENT_TRILLIAN_ASTRA);
+ else if (l343 && tlv.len() == 2)
+ mir_strcpy(client, CLIENT_AIMTOC);
+ else if (l343 && l345 && l346 && tlv.len() == 6)
+ mir_strcpy(client, CLIENT_GAIM);
+ else if (l343 && l345 && l346 && l34e && tlv.len() == 8)
+ mir_strcpy(client, CLIENT_PURPLE);
+ else if (l343 && l345 && l346 && l349 && l34e && tlv.len() == 10)
+ mir_strcpy(client, CLIENT_PURPLE);
+ else if (l343 && l345 && l34e && tlv.len() == 6)
+ mir_strcpy(client, CLIENT_ADIUM);
+ else if (l343 && l346 && l34e && tlv.len() == 6)
+ mir_strcpy(client, CLIENT_TERRAIM);
+ else if (tlv.len() == 0 && getWord(hContact, AIM_KEY_ST, 0) != ID_STATUS_ONTHEPHONE)
+ mir_strcpy(client, CLIENT_AIMEXPRESS5);
+ else if (l34b && l343 && O1ff && l345 && l346 && tlv.len() == 10)
+ mir_strcpy(client, CLIENT_AIMEXPRESS6);
+ else if (l34b && l341 && l343 && O1ff && l345 && l346 && l347)
+ mir_strcpy(client, CLIENT_AIM5);
+ else if (l34b && l341 && l343 && l345&l346 && l347 && l348)
+ mir_strcpy(client, CLIENT_AIM4);
+ else if (O1ff && l343 && O107 && l341 && O104 && O105 && O101 && l346) {
if (O10d)
- mir_strcpy(client,CLIENT_AIM6_9);
+ mir_strcpy(client, CLIENT_AIM6_9);
else if (O10c)
- mir_strcpy(client,CLIENT_AIM6_8);
+ mir_strcpy(client, CLIENT_AIM6_8);
else if (O10a)
- mir_strcpy(client,CLIENT_AIM6_5);
+ mir_strcpy(client, CLIENT_AIM6_5);
else
- mir_strcpy(client,CLIENT_AIM_TRITON);
+ mir_strcpy(client, CLIENT_AIM_TRITON);
}
- else if (O1ff&&l343&&l341&&O104&&O105&&O101&&l346)
- mir_strcpy(client,CLIENT_AIM7_0);
- else if (l346&&l34e&&tlv.len()==4)
- mir_strcpy(client,CLIENT_MEEBO);
- else if (l34e&&tlv.len()==2)
- mir_strcpy(client,CLIENT_BEEJIVE);
- else if (l34e&&l343&&tlv.len()==4)
- mir_strcpy(client,CLIENT_BEEJIVE);
-
- // setByte(hContact, AIM_KEY_US, utf8);
- }
- else if (tlv.cmp(0x001d)) //bart
- {
- if (hContact)
- {
+ else if (O1ff && l343 && l341 && O104 && O105 && O101 && l346)
+ mir_strcpy(client, CLIENT_AIM7_0);
+ else if (l346 && l34e && tlv.len() == 4)
+ mir_strcpy(client, CLIENT_MEEBO);
+ else if (l34e && tlv.len() == 2)
+ mir_strcpy(client, CLIENT_BEEJIVE);
+ else if (l34e && l343 && tlv.len() == 4)
+ mir_strcpy(client, CLIENT_BEEJIVE);
+ }
+ else if (tlv.cmp(0x001d)) { // bart
+ if (hContact) {
bool msg_exist = false;
- for (int i = 0; i < tlv.len(); )
- {
+ for (int k = 0; k < tlv.len(); ) {
// Bart header
- unsigned short type = tlv.ushort(i);
- unsigned char flags = tlv.ubyte(i + 2);
- unsigned char datalen = tlv.ubyte(i + 3);
+ unsigned short type = tlv.ushort(k);
+ unsigned char flags = tlv.ubyte(k + 2);
+ unsigned char datalen = tlv.ubyte(k + 3);
- switch (type)
- {
+ switch (type) {
case 0x0001:
- hash_sm = bytes_to_string(tlv.val() + i + 4, datalen);
+ hash_sm = bytes_to_string(tlv.val() + k + 4, datalen);
break;
case 0x000c:
- hash_lg = bytes_to_string(tlv.val() + i + 4, datalen);
+ hash_lg = bytes_to_string(tlv.val() + k + 4, datalen);
break;
case 0x0002:
- if ((flags & 4) && datalen > 2)
- {
- unsigned short len = tlv.ushort(i + 4);
- if (len)
- {
+ if ((flags & 4) && datalen > 2) {
+ unsigned short len = tlv.ushort(k + 4);
+ if (len) {
msg_exist = true;
- char* msg = tlv.part(i + 6, len);
+ char* msg = tlv.part(k + 6, len);
char* msg_s = process_status_msg(msg, sn);
db_set_utf(hContact, MOD_KEY_CL, OTH_KEY_SM, msg_s);
@@ -546,32 +496,28 @@ void CAimProto::snac_user_online(SNAC &snac)//family 0x0003 }
break;
}
- i += 4 + datalen;
+ k += 4 + datalen;
}
if (!msg_exist)
db_unset(hContact, MOD_KEY_CL, OTH_KEY_SM);
}
}
- else if (tlv.cmp(0x0004))//idle tlv
- {
- if (hContact)
- {
+ else if (tlv.cmp(0x0004)) { //idle tlv
+ if (hContact) {
time_t current_time;
time(¤t_time);
setDword(hContact, AIM_KEY_IT, ((DWORD)current_time) - tlv.ushort() * 60);
}
}
- else if (tlv.cmp(0x0003))//online time tlv
- {
+ else if (tlv.cmp(0x0003)) { // online time tlv
if (hContact)
setDword(hContact, AIM_KEY_OT, tlv.ulong());
}
- else if (tlv.cmp(0x0005))//member since
- {
- if (hContact)
- setDword(hContact, AIM_KEY_MS, tlv.ulong());
- }
+ else if (tlv.cmp(0x0005)) { // member since
+ if (hContact)
+ setDword(hContact, AIM_KEY_MS, tlv.ulong());
+ }
offset += tlv.len();
}
@@ -617,10 +563,10 @@ void CAimProto::snac_user_offline(SNAC &snac)//family 0x0003 {
if (snac.subcmp(0x000c)) {
unsigned char buddy_length = snac.ubyte();
- char* buddy=snac.part(1,buddy_length);
- MCONTACT hContact=contact_from_sn(buddy, true);
+ char* buddy = snac.part(1, buddy_length);
+ MCONTACT hContact = contact_from_sn(buddy, true);
if (hContact)
- offline_contact(hContact,0);
+ offline_contact(hContact, 0);
mir_free(buddy);
}
}
@@ -633,12 +579,12 @@ void CAimProto::snac_error(SNAC &snac)//family 0x0003 or 0x0004 void CAimProto::process_ssi_list(SNAC &snac, int &offset)
{
unsigned short name_length = snac.ushort(offset);
- char* name = snac.part(offset+2, name_length);
- unsigned short group_id = snac.ushort(offset+ 2 +name_length);
- unsigned short item_id = snac.ushort(offset+4+name_length);
- unsigned short type = snac.ushort(offset+6+name_length);
- unsigned short tlv_size = snac.ushort(offset+8+name_length);
- const int tlv_base = offset + name_length + 10;
+ char* name = snac.part(offset + 2, name_length);
+ unsigned short group_id = snac.ushort(offset + 2 + name_length);
+ unsigned short item_id = snac.ushort(offset + 4 + name_length);
+ unsigned short type = snac.ushort(offset + 6 + name_length);
+ unsigned short tlv_size = snac.ushort(offset + 8 + name_length);
+ const int tlv_base = offset + name_length + 10;
switch (type) {
case 0x0000: //buddy record
@@ -654,7 +600,7 @@ void CAimProto::process_ssi_list(SNAC &snac, int &offset) }
}
if (i == 1 && getByte(AIM_KEY_MG, 1)) {
- const char* group = group_list.find_name(group_id);
+ const char* group = m_group_list.find_name(group_id);
if (group) {
bool ok = false;
DBVARIANT dbv;
@@ -694,36 +640,36 @@ void CAimProto::process_ssi_list(SNAC &snac, int &offset) if (!nickfound && getDword(AIM_KEY_LV, 0) >= 0x80500)
db_unset(hContact, MOD_KEY_CL, "MyHandle");
}
- }
+ }
break;
case 0x0001: //group record
if (group_id) {
- group_list.add(name, group_id);
+ m_group_list.add(name, group_id);
if (getByte(AIM_KEY_MG, 1))
create_group(name);
}
break;
case 0x0002: //permit record
- allow_list.add(name, item_id);
+ m_allow_list.add(name, item_id);
break;
case 0x0003: //deny record
- block_list.add(name, item_id);
+ m_block_list.add(name, item_id);
break;
case 0x0004: //privacy record
if (group_id == 0) {
- pd_info_id = item_id;
+ m_pd_info_id = item_id;
for (int tlv_offset = 0; tlv_offset < tlv_size;) {
TLV tlv(snac.val(tlv_base + tlv_offset));
if (tlv.cmp(0x00ca))
- pd_mode = tlv.ubyte();
+ m_pd_mode = tlv.ubyte();
else if (tlv.cmp(0x00cc))
- pd_flags = tlv.ulong();
+ m_pd_flags = tlv.ulong();
tlv_offset += TLV_HEADER_SIZE + tlv.len();
}
@@ -732,24 +678,24 @@ void CAimProto::process_ssi_list(SNAC &snac, int &offset) case 0x0005: //prefernces record
if (group_id == 0) {
- pref1_id = item_id;
+ m_pref1_id = item_id;
for (int tlv_offset = 0; tlv_offset < tlv_size;) {
TLV tlv(snac.val(tlv_base + tlv_offset));
if (tlv.cmp(0x00c9))
- pref1_flags = tlv.ulong();
+ m_pref1_flags = tlv.ulong();
else if (tlv.cmp(0x00d6))
- pref1_set_flags = tlv.ulong();
+ m_pref1_set_flags = tlv.ulong();
else if (tlv.cmp(0x00d7)) {
- mir_free(pref2_flags);
- pref2_flags = tlv.dup();
- pref2_len = tlv.len();
+ mir_free(m_pref2_flags);
+ m_pref2_flags = tlv.dup();
+ m_pref2_len = tlv.len();
}
else if (tlv.cmp(0x00d8)) {
- mir_free(pref2_set_flags);
- pref2_set_flags = tlv.dup();
- pref2_set_len = tlv.len();
+ mir_free(m_pref2_set_flags);
+ m_pref2_set_flags = tlv.dup();
+ m_pref2_set_len = tlv.len();
}
tlv_offset += TLV_HEADER_SIZE + tlv.len();
@@ -760,27 +706,27 @@ void CAimProto::process_ssi_list(SNAC &snac, int &offset) case 0x0014: //avatar record
if (!mir_strcmp(name, "1") || !mir_strcmp(name, "12")) {
if (name_length == 1)
- avatar_id_sm = item_id;
+ m_avatar_id_sm = item_id;
else
- avatar_id_lg = item_id;
+ m_avatar_id_lg = item_id;
for (int tlv_offset = 0; tlv_offset < tlv_size;) {
TLV tlv(snac.val(tlv_base + tlv_offset));
if (tlv.cmp(0x00d5) && tlv.len() > 2) {
if (name_length == 1) {
- mir_free(hash_sm);
- hash_sm = bytes_to_string(tlv.val() + 2, tlv.ubyte(1));
+ mir_free(m_hash_sm);
+ m_hash_sm = bytes_to_string(tlv.val() + 2, tlv.ubyte(1));
}
else {
- mir_free(hash_lg);
- hash_lg = bytes_to_string(tlv.val() + 2, tlv.ubyte(1));
+ mir_free(m_hash_lg);
+ m_hash_lg = bytes_to_string(tlv.val() + 2, tlv.ubyte(1));
}
}
tlv_offset += TLV_HEADER_SIZE + tlv.len();
}
- if (list_received)
+ if (m_list_received)
avatar_request_handler(NULL, NULL, 0);
}
break;
@@ -813,26 +759,22 @@ void CAimProto::process_ssi_list(SNAC &snac, int &offset) void CAimProto::modify_ssi_list(SNAC &snac, int &offset)
{
unsigned short name_length = snac.ushort(offset);
- char* name = snac.part(offset+2, name_length);
- unsigned short group_id = snac.ushort(offset+ 2 +name_length);
- unsigned short item_id = snac.ushort(offset+4+name_length);
- unsigned short type = snac.ushort(offset+6+name_length);
- unsigned short tlv_size = snac.ushort(offset+8+name_length);
- const int tlv_base = offset + name_length + 10;
-
- switch (type)
- {
+ char* name = snac.part(offset + 2, name_length);
+ unsigned short group_id = snac.ushort(offset + 2 + name_length);
+ unsigned short item_id = snac.ushort(offset + 4 + name_length);
+ unsigned short type = snac.ushort(offset + 6 + name_length);
+ unsigned short tlv_size = snac.ushort(offset + 8 + name_length);
+ const int tlv_base = offset + name_length + 10;
+
+ switch (type) {
case 0x0000: //buddy record
{
MCONTACT hContact = contact_from_sn(name, true);
- if (hContact)
- {
- for (int tlv_offset = 0; tlv_offset < tlv_size; )
- {
+ if (hContact) {
+ for (int tlv_offset = 0; tlv_offset < tlv_size; ) {
TLV tlv(snac.val(tlv_base + tlv_offset));
- if (tlv.cmp(0x0131) && tlv.len())
- {
+ if (tlv.cmp(0x0131) && tlv.len()) {
char* nick = tlv.dup();
if (nick)
db_set_utf(hContact, MOD_KEY_CL, "MyHandle", nick);
@@ -848,18 +790,16 @@ void CAimProto::modify_ssi_list(SNAC &snac, int &offset) }
case 0x0004: //privacy record
- if (group_id == 0)
- {
- pd_info_id = item_id;
+ if (group_id == 0) {
+ m_pd_info_id = item_id;
- for (int tlv_offset = 0; tlv_offset < tlv_size; )
- {
+ for (int tlv_offset = 0; tlv_offset < tlv_size; ) {
TLV tlv(snac.val(tlv_base + tlv_offset));
if (tlv.cmp(0x00ca))
- pd_mode = tlv.ubyte();
+ m_pd_mode = tlv.ubyte();
else if (tlv.cmp(0x00cc))
- pd_flags = tlv.ulong();
+ m_pd_flags = tlv.ulong();
tlv_offset += TLV_HEADER_SIZE + tlv.len();
}
@@ -867,29 +807,25 @@ void CAimProto::modify_ssi_list(SNAC &snac, int &offset) break;
case 0x0005: //prefernces record
- if (group_id == 0)
- {
- pref1_id = item_id;
+ if (group_id == 0) {
+ m_pref1_id = item_id;
- for (int tlv_offset = 0; tlv_offset < tlv_size; )
- {
+ for (int tlv_offset = 0; tlv_offset < tlv_size; ) {
TLV tlv(snac.val(tlv_base + tlv_offset));
if (tlv.cmp(0x00c9))
- pref1_flags = tlv.ulong();
+ m_pref1_flags = tlv.ulong();
else if (tlv.cmp(0x00d6))
- pref1_set_flags = tlv.ulong();
- else if (tlv.cmp(0x00d7))
- {
- mir_free(pref2_flags);
- pref2_flags = tlv.dup();
- pref2_len = tlv.len();
+ m_pref1_set_flags = tlv.ulong();
+ else if (tlv.cmp(0x00d7)) {
+ mir_free(m_pref2_flags);
+ m_pref2_flags = tlv.dup();
+ m_pref2_len = tlv.len();
}
- else if (tlv.cmp(0x00d8))
- {
- mir_free(pref2_set_flags);
- pref2_set_flags = tlv.dup();
- pref2_set_len = tlv.len();
+ else if (tlv.cmp(0x00d8)) {
+ mir_free(m_pref2_set_flags);
+ m_pref2_set_flags = tlv.dup();
+ m_pref2_set_len = tlv.len();
}
tlv_offset += TLV_HEADER_SIZE + tlv.len();
@@ -898,29 +834,24 @@ void CAimProto::modify_ssi_list(SNAC &snac, int &offset) break;
case 0x0014: //avatar record
- if (!mir_strcmp(name, "1") || !mir_strcmp(name, "12"))
- {
+ if (!mir_strcmp(name, "1") || !mir_strcmp(name, "12")) {
if (name_length == 1)
- avatar_id_sm = item_id;
+ m_avatar_id_sm = item_id;
else
- avatar_id_lg = item_id;
+ m_avatar_id_lg = item_id;
- for (int tlv_offset = 0; tlv_offset < tlv_size; )
- {
- TLV tlv(snac.val( tlv_base + tlv_offset));
+ for (int tlv_offset = 0; tlv_offset < tlv_size; ) {
+ TLV tlv(snac.val(tlv_base + tlv_offset));
- if (tlv.cmp(0x00d5) && tlv.len() > 2)
- {
-// unsigned char type = tlv.ubyte(0);
- if (name_length == 1)
- {
- mir_free(hash_sm);
- hash_sm = bytes_to_string(tlv.val() + 2, tlv.ubyte(1));
+ if (tlv.cmp(0x00d5) && tlv.len() > 2) {
+ // unsigned char type = tlv.ubyte(0);
+ if (name_length == 1) {
+ mir_free(m_hash_sm);
+ m_hash_sm = bytes_to_string(tlv.val() + 2, tlv.ubyte(1));
}
- else
- {
- mir_free(hash_lg);
- hash_lg = bytes_to_string(tlv.val() + 2, tlv.ubyte(1));
+ else {
+ mir_free(m_hash_lg);
+ m_hash_lg = bytes_to_string(tlv.val() + 2, tlv.ubyte(1));
}
}
tlv_offset += TLV_HEADER_SIZE + tlv.len();
@@ -937,23 +868,21 @@ void CAimProto::delete_ssi_list(SNAC &snac, int &offset) {
int i;
- unsigned short name_length=snac.ushort(offset);
- char* name=snac.part(offset+2,name_length);
- unsigned short group_id=snac.ushort(offset+2+name_length);
- unsigned short item_id=snac.ushort(offset+4+name_length);
- unsigned short type=snac.ushort(offset+6+name_length);
+ unsigned short name_length = snac.ushort(offset);
+ char* name = snac.part(offset + 2, name_length);
+ unsigned short group_id = snac.ushort(offset + 2 + name_length);
+ unsigned short item_id = snac.ushort(offset + 4 + name_length);
+ unsigned short type = snac.ushort(offset + 6 + name_length);
MCONTACT hContact = contact_from_sn(name);
switch (type) {
case 0x0000: //buddy record
- for(i=1;;++i)
- {
+ for (i = 1;; ++i) {
unsigned short item_id_st = getBuddyId(hContact, i);
if (item_id_st == 0) break;
- if (item_id == item_id_st)
- {
+ if (item_id == item_id_st) {
deleteBuddyId(hContact, i);
deleteGroupId(hContact, i);
--i;
@@ -964,60 +893,55 @@ void CAimProto::delete_ssi_list(SNAC &snac, int &offset) break;
case 0x0001: //group record
- group_list.remove_by_id(group_id);
+ m_group_list.remove_by_id(group_id);
break;
case 0x0014: //avatar record
- if (mir_strcmp(name, "1"))
- {
- avatar_id_sm = 0;
- mir_free(hash_sm);
- hash_sm = NULL;
+ if (mir_strcmp(name, "1")) {
+ m_avatar_id_sm = 0;
+ mir_free(m_hash_sm);
+ m_hash_sm = NULL;
}
- else if (!mir_strcmp(name, "12"))
- {
- avatar_id_lg = 0;
- mir_free(hash_lg);
- hash_lg = NULL;
+ else if (!mir_strcmp(name, "12")) {
+ m_avatar_id_lg = 0;
+ mir_free(m_hash_lg);
+ m_hash_lg = NULL;
}
avatar_request_handler(NULL, NULL, 0);
break;
}
- mir_free(name) ;
+ mir_free(name);
}
-void CAimProto::snac_contact_list(SNAC &snac,HANDLE hServerConn,unsigned short &seqno)//family 0x0013
+void CAimProto::snac_contact_list(SNAC &snac, HANDLE hServerConn, unsigned short &seqno)//family 0x0013
{
- if (snac.subcmp(0x0006)) //contact list
- {
+ if (snac.subcmp(0x0006)) { //contact list
debugLogA("Contact List Received");
-// unsigned char ver = snac.ubyte();
+ // unsigned char ver = snac.ubyte();
int num_obj = snac.ushort(1);
- int offset=3;
- for (int i=0; i<num_obj; ++i)
+ int offset = 3;
+ for (int i = 0; i < num_obj; ++i)
process_ssi_list(snac, offset);
- if (!list_received)//because they can send us multiple buddy list packets
- {//only want one finished connection
- list_received=1;
- aim_activate_list(hServerConn,seqno);
- aim_set_caps(hServerConn,seqno);
- aim_set_icbm(hServerConn,seqno);
- aim_client_ready(hServerConn,seqno);
- aim_request_offline_msgs(hServerConn,seqno);
+ if (!m_list_received) { // because they can send us multiple buddy list packets
+ // only want one finished connection
+ m_list_received = 1;
+ aim_activate_list(hServerConn, seqno);
+ aim_set_caps(hServerConn, seqno);
+ aim_set_icbm(hServerConn, seqno);
+ aim_client_ready(hServerConn, seqno);
+ aim_request_offline_msgs(hServerConn, seqno);
DBVARIANT dbv;
- if (!db_get_utf(NULL, m_szModuleName, AIM_KEY_PR, &dbv))
- {
+ if (!db_get_utf(NULL, m_szModuleName, AIM_KEY_PR, &dbv)) {
aim_set_profile(hServerConn, seqno, dbv.pszVal);
db_free(&dbv);
}
- if (getDword(AIM_KEY_LV, 0) < 0x80500)
- {
+ if (getDword(AIM_KEY_LV, 0) < 0x80500) {
upload_nicks();
- setDword(AIM_KEY_LV, (DWORD)CallService(MS_SYSTEM_GETVERSION,0,0));
+ setDword(AIM_KEY_LV, (DWORD)CallService(MS_SYSTEM_GETVERSION, 0, 0));
}
if (getByte(AIM_KEY_CM, 0))
@@ -1026,38 +950,32 @@ void CAimProto::snac_contact_list(SNAC &snac,HANDLE hServerConn,unsigned short & avatar_request_handler(NULL, NULL, 0);
debugLogA("Connection Negotiation Finished");
- state = 1;
+ m_state = 1;
}
}
- else if (snac.subcmp(0x0008)) // add buddy
- {
- int offset=8;
+ else if (snac.subcmp(0x0008)) { // add buddy
+ int offset = 8;
process_ssi_list(snac, offset);
}
- else if (snac.subcmp(0x0009)) // modify buddy
- {
- int offset=8;
+ else if (snac.subcmp(0x0009)) { // modify buddy
+ int offset = 8;
modify_ssi_list(snac, offset);
}
- else if (snac.subcmp(0x000a)) // delete buddy
- {
- int offset=8;
+ else if (snac.subcmp(0x000a)) { // delete buddy
+ int offset = 8;
delete_ssi_list(snac, offset);
}
}
void CAimProto::snac_message_accepted(SNAC &snac)//family 0x004
{
- if (snac.subcmp(0x000c))
- {
-
- char* icbm_cookie = snac.part(0,8);
- unsigned char sn_length=snac.ubyte(10);
- char* sn = snac.part(11,sn_length);
+ if (snac.subcmp(0x000c)) {
+ char *icbm_cookie = snac.part(0, 8);
+ unsigned char sn_length = snac.ubyte(10);
+ char *sn = snac.part(11, sn_length);
MCONTACT hContact = contact_from_sn(sn);
- if (hContact)
- {
+ if (hContact) {
msg_ack_param *msg_ack = (msg_ack_param*)mir_alloc(sizeof(msg_ack_param));
msg_ack->hContact = hContact;
msg_ack->id = *(int*)icbm_cookie & 0x7fffffff;
@@ -1070,60 +988,56 @@ void CAimProto::snac_message_accepted(SNAC &snac)//family 0x004 mir_free(icbm_cookie);
}
}
-void CAimProto::snac_received_message(SNAC &snac,HANDLE hServerConn,unsigned short &seqno)//family 0x0004
+void CAimProto::snac_received_message(SNAC &snac, HANDLE hServerConn, unsigned short &seqno)//family 0x0004
{
- if (snac.subcmp(0x0007))
- {
- unsigned short channel = snac.ushort(8);
+ if (snac.subcmp(0x0007)) {
+ unsigned short channel = snac.ushort(8);
unsigned char sn_length = snac.ubyte(10);
- char* sn = snac.part(11,sn_length);
+ char *sn = snac.part(11, sn_length);
MCONTACT hContact = contact_from_sn(sn, true, true), hMsgContact = NULL;
- int offset=15+sn_length;
+ int offset = 15 + sn_length;
- char* msg_buf=NULL;
+ char *msg_buf = NULL;
unsigned long offline_timestamp = 0;
bool is_offline = false;
//file transfer stuff
- char* icbm_cookie = NULL;
- char* filename = NULL;
- unsigned __int64 file_size=0;
- bool auto_response=false;
- bool force_proxy=false;
- bool descr_included=false;
- bool utf_fname=false;
- bool unicode_descr=false;
- short rdz_msg_type=-1;
- unsigned short request_num=0;
- unsigned long local_ip=0, verified_ip=0, proxy_ip=0;
+ char *icbm_cookie = NULL;
+ char *filename = NULL;
+ unsigned __int64 file_size = 0;
+ bool auto_response = false;
+ bool force_proxy = false;
+ bool descr_included = false;
+ bool utf_fname = false;
+ bool unicode_descr = false;
+ short rdz_msg_type = -1;
+ unsigned short request_num = 0;
+ unsigned long local_ip = 0, verified_ip = 0, proxy_ip = 0;
unsigned short port = 0;
unsigned short max_ver = 0;
unsigned short num_files = 0;
//end file transfer stuff
- unsigned short tlv_head_num=snac.ushort(offset-2);
- for (int i=0;i<tlv_head_num;i++)
- { // skip server-added TLVs - prevent another problems with parsing
+ unsigned short tlv_head_num = snac.ushort(offset - 2);
+ for (int i = 0; i < tlv_head_num; i++) { // skip server-added TLVs - prevent another problems with parsing
TLV tlv(snac.val(offset));
- offset+=TLV_HEADER_SIZE+tlv.len();
+ offset += TLV_HEADER_SIZE + tlv.len();
// some extra sanity
- if (offset>=snac.len()) break;
+ if (offset >= snac.len()) break;
}
-
- while (offset < snac.len())
- {
+
+ while (offset < snac.len()) {
TLV tlv(snac.val(offset));
offset += TLV_HEADER_SIZE;
- if (tlv.cmp(0x0004)&&!tlv.len())//auto response flag
+ if (tlv.cmp(0x0004) && !tlv.len())//auto response flag
auto_response = 1;
- if (tlv.cmp(0x0002)) //msg
- {
- unsigned short caps_length=tlv.ushort(2);
- unsigned short msg_length=tlv.ushort(6+caps_length)-4;
- unsigned short encoding=tlv.ushort(8+caps_length);
- char* buf = tlv.part(12+caps_length,msg_length);
+ if (tlv.cmp(0x0002)) { // msg
+ unsigned short caps_length = tlv.ushort(2);
+ unsigned short msg_length = tlv.ushort(6 + caps_length) - 4;
+ unsigned short encoding = tlv.ushort(8 + caps_length);
+ char *buf = tlv.part(12 + caps_length, msg_length);
if (hContact) {
wchar_t* wbuf;
hMsgContact = hContact;
@@ -1156,39 +1070,39 @@ void CAimProto::snac_received_message(SNAC &snac,HANDLE hServerConn,unsigned sho if (channel == 2 && tlv.cmp(0x0005)) { //recv rendervous packet
rdz_msg_type = snac.ushort(offset);
- icbm_cookie = snac.part(offset+2,8);
- if (cap_cmp(snac.val(offset+10), AIM_CAP_FILE_TRANSFER) == 0) {
+ icbm_cookie = snac.part(offset + 2, 8);
+ if (cap_cmp(snac.val(offset + 10), AIM_CAP_FILE_TRANSFER) == 0) {
for (int i = 26; i < tlv.len(); ) {
- TLV tlv(snac.val(offset+i));
- if (tlv.cmp(0x000A))
- request_num=tlv.ushort();//for file transfer
- else if (tlv.cmp(0x0002))//proxy ip
- proxy_ip = tlv.ulong();
- else if (tlv.cmp(0x0003))//client ip
- local_ip = tlv.ulong();
- else if (tlv.cmp(0x0004))//verified ip
- verified_ip = tlv.ulong();
- else if (tlv.cmp(0x0005))
- port=tlv.ushort();
- else if (tlv.cmp(0x0010))
- force_proxy=1;
- else if (tlv.cmp(0x0012))
- max_ver = tlv.ushort();
- else if (tlv.cmp(0x2711)) {
- num_files = tlv.ushort(2);
- file_size = tlv.ulong(4);
- filename = tlv.part(8, tlv.len()-8);
+ TLV tlv2(snac.val(offset + i));
+ if (tlv2.cmp(0x000A))
+ request_num = tlv2.ushort();//for file transfer
+ else if (tlv2.cmp(0x0002))//proxy ip
+ proxy_ip = tlv2.ulong();
+ else if (tlv2.cmp(0x0003))//client ip
+ local_ip = tlv2.ulong();
+ else if (tlv2.cmp(0x0004))//verified ip
+ verified_ip = tlv2.ulong();
+ else if (tlv2.cmp(0x0005))
+ port = tlv2.ushort();
+ else if (tlv2.cmp(0x0010))
+ force_proxy = 1;
+ else if (tlv2.cmp(0x0012))
+ max_ver = tlv2.ushort();
+ else if (tlv2.cmp(0x2711)) {
+ num_files = tlv2.ushort(2);
+ file_size = tlv2.ulong(4);
+ filename = tlv2.part(8, tlv2.len() - 8);
}
- else if (tlv.cmp(0x2712)) {
- char* enc = tlv.dup();
+ else if (tlv2.cmp(0x2712)) {
+ char *enc = tlv2.dup();
utf_fname = mir_strcmp(enc, "utf-8") == 0;
mir_free(enc);
}
- else if (tlv.cmp(0x2713)) {
- file_size = tlv.u64();
+ else if (tlv2.cmp(0x2713)) {
+ file_size = tlv2.u64();
}
- else if (tlv.cmp(0x000c)) {
- msg_buf = unicode_descr ? tlv.dupw() : tlv.dup();
+ else if (tlv2.cmp(0x000c)) {
+ msg_buf = unicode_descr ? tlv2.dupw() : tlv2.dup();
html_decode(msg_buf);
descr_included = true;
if (strstr(msg_buf, "<ICQ_COOL_FT>")) {
@@ -1202,46 +1116,46 @@ void CAimProto::snac_received_message(SNAC &snac,HANDLE hServerConn,unsigned sho else descr_included = false;
}
}
- else if (tlv.cmp(0x000d)) {
- char* enc = tlv.dup();
+ else if (tlv2.cmp(0x000d)) {
+ char* enc = tlv2.dup();
unicode_descr = mir_strcmp(enc, "unicode-2-0") == 0;
mir_free(enc);
}
- i += TLV_HEADER_SIZE + tlv.len();
+ i += TLV_HEADER_SIZE + tlv2.len();
}
}
- else if (cap_cmp(snac.val(offset+10), AIM_CAP_RTCAUDIO) == 0 || cap_cmp(snac.val(offset+10), AIM_CAP_RTCVIDEO) == 0) {
+ else if (cap_cmp(snac.val(offset + 10), AIM_CAP_RTCAUDIO) == 0 || cap_cmp(snac.val(offset + 10), AIM_CAP_RTCVIDEO) == 0) {
for (int i = 26; i < tlv.len(); ) {
- TLV tlv(snac.val(offset+i));
- if (tlv.cmp(0x000A))
- request_num=tlv.ushort();//for file transfer
- else if (tlv.cmp(0x0002))//proxy ip
- proxy_ip = tlv.ulong();
- else if (tlv.cmp(0x0003))//client ip
- local_ip = tlv.ulong();
- else if (tlv.cmp(0x0004))//verified ip
- verified_ip = tlv.ulong();
- else if (tlv.cmp(0x0005))
- port=tlv.ushort();
+ TLV tlv2(snac.val(offset + i));
+ if (tlv2.cmp(0x000A))
+ request_num = tlv2.ushort();//for file transfer
+ else if (tlv2.cmp(0x0002))//proxy ip
+ proxy_ip = tlv2.ulong();
+ else if (tlv2.cmp(0x0003))//client ip
+ local_ip = tlv2.ulong();
+ else if (tlv2.cmp(0x0004))//verified ip
+ verified_ip = tlv2.ulong();
+ else if (tlv2.cmp(0x0005))
+ port = tlv2.ushort();
}
channel = 0;
break;
}
- else if (cap_cmp(snac.val(offset+10), AIM_CAP_CHAT) == 0) { //it's a chat invite request
- for(int i=26; i < tlv.len();) {
- TLV tlv(snac.val(offset+i));
- if (tlv.cmp(0x000c)) //optional message
- msg_buf = tlv.dup();
- else if (tlv.cmp(0x2711)) { //room information
- int cookie_len=tlv.ubyte(2);
- chatnav_param* par =
- new chatnav_param(tlv.part(3,cookie_len), tlv.ushort(), tlv.ushort(3+cookie_len),
- msg_buf, sn, icbm_cookie);
+ else if (cap_cmp(snac.val(offset + 10), AIM_CAP_CHAT) == 0) { //it's a chat invite request
+ for (int i = 26; i < tlv.len();) {
+ TLV tlv2(snac.val(offset + i));
+ if (tlv2.cmp(0x000c)) //optional message
+ msg_buf = tlv2.dup();
+ else if (tlv2.cmp(0x2711)) { //room information
+ int cookie_len = tlv2.ubyte(2);
+ chatnav_param* par =
+ new chatnav_param(tlv2.part(3, cookie_len), tlv2.ushort(), tlv2.ushort(3 + cookie_len),
+ msg_buf, sn, icbm_cookie);
invite_chat_req_param* chat_rq = new invite_chat_req_param(par, this, msg_buf, sn, icbm_cookie);
CallFunctionAsync(chat_request_cb, chat_rq);
}
- i+=TLV_HEADER_SIZE+tlv.len();
+ i += TLV_HEADER_SIZE + tlv2.len();
}
}
else {
@@ -1251,7 +1165,7 @@ void CAimProto::snac_received_message(SNAC &snac,HANDLE hServerConn,unsigned sho }
if (channel == 6 && tlv.cmp(0x0005))//audio/video tunnel
- msg_buf = tlv.dup();
+ msg_buf = tlv.dup();
if (tlv.cmp(0x0006))//Offline message flag
is_offline = true;
@@ -1281,13 +1195,11 @@ void CAimProto::snac_received_message(SNAC &snac,HANDLE hServerConn,unsigned sho ProtoChainRecvMsg(hMsgContact, &pre);
}
- if (m_iStatus==ID_STATUS_AWAY && !auto_response && !getByte(AIM_KEY_DM,0))
- {
+ if (m_iStatus == ID_STATUS_AWAY && !auto_response && !getByte(AIM_KEY_DM, 0)) {
unsigned long msg_time = getDword(hContact, AIM_KEY_LM, 0);
unsigned long away_time = getDword(AIM_KEY_LA, 0);
char** msgptr = get_status_msg_loc(m_iStatus);
- if (away_time > msg_time && *msgptr)
- {
+ if (away_time > msg_time && *msgptr) {
char* s_msg = process_status_msg(*msgptr, sn);
T2Utf away(TranslateT("[Auto-Response]:"));
@@ -1310,10 +1222,8 @@ void CAimProto::snac_received_message(SNAC &snac,HANDLE hServerConn,unsigned sho setDword(hContact, AIM_KEY_LM, (DWORD)time(NULL));
}
}
- else if (channel == 2) // File Transfer
- {
- if (rdz_msg_type == 0 && request_num == 1) //buddy wants to send us a file
- {
+ else if (channel == 2) { // File Transfer
+ if (rdz_msg_type == 0 && request_num == 1) { // buddy wants to send us a file
debugLogA("Buddy Wants to Send us a file. Request 1");
debugLogA(force_proxy ? "Forcing a Proxy File transfer." : "Not forcing Proxy File transfer.");
@@ -1329,11 +1239,11 @@ void CAimProto::snac_received_message(SNAC &snac,HANDLE hServerConn,unsigned sho ft->req_num = request_num;
ft->file = mir_strdup(filename);
-
+
ft->pfts.totalBytes = file_size;
ft->pfts.totalFiles = num_files;
- ft_list.insert(ft);
+ m_ft_list.insert(ft);
if (!descr_included) msg_buf = NULL;
@@ -1356,14 +1266,12 @@ void CAimProto::snac_received_message(SNAC &snac,HANDLE hServerConn,unsigned sho debugLogA("Verified IP: %s:%u", long_ip_to_char_ip(verified_ip, cip), port);
debugLogA("Proxy IP: %s:%u", long_ip_to_char_ip(proxy_ip, cip), port);
}
- else if (rdz_msg_type == 0)
- {
+ else if (rdz_msg_type == 0) {
debugLogA("We are sending a file. Buddy wants us to connect to them. Request %d", request_num);
debugLogA(force_proxy ? "Forcing a Proxy File transfer." : "Not forcing Proxy File transfer.");
- file_transfer* ft = ft_list.find_by_cookie(icbm_cookie, hContact);
- if (ft)
- {
+ file_transfer* ft = m_ft_list.find_by_cookie(icbm_cookie, hContact);
+ if (ft) {
ft->hContact = hContact;
ft->me_force_proxy |= (request_num > 2);
@@ -1383,31 +1291,26 @@ void CAimProto::snac_received_message(SNAC &snac,HANDLE hServerConn,unsigned sho ForkThread(&CAimProto::accept_file_thread, ft);
}
- else
- {
+ else {
debugLogA("Unknown File transfer, thus denied.");
aim_file_ad(hServerConn, seqno, sn, icbm_cookie, true, 0);
}
}
- else if (rdz_msg_type == 1)//buddy cancelled or denied file transfer
- {
+ else if (rdz_msg_type == 1) { // buddy cancelled or denied file transfer
debugLogA("File transfer cancelled or denied.");
- file_transfer* ft = ft_list.find_by_cookie(icbm_cookie, hContact);
+ file_transfer *ft = m_ft_list.find_by_cookie(icbm_cookie, hContact);
ProtoBroadcastAck(hContact, ACKTYPE_FILE, ACKRESULT_DENIED, ft, 0);
- ft_list.remove_by_ft(ft);
+ m_ft_list.remove_by_ft(ft);
}
- else if (rdz_msg_type == 2)//buddy accepts our file transfer request
- {
+ else if (rdz_msg_type == 2) { // buddy accepts our file transfer request
debugLogA("File transfer accepted");
- file_transfer* ft = ft_list.find_by_cookie(icbm_cookie, hContact);
- if (ft)
- {
- ft->accepted = true;
+ file_transfer *ft = m_ft_list.find_by_cookie(icbm_cookie, hContact);
+ if (ft) {
+ ft->accepted = true;
ft->max_ver = max_ver;
}
- else
- aim_file_ad(hServerConn, seqno, sn, icbm_cookie, true, 0);
+ else aim_file_ad(hServerConn, seqno, sn, icbm_cookie, true, 0);
}
}
else if (channel == 6) // Audio/Video call
@@ -1425,15 +1328,12 @@ void CAimProto::snac_received_message(SNAC &snac,HANDLE hServerConn,unsigned sho void CAimProto::snac_file_decline(SNAC &snac)//family 0x0004
{
- if (snac.subcmp(0x000b))
- {
+ if (snac.subcmp(0x000b)) {
char *icbm_cookie = snac.part(0, 8);
int channel = snac.ushort(8);
- if (channel == 0x01)
- {
+ if (channel == 0x01) {
int sn_len = snac.ubyte(10);
- char* sn = snac.part(11, sn_len);
-// int reason = snac.ushort(11 + sn_len);
+ char *sn = snac.part(11, sn_len);
MCONTACT hContact = contact_from_sn(sn);
msg_ack_param *msg_ack = (msg_ack_param*)mir_alloc(sizeof(msg_ack_param));
@@ -1443,24 +1343,23 @@ void CAimProto::snac_file_decline(SNAC &snac)//family 0x0004 msg_ack->success = false;
ForkThread(&CAimProto::msg_ack_success, msg_ack);
}
- if (channel == 0x02)
- {
+
+ if (channel == 0x02) {
int sn_len = snac.ubyte(10);
- char* sn = snac.part(11, sn_len);
+ char *sn = snac.part(11, sn_len);
int reason = snac.ushort(11 + sn_len);
- if (reason == 0x03)
- {
+ if (reason == 0x03) {
int error = snac.ushort(13 + sn_len);
- if (error == 0x02)
- {
+ if (error == 0x02) {
debugLogA("File Transfer declied");
MCONTACT hContact = contact_from_sn(sn);
- file_transfer *ft = ft_list.find_by_cookie(icbm_cookie, hContact);
- if (ft)
- {
+ file_transfer *ft = m_ft_list.find_by_cookie(icbm_cookie, hContact);
+ if (ft) {
ProtoBroadcastAck(hContact, ACKTYPE_FILE, ACKRESULT_DENIED, ft, 0);
- if (ft->hConn) Netlib_Shutdown(ft->hConn);
- else ft_list.remove_by_ft(ft);
+ if (ft->hConn)
+ Netlib_Shutdown(ft->hConn);
+ else
+ m_ft_list.remove_by_ft(ft);
}
}
}
@@ -1471,8 +1370,7 @@ void CAimProto::snac_file_decline(SNAC &snac)//family 0x0004 }
void CAimProto::snac_received_info(SNAC &snac)//family 0x0002
{
- if (snac.subcmp(0x0006))
- {
+ if (snac.subcmp(0x0006)) {
unsigned short offset = 0;
int i = 0;
bool away_message_received = false;
@@ -1486,38 +1384,32 @@ void CAimProto::snac_received_info(SNAC &snac)//family 0x0002 unsigned short tlv_count = snac.ushort(3 + sn_length);
offset = 5 + sn_length;
MCONTACT hContact = contact_from_sn(sn, true, true);
-
- while (offset < snac.len())
- {
+
+ while (offset < snac.len()) {
TLV tlv(snac.val(offset));
- if (++i > tlv_count)
- {
- if (tlv.cmp(0x0001))//profile encoding
- {
- char* enc = tlv.dup();
+ if (++i > tlv_count) {
+ if (tlv.cmp(0x0001)) { //profile encoding
+ char *enc = tlv.dup();
profile_unicode = strstr(enc, "unicode-2-0") != NULL;
profile_utf = strstr(enc, "utf-8") != NULL;
mir_free(enc);
}
- else if (tlv.cmp(0x0002))//profile message string
- {
- char* msg = profile_unicode ? tlv.dupw() : tlv.dup();
+ else if (tlv.cmp(0x0002)) { //profile message string
+ char *msg = profile_unicode ? tlv.dupw() : tlv.dup();
profile_received = true;
write_profile(sn, msg, profile_unicode | profile_utf);
mir_free(msg);
}
- else if (tlv.cmp(0x0003))//away message encoding
- {
- char* enc = tlv.dup();
+ else if (tlv.cmp(0x0003)) { //away message encoding
+ char *enc = tlv.dup();
away_message_unicode = strstr(enc, "unicode-2-0") != NULL;
away_message_utf = strstr(enc, "utf-8") != NULL;
mir_free(enc);
}
- else if (tlv.cmp(0x0004))//away message string
- {
- char* msg = away_message_unicode ? tlv.dupw() : tlv.dup();
+ else if (tlv.cmp(0x0004)) { // away message string
+ char *msg = away_message_unicode ? tlv.dupw() : tlv.dup();
away_message_received = true;
write_away_message(sn, msg, away_message_unicode | away_message_utf);
@@ -1526,56 +1418,49 @@ void CAimProto::snac_received_info(SNAC &snac)//family 0x0002 }
offset += TLV_HEADER_SIZE + tlv.len();
}
- if (hContact)
- {
- if (getWord(hContact,AIM_KEY_ST,ID_STATUS_OFFLINE) == ID_STATUS_AWAY)
- {
- if (!away_message_received && request_away_message)
- write_away_message(sn,Translate("No information has been provided by the server."),false);
- request_away_message = 0;
- }
- if (!profile_received&&request_HTML_profile)
- write_profile(sn,"No Profile",false);
- request_HTML_profile=0;
+ if (hContact) {
+ if (getWord(hContact, AIM_KEY_ST, ID_STATUS_OFFLINE) == ID_STATUS_AWAY) {
+ if (!away_message_received && m_request_away_message)
+ write_away_message(sn, Translate("No information has been provided by the server."), false);
+ m_request_away_message = 0;
+ }
+ if (!profile_received && m_request_HTML_profile)
+ write_profile(sn, "No Profile", false);
+ m_request_HTML_profile = 0;
}
mir_free(sn);
}
}
void CAimProto::snac_typing_notification(SNAC &snac)//family 0x004
{
- if (snac.subcmp(0x0014))
- {
- unsigned char sn_length=snac.ubyte(10);
- char* sn=snac.part(11,sn_length);
- MCONTACT hContact=contact_from_sn(sn);
- if (hContact)
- {
- unsigned short type=snac.ushort(11+sn_length);
- if (type==0x0000)//typing finished
- CallService(MS_PROTO_CONTACTISTYPING,hContact,(WPARAM)PROTOTYPE_CONTACTTYPING_OFF);
- else if (type==0x0001)//typed
- CallService(MS_PROTO_CONTACTISTYPING,hContact,PROTOTYPE_CONTACTTYPING_INFINITE);
- else if (type==0x0002)//typing
- CallService(MS_PROTO_CONTACTISTYPING,hContact,(LPARAM)60);
+ if (snac.subcmp(0x0014)) {
+ unsigned char sn_length = snac.ubyte(10);
+ char *sn = snac.part(11, sn_length);
+ MCONTACT hContact = contact_from_sn(sn);
+ if (hContact) {
+ unsigned short type = snac.ushort(11 + sn_length);
+ if (type == 0x0000)//typing finished
+ CallService(MS_PROTO_CONTACTISTYPING, hContact, (WPARAM)PROTOTYPE_CONTACTTYPING_OFF);
+ else if (type == 0x0001)//typed
+ CallService(MS_PROTO_CONTACTISTYPING, hContact, PROTOTYPE_CONTACTTYPING_INFINITE);
+ else if (type == 0x0002)//typing
+ CallService(MS_PROTO_CONTACTISTYPING, hContact, (LPARAM)60);
}
mir_free(sn);
}
}
void CAimProto::snac_list_modification_ack(SNAC &snac)//family 0x0013
{
- if (snac.subcmp(0x000e))
- {
+ if (snac.subcmp(0x000e)) {
unsigned short id = snac.id();
TLV tlv(snac.val(2));
unsigned short code = snac.ushort(6 + tlv.len());
-// ssi_queue.execute(this, code == 0);
- switch (id)
- {
+
+ switch (id) {
case 0x000a:
- switch (code)
- {
+ switch (code) {
case 0x0000:
-// ShowPopup(LPGEN("Successfully removed buddy from list."), ERROR_POPUP);
+ // ShowPopup(LPGEN("Successfully removed buddy from list."), ERROR_POPUP);
break;
case 0x0002:
@@ -1591,10 +1476,9 @@ void CAimProto::snac_list_modification_ack(SNAC &snac)//family 0x0013 break;
case 0x0008:
- switch (code)
- {
+ switch (code) {
case 0x0000:
-// ShowPopup("Successfully added buddy to list.", ERROR_POPUP);
+ // ShowPopup("Successfully added buddy to list.", ERROR_POPUP);
break;
case 0x0003:
@@ -1626,11 +1510,9 @@ void CAimProto::snac_list_modification_ack(SNAC &snac)//family 0x0013 break;
case 0x0009:
- switch (code)
- {
+ switch (code) {
case 0x0000:
case 0x000e:
-// ShowPopup(LPGEN("Successfully modified group."), ERROR_POPUP);
break;
case 0x0002:
@@ -1650,112 +1532,88 @@ void CAimProto::snac_list_modification_ack(SNAC &snac)//family 0x0013 void CAimProto::snac_service_redirect(SNAC &snac)//family 0x0001
{
- if (snac.subcmp(0x0005))
- {
- char* server=NULL;
- char* local_cookie=NULL;
- char* host=NULL;
- int local_cookie_length=0;
- unsigned short family=0;
- unsigned char use_ssl=0;
-
- int offset=2; // skip number of bytes in family version tlv
- while (offset < snac.len())
- {
+ if (snac.subcmp(0x0005)) {
+ char* server = NULL;
+ char* local_cookie = NULL;
+ char* host = NULL;
+ int local_cookie_length = 0;
+ unsigned short family = 0;
+ unsigned char use_ssl = 0;
+
+ int offset = 2; // skip number of bytes in family version tlv
+ while (offset < snac.len()) {
TLV tlv(snac.val(offset));
- if (tlv.cmp(0x000d))
- {
- family=tlv.ushort();
+ if (tlv.cmp(0x000d)) {
+ family = tlv.ushort();
}
- else if (tlv.cmp(0x0005))
- {
- server=tlv.dup();
+ else if (tlv.cmp(0x0005)) {
+ server = tlv.dup();
}
- else if (tlv.cmp(0x0006))
- {
- local_cookie=tlv.dup();
- local_cookie_length=tlv.len();
+ else if (tlv.cmp(0x0006)) {
+ local_cookie = tlv.dup();
+ local_cookie_length = tlv.len();
}
- else if (tlv.cmp(0x008d))
- {
- host=tlv.dup();
+ else if (tlv.cmp(0x008d)) {
+ host = tlv.dup();
}
- else if (tlv.cmp(0x008e))
- {
- use_ssl=tlv.ubyte();
+ else if (tlv.cmp(0x008e)) {
+ use_ssl = tlv.ubyte();
}
- offset+=TLV_HEADER_SIZE+tlv.len();
+ offset += TLV_HEADER_SIZE + tlv.len();
}
- if (family == 0x0018)
- {
- hMailConn = aim_connect(server, get_default_port(), false/*use_ssl != 0*/, host);
- if (hMailConn)
- {
+ if (family == 0x0018) {
+ m_hMailConn = aim_connect(server, get_default_port(), false/*use_ssl != 0*/, host);
+ if (m_hMailConn) {
debugLogA("Successfully Connected to the Mail Server.");
- MAIL_COOKIE=local_cookie;
- MAIL_COOKIE_LENGTH=local_cookie_length;
- ForkThread( &CAimProto::aim_mail_negotiation, 0 );
+ MAIL_COOKIE = local_cookie;
+ MAIL_COOKIE_LENGTH = local_cookie_length;
+ ForkThread(&CAimProto::aim_mail_negotiation, 0);
}
- else
- debugLogA("Failed to connect to the Mail Server.");
+ else debugLogA("Failed to connect to the Mail Server.");
}
- else if (family == 0x0010)
- {
- hAvatarConn = aim_connect(server, get_default_port(), false/*use_ssl != 0*/);
- if (hAvatarConn)
- {
+ else if (family == 0x0010) {
+ m_hAvatarConn = aim_connect(server, get_default_port(), false/*use_ssl != 0*/);
+ if (m_hAvatarConn) {
debugLogA("Successfully Connected to the Avatar Server.");
AVATAR_COOKIE = local_cookie;
AVATAR_COOKIE_LENGTH = local_cookie_length;
- ForkThread( &CAimProto::aim_avatar_negotiation, 0 );
+ ForkThread(&CAimProto::aim_avatar_negotiation, 0);
}
- else
- debugLogA("Failed to connect to the Avatar Server.");
+ else debugLogA("Failed to connect to the Avatar Server.");
}
- else if (family == 0x000D)
- {
- hChatNavConn = aim_connect(server, get_default_port(), use_ssl != 0, host);
- if (hChatNavConn)
- {
+ else if (family == 0x000D) {
+ m_hChatNavConn = aim_connect(server, get_default_port(), use_ssl != 0, host);
+ if (m_hChatNavConn) {
debugLogA("Successfully Connected to the Chat Navigation Server.");
CHATNAV_COOKIE = local_cookie;
CHATNAV_COOKIE_LENGTH = local_cookie_length;
- ForkThread( &CAimProto::aim_chatnav_negotiation, 0 );
+ ForkThread(&CAimProto::aim_chatnav_negotiation, 0);
}
- else
- debugLogA("Failed to connect to the Chat Navigation Server.");
-
+ else debugLogA("Failed to connect to the Chat Navigation Server.");
}
- else if (family == 0x000E)
- {
+ else if (family == 0x000E) {
chat_list_item* item = find_chat_by_cid(snac.idh());
- if (item)
- {
+ if (item) {
item->hconn = aim_connect(server, get_default_port(), use_ssl != 0, host);
- if (item->hconn)
- {
+ if (item->hconn) {
debugLogA("Successfully Connected to the Chat Server.");
chat_start(item->id, item->exchange);
item->CHAT_COOKIE = local_cookie;
item->CHAT_COOKIE_LENGTH = local_cookie_length;
- ForkThread( &CAimProto::aim_chat_negotiation, item );
+ ForkThread(&CAimProto::aim_chat_negotiation, item);
}
- else
- debugLogA("Failed to connect to the Chat Server.");
+ else debugLogA("Failed to connect to the Chat Server.");
}
}
- else if (family == 0x0007)
- {
- hAdminConn = aim_connect(server, get_default_port(), false /*use_ssl != 0*/);
- if (hAdminConn)
- {
+ else if (family == 0x0007) {
+ m_hAdminConn = aim_connect(server, get_default_port(), false /*use_ssl != 0*/);
+ if (m_hAdminConn) {
debugLogA("Successfully Connected to the Admin Server.");
ADMIN_COOKIE = local_cookie;
ADMIN_COOKIE_LENGTH = local_cookie_length;
- ForkThread( &CAimProto::aim_admin_negotiation, 0 );
+ ForkThread(&CAimProto::aim_admin_negotiation, 0);
}
- else
- debugLogA("Failed to connect to the Admin Server.");
+ else debugLogA("Failed to connect to the Admin Server.");
}
mir_free(server);
mir_free(host);
@@ -1764,8 +1622,7 @@ void CAimProto::snac_service_redirect(SNAC &snac)//family 0x0001 void CAimProto::snac_mail_response(SNAC &snac)//family 0x0018
{
- if (snac.subcmp(0x0007))
- {
+ if (snac.subcmp(0x0007)) {
char* sn = NULL;
time_t time = 0;
unsigned short num_msgs = 0;
@@ -1776,45 +1633,36 @@ void CAimProto::snac_mail_response(SNAC &snac)//family 0x0018 int position = 26;
int num_tlvs = snac.ushort(24);
- for (int i = 0; i < num_tlvs; i++)
- {
+ for (int i = 0; i < num_tlvs; i++) {
TLV tlv(snac.val(position));
- if (tlv.cmp(0x0009))
- {
+ if (tlv.cmp(0x0009)) {
sn = tlv.dup();
}
- else if (tlv.cmp(0x001d))
- {
+ else if (tlv.cmp(0x001d)) {
time = tlv.ulong();
}
- else if (tlv.cmp(0x0080))
- {
+ else if (tlv.cmp(0x0080)) {
num_msgs = tlv.ushort();
}
- else if (tlv.cmp(0x0081))
- {
+ else if (tlv.cmp(0x0081)) {
new_mail = tlv.ubyte();
}
- else if (tlv.cmp(0x0084))
- {
+ else if (tlv.cmp(0x0084)) {
flags = tlv.ushort();
}
- else if (tlv.cmp(0x0007))
- {
+ else if (tlv.cmp(0x0007)) {
url = tlv.dup();
}
- else if (tlv.cmp(0x0082))
- {
+ else if (tlv.cmp(0x0082)) {
address = tlv.dup();
}
position += TLV_HEADER_SIZE + tlv.len();
}
- if (new_mail && num_msgs)
- {
+ if (new_mail && num_msgs) {
TCHAR msg[1024];
int len = mir_sntprintf(msg, _countof(msg), _T("%S@%S (%d)\r\n%s "), sn, address, num_msgs,
- TranslateT("You've got mail! Checked at")) ;
+ TranslateT("You've got mail! Checked at"));
SYSTEMTIME stLocal;
GetLocalTime(&stLocal);
@@ -1827,22 +1675,22 @@ void CAimProto::snac_mail_response(SNAC &snac)//family 0x0018 mir_free(url);
}
}
+
void CAimProto::snac_retrieve_avatar(SNAC &snac)//family 0x0010
{
- if (snac.subcmp(0x0007))
- {
+ if (snac.subcmp(0x0007)) {
int sn_len = snac.ubyte(0);
char* sn = snac.part(1, sn_len);
int parse_off = sn_len + 4;
parse_off += snac.ubyte(parse_off);
- int hash_size=snac.ubyte(5+parse_off);
- char* hash_string=bytes_to_string(snac.val(6+parse_off), hash_size);
- parse_off += hash_size + 6;
+ int hash_size = snac.ubyte(5 + parse_off);
+ char* hash_string = bytes_to_string(snac.val(6 + parse_off), hash_size);
+ parse_off += hash_size + 6;
- int icon_length=snac.ushort(parse_off);
- char* icon_data=snac.val(parse_off+2);
+ int icon_length = snac.ushort(parse_off);
+ char* icon_data = snac.val(parse_off + 2);
avatar_retrieval_handler(sn, hash_string, icon_data, icon_length);
@@ -1852,12 +1700,10 @@ void CAimProto::snac_retrieve_avatar(SNAC &snac)//family 0x0010 }
void CAimProto::snac_upload_reply_avatar(SNAC &snac)//family 0x0010
{
- if (snac.subcmp(0x0003))
- {
+ if (snac.subcmp(0x0003)) {
int code = snac.ubyte(0);
- switch (code)
- {
- case 0:
+ switch (code) {
+ case 0:
break;
case 3:
ShowPopup(LPGEN("Error uploading avatar. (Too small)"), ERROR_POPUP);
@@ -1879,54 +1725,47 @@ void CAimProto::snac_upload_reply_avatar(SNAC &snac)//family 0x0010 }
void CAimProto::snac_email_search_results(SNAC &snac)//family 0x000A
{
- if (snac.subcmp(0x0003)) // Found some buddies
- {
- PROTOSEARCHRESULT psr = {0};
+ if (snac.subcmp(0x0003)) { // Found some buddies
+ PROTOSEARCHRESULT psr = { 0 };
psr.cbSize = sizeof(psr);
- unsigned short offset=0;
- while(offset<snac.len()) // Loop through all the TLVs and pull out the buddy name
- {
+ unsigned short offset = 0;
+ while (offset < snac.len()) { // Loop through all the TLVs and pull out the buddy name
TLV tlv(snac.val(offset));
- offset+=TLV_HEADER_SIZE;
+ offset += TLV_HEADER_SIZE;
psr.id.t = (TCHAR*)tlv.dup();
- offset+=tlv.len();
- ProtoBroadcastAck(NULL, ACKTYPE_SEARCH, ACKRESULT_DATA, (HANDLE) 1, (LPARAM) & psr);
+ offset += tlv.len();
+ ProtoBroadcastAck(NULL, ACKTYPE_SEARCH, ACKRESULT_DATA, (HANDLE)1, (LPARAM)& psr);
mir_free(psr.nick.t);
}
- ProtoBroadcastAck(NULL, ACKTYPE_SEARCH, ACKRESULT_SUCCESS, (HANDLE) 1, 0);
+ ProtoBroadcastAck(NULL, ACKTYPE_SEARCH, ACKRESULT_SUCCESS, (HANDLE)1, 0);
}
else // If no match, stop the search.
- CAimProto::ProtoBroadcastAck(NULL, ACKTYPE_SEARCH, ACKRESULT_SUCCESS, (HANDLE) 1, 0);
+ CAimProto::ProtoBroadcastAck(NULL, ACKTYPE_SEARCH, ACKRESULT_SUCCESS, (HANDLE)1, 0);
}
-void CAimProto::snac_chatnav_info_response(SNAC &snac,HANDLE hServerConn,unsigned short &seqno)//family 0x000D
+void CAimProto::snac_chatnav_info_response(SNAC &snac, HANDLE hServerConn, unsigned short &seqno)//family 0x000D
{
- if (snac.subcmp(0x0009))
- {
+ if (snac.subcmp(0x0009)) {
debugLogA("Chat Info Received");
- unsigned short offset_info=0;
- while (offset_info < snac.len()) // Loop through all the TLVs and pull out the buddy name
- {
+ unsigned short offset_info = 0;
+ while (offset_info < snac.len()) { // Loop through all the TLVs and pull out the buddy name
TLV info_tlv(snac.val(offset_info));
if (info_tlv.cmp(0x0001)) // Redirect
{
- // char redirect = info_tlv.ubyte();
}
- else if (info_tlv.cmp(0x0002)) // Max Concurrent Rooms (usually 10)
- {
+ else if (info_tlv.cmp(0x0002)) { // Max Concurrent Rooms (usually 10)
// This typecasting pointer to number and as such bogus
MAX_ROOMS = info_tlv.ubyte();
- aim_chatnav_ready(hServerConn,seqno);
- SetEvent(hChatNavEvent);
+ aim_chatnav_ready(hServerConn, seqno);
+ SetEvent(m_hChatNavEvent);
}
else if (info_tlv.cmp(0x0003)) // Exchanges
{
}
- else if (info_tlv.cmp(0x0004)) // Room Info
- {
+ else if (info_tlv.cmp(0x0004)) { // Room Info
// Main TLV info
unsigned short exchange = 0;
unsigned short cookie_len = 0;
@@ -1937,52 +1776,29 @@ void CAimProto::snac_chatnav_info_response(SNAC &snac,HANDLE hServerConn,unsigne exchange = info_tlv.ushort(0); // Exchange
cookie_len = info_tlv.ubyte(2); // Cookie Length
- cookie = info_tlv.part(3,cookie_len); // Cookie String
- instance = info_tlv.ushort(3+cookie_len); // Instance
- num_tlv = info_tlv.ushort(6+cookie_len); // Number of TLVs
- tlv_offset = 8+cookie_len; // We're looking at any remaining TLVs
+ cookie = info_tlv.part(3, cookie_len); // Cookie String
+ instance = info_tlv.ushort(3 + cookie_len); // Instance
+ num_tlv = info_tlv.ushort(6 + cookie_len); // Number of TLVs
+ tlv_offset = 8 + cookie_len; // We're looking at any remaining TLVs
char* name = 0;
-/*
- unsigned short max_occupancy = 0;
- char* fqn = 0;
- unsigned short flags = 0;
- unsigned long create_time = 0;
- unsigned short max_msg_len = 0;
- unsigned char create_perms = 0;
-*/
for (int i = 0; i < num_tlv; i++) // Loop through all the TLVs
{
TLV tlv(info_tlv.val() + tlv_offset);
-
+
// TLV List
if (tlv.cmp(0x00d3))
name = tlv.dup();
-/*
- else if (tlv.cmp(0x00d2))
- max_occupancy = tlv.ushort();
- else if (tlv.cmp(0x006a))
- fqn = tlv.dup();
- else if (tlv.cmp(0x00c9))
- flags = tlv.ushort();
- else if (tlv.cmp(0x00ca))
- create_time = tlv.ulong();
- else if (tlv.cmp(0x00d1))
- max_msg_len = tlv.ushort();
- else if (tlv.cmp(0x00d5))
- create_perms = tlv.ubyte();
-*/
- tlv_offset+=TLV_HEADER_SIZE+tlv.len();
+ tlv_offset += TLV_HEADER_SIZE + tlv.len();
}
chat_list_item *item = find_chat_by_id(name);
- if (item == NULL)
- {
- item = new chat_list_item(name, cookie, exchange, instance);
- chat_rooms.insert(item);
+ if (item == NULL) {
+ item = new chat_list_item(name, cookie, exchange, instance);
+ m_chat_rooms.insert(item);
//Join the actual room
- aim_chat_join_room(CAimProto::hServerConn, CAimProto::seqno, cookie, exchange, instance, item->cid);
+ aim_chat_join_room(m_hServerConn, m_seqno, cookie, exchange, instance, item->cid);
}
mir_free(name);
@@ -1992,148 +1808,89 @@ void CAimProto::snac_chatnav_info_response(SNAC &snac,HANDLE hServerConn,unsigne }
}
}
-void CAimProto::snac_chat_joined_left_users(SNAC &snac,chat_list_item* item)//family 0x000E
-{ // Handles both joining and leaving users.
- if (snac.subcmp(0x0003) || snac.subcmp(0x0004))
- {
+void CAimProto::snac_chat_joined_left_users(SNAC &snac, chat_list_item* item)//family 0x000E
+{
+ // Handles both joining and leaving users.
+ if (snac.subcmp(0x0003) || snac.subcmp(0x0004)) {
int offset = 0;
- while (offset < snac.len())
- {
+ while (offset < snac.len()) {
int sn_len = snac.ubyte(offset);
- char* sn = snac.part(offset+1, sn_len); // Most important part (screenname)
+ char* sn = snac.part(offset + 1, sn_len); // Most important part (screenname)
chat_event(item->id, sn, snac.subcmp(0x0003) ? GC_EVENT_JOIN : GC_EVENT_PART);
mir_free(sn);
-// int warning = snac.ushort(offset+1+sn_len);
- int num_tlv = snac.ushort(offset+3+sn_len);
- offset += 5+sn_len; // We're looking at any remaining TLVs
-/*
- unsigned short user_class = 0;
- unsigned long idle_time = 0;
- unsigned long signon_time = 0;
- unsigned long creation_time = 0; // Server uptime?
-*/
- for (int i = 0; i < num_tlv; i++) // Loop through all the TLVs
- {
+ int num_tlv = snac.ushort(offset + 3 + sn_len);
+ offset += 5 + sn_len; // We're looking at any remaining TLVs
+
+ for (int i = 0; i < num_tlv; i++) { // Loop through all the TLVs
TLV tlv(snac.val(offset));
-/*
- if (tlv.cmp(0x0001))
- user_class = tlv.ushort();
- else if (tlv.cmp(0x0003))
- signon_time = tlv.ulong();
- else if (tlv.cmp(0x0005))
- creation_time = tlv.ulong();
- else if (tlv.cmp(0x000F))
- idle_time = tlv.ulong();
-*/
offset += TLV_HEADER_SIZE + tlv.len();
}
}
- }
+ }
}
-void CAimProto::snac_chat_received_message(SNAC &snac,chat_list_item* item)//family 0x000E
+void CAimProto::snac_chat_received_message(SNAC &snac, chat_list_item* item)//family 0x000E
{
- if (snac.subcmp(0x0006))
- {
+ if (snac.subcmp(0x0006)) {
TCHAR* message = NULL;
char* sn = NULL;
-// unsigned long cookie = snac.ulong(0);
-// unsigned short channel = snac.ushort(8);
+ // unsigned long cookie = snac.ulong(0);
+ // unsigned short channel = snac.ushort(8);
int tlv_offset = 10;
- while (tlv_offset < snac.len())
- {
+ while (tlv_offset < snac.len()) {
TLV tlv(snac.val(tlv_offset));
- if (tlv.cmp(0x0003)) // Sender information
- {
+ if (tlv.cmp(0x0003)) { // Sender information
int sn_len = tlv.ubyte(0);
sn = tlv.part(1, sn_len);
- /*
- unsigned short warning = tlv.ushort(1+sn_len);
- int num_tlv = tlv.ushort(3+sn_len);
-
- int offset = 19 + sn_len;
-
- unsigned short user_class = 0;
- unsigned long idle_time = 0;
- unsigned long signon_time = 0;
- unsigned long creation_time = 0; //Server uptime?
-
- for (int i = 0; i < num_tlv; i++) // Loop through all the TLVs
- {
- TLV info_tlv(tlv.val() + offset);
-
- // TLV List
- if (info_tlv.cmp(0x0001))
- user_class = info_tlv.ushort();
- else if (info_tlv.cmp(0x0003))
- signon_time = info_tlv.ulong();
- else if (info_tlv.cmp(0x0005))
- creation_time = info_tlv.ulong();
- else if (info_tlv.cmp(0x000F))
- idle_time = info_tlv.ulong();
-
- offset += TLV_HEADER_SIZE + info_tlv.len();
- }
- */
}
- else if (tlv.cmp(0x0001)) // Public/Whisper flag
+ else if (tlv.cmp(0x0001)) // Public/Whisper flag
{
}
- else if (tlv.cmp(0x0005)) // Message information
- {
+ else if (tlv.cmp(0x0005)) { // Message information
bool uni = false;
bool utf = false;
-// char* language = NULL;
int offset = 0;
- while (offset < tlv.len())
- {
+ while (offset < tlv.len()) {
TLV msg_tlv(tlv.val() + offset);
-
+
// TLV List
- if (msg_tlv.cmp(0x0001))
- {
- if (uni)
- {
+ if (msg_tlv.cmp(0x0001)) {
+ if (uni) {
char* msg = msg_tlv.dupw();
html_decode(msg);
- message = mir_utf8decodeT(msg);
+ message = mir_utf8decodeT(msg);
mir_free(msg);
}
- else if (utf)
- {
+ else if (utf) {
char* msg = msg_tlv.dup();
html_decode(msg);
message = mir_utf8decodeT(msg);
mir_free(msg);
}
- else
- {
+ else {
char* msg = msg_tlv.dup();
html_decode(msg);
message = mir_a2t(msg);
mir_free(msg);
}
}
- else if (msg_tlv.cmp(0x0002))
- {
+ else if (msg_tlv.cmp(0x0002)) {
char* enc = msg_tlv.dup();
uni = strstr(enc, "unicode-2-0") != NULL;
utf = strstr(enc, "utf-8") != NULL;
mir_free(enc);
}
-// else if (msg_tlv.cmp(0x0003))
-// language = msg_tlv.dup();
offset += TLV_HEADER_SIZE + msg_tlv.len();
}
}
-
+
tlv_offset += TLV_HEADER_SIZE + tlv.len();
}
@@ -2144,76 +1901,63 @@ void CAimProto::snac_chat_received_message(SNAC &snac,chat_list_item* item)//fam }
}
-void CAimProto::snac_admin_rate_limitations(SNAC &snac,HANDLE hServerConn,unsigned short &seqno)// family 0x0001
+void CAimProto::snac_admin_rate_limitations(SNAC &snac, HANDLE hServerConn, unsigned short &seqno)// family 0x0001
{
- if (snac.subcmp(0x0007))
- {
- aim_accept_rates(hServerConn,seqno);
- aim_admin_ready(hServerConn,seqno);
- SetEvent(hAdminEvent);
+ if (snac.subcmp(0x0007)) {
+ aim_accept_rates(hServerConn, seqno);
+ aim_admin_ready(hServerConn, seqno);
+ SetEvent(m_hAdminEvent);
}
}
-void CAimProto::snac_admin_account_infomod(SNAC &snac)//family 0x0007
+void CAimProto::snac_admin_account_infomod(SNAC &snac) //family 0x0007
{
- if (snac.subcmp(0x0003) || snac.subcmp(0x0005)) // Handles info response and modification response
- {
+ if (snac.subcmp(0x0003) || snac.subcmp(0x0005)) { // Handles info response and modification response
bool err = false;
bool req_email = false;
- unsigned short perms = 0;
- unsigned short num_tlv = 0;
-
- perms = snac.ushort(); // Permissions
- num_tlv = snac.ushort(2); // Number of TLVs
- char* sn = NULL; // Screen Name
- char* email = NULL; // Email address
- //unsigned short status = 0; // Account status
+ WORD num_tlv = snac.ushort(2); // Number of TLVs
+
+ char *sn = NULL; // Screen Name
+ char *email = NULL; // Email address
unsigned short offset = 0;
for (int i = 0; i < num_tlv; i++) // Loop through all the TLVs
{
- TLV tlv(snac.val(4+offset));
-
+ TLV tlv(snac.val(4 + offset));
+
// TLV List
if (tlv.cmp(0x0001))
sn = tlv.dup();
- if (tlv.cmp(0x0011))
- {
+
+ if (tlv.cmp(0x0011)) {
req_email = true;
email = tlv.dup();
}
- //if (tlv.cmp(0x0013))
- // status = tlv.ushort();
- if (tlv.cmp(0x0008)) // Handles any problems when requesting/changing information
- {
+
+ if (tlv.cmp(0x0008)) { // Handles any problems when requesting/changing information
err = true;
admin_error(tlv.ushort());
}
- //if (tlv.cmp(0x0004))
- //error description
offset += TLV_HEADER_SIZE + tlv.len();
}
- if (snac.subcmp(0x0003) && !err) // Requested info
- {
+ if (snac.subcmp(0x0003) && !err) { // Requested info
// Display messages
if (email)
- setString(AIM_KEY_EM,email); // Save our email for future reference.
+ setString(AIM_KEY_EM, email); // Save our email for future reference.
if (sn)
- setString(AIM_KEY_SN,sn); // Update the database to reflect the formatted name.
- ProtoBroadcastAck( NULL, ACKTYPE_GETINFO, ACKRESULT_SUCCESS, (HANDLE)1, 0 );
-
+ setString(AIM_KEY_SN, sn); // Update the database to reflect the formatted name.
+ ProtoBroadcastAck(NULL, ACKTYPE_GETINFO, ACKRESULT_SUCCESS, (HANDLE)1, 0);
+
}
- else if (snac.subcmp(0x0005) && !err) // Changed info
- {
+ else if (snac.subcmp(0x0005) && !err) { // Changed info
// Display messages
if (email && req_email) // We requested to change the email
ShowPopup(LPGEN("A confirmation message has been sent to the new email address. Please follow its instructions."), 0);
- else if (sn)
- {
- setString(AIM_KEY_SN,sn); // Update the database to reflect the formatted name.
+ else if (sn) {
+ setString(AIM_KEY_SN, sn); // Update the database to reflect the formatted name.
//ShowPopup("Your Screen Name has been successfully formatted.", 0);
}
}
@@ -2224,14 +1968,12 @@ void CAimProto::snac_admin_account_infomod(SNAC &snac)//family 0x0007 void CAimProto::snac_admin_account_confirm(SNAC &snac)//family 0x0007
{
- if (snac.subcmp(0x0007))
- {
+ if (snac.subcmp(0x0007)) {
unsigned short status = 0;
status = snac.ushort();
- switch (status)
- {
+ switch (status) {
case 0:
ShowPopup(LPGEN("A confirmation message has been sent to your email address. Please follow its instructions."), 0);
break;
@@ -2248,34 +1990,5 @@ void CAimProto::snac_admin_account_confirm(SNAC &snac)//family 0x0007 ShowPopup(LPGEN("Can't start the confirmation procedure."), 0);
break;
}
-
- //TLV tlv(snac.val(2));
- //if (tlv.cmp(0x0004))
- //error description
}
}
-
-
-/*void CAimProto::snac_delete_contact(SNAC &snac, char* buf)//family 0x0013
-{
- if (snac.subcmp(0x000a))
- {
- char sn[33];
- int sn_length=buf[SNAC_SIZE*2];
- MCONTACT hContact;
- memset(sn, 0, sizeof(sn));
- memcpy(sn,&buf[SNAC_SIZE*2+1],sn_length);
- hContact=find_contact(sn);
- if (hContact)
- {
- unsigned short* type=(unsigned short*)&buf[SNAC_SIZE*2+1+sn_length];
- *type=htons(*type);
- if (*type==0x0000)//typing finished
- CallService(MS_PROTO_CONTACTISTYPING,hContact,(WPARAM)PROTOTYPE_CONTACTTYPING_OFF);
- else if (*type==0x0001)//typed
- CallService(MS_PROTO_CONTACTISTYPING,hContact,PROTOTYPE_CONTACTTYPING_INFINITE);
- else if (*type==0x0002)//typing
- CallService(MS_PROTO_CONTACTISTYPING,hContact,(LPARAM)60);
- }
- }
-}*/
diff --git a/protocols/AimOscar/src/services.cpp b/protocols/AimOscar/src/services.cpp index cfa55973a1..27fe595f9a 100644 --- a/protocols/AimOscar/src/services.cpp +++ b/protocols/AimOscar/src/services.cpp @@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "stdafx.h"
-INT_PTR CAimProto::GetMyAwayMsg(WPARAM wParam,LPARAM lParam)
+INT_PTR CAimProto::GetMyAwayMsg(WPARAM wParam, LPARAM lParam)
{
char** msgptr = get_status_msg_loc(wParam ? wParam : m_iStatus);
if (msgptr == NULL) return 0;
@@ -28,21 +28,19 @@ INT_PTR CAimProto::GetMyAwayMsg(WPARAM wParam,LPARAM lParam) int CAimProto::OnIdleChanged(WPARAM, LPARAM lParam)
{
- if (state != 1)
- {
- idle=0;
+ if (m_state != 1) {
+ m_idle = 0;
return 0;
}
- if (instantidle) //ignore- we are instant idling at the moment
+ if (m_instantidle) //ignore- we are instant idling at the moment
return 0;
bool bIdle = (lParam & IDF_ISIDLE) != 0;
bool bPrivacy = (lParam & IDF_PRIVACY) != 0;
- if (bPrivacy && idle)
- {
- aim_set_idle(hServerConn,seqno,0);
+ if (bPrivacy && m_idle) {
+ aim_set_idle(m_hServerConn, m_seqno, 0);
return 0;
}
@@ -54,31 +52,29 @@ int CAimProto::OnIdleChanged(WPARAM, LPARAM lParam) MIRANDA_IDLE_INFO mii = { sizeof(mii) };
CallService(MS_IDLE_GETIDLEINFO, 0, (LPARAM)&mii);
- idle = 1;
- aim_set_idle(hServerConn,seqno,mii.idleTime * 60);
+ m_idle = 1;
+ aim_set_idle(m_hServerConn, m_seqno, mii.idleTime * 60);
}
- else aim_set_idle(hServerConn,seqno,0);
+ else aim_set_idle(m_hServerConn, m_seqno, 0);
return 0;
}
int CAimProto::OnWindowEvent(WPARAM, LPARAM lParam)
{
- MessageWindowEventData* msgEvData = (MessageWindowEventData*)lParam;
+ MessageWindowEventData* msgEvData = (MessageWindowEventData*)lParam;
- if (msgEvData->uType == MSG_WINDOW_EVT_CLOSE)
- {
- if (state != 1 || !is_my_contact(msgEvData->hContact))
+ if (msgEvData->uType == MSG_WINDOW_EVT_CLOSE) {
+ if (m_state != 1 || !is_my_contact(msgEvData->hContact))
return 0;
if (getWord(msgEvData->hContact, AIM_KEY_ST, ID_STATUS_OFFLINE) == ID_STATUS_ONTHEPHONE)
return 0;
DBVARIANT dbv;
- if (!getBool(msgEvData->hContact, AIM_KEY_BLS, false) && !getString(msgEvData->hContact, AIM_KEY_SN, &dbv))
- {
+ if (!getBool(msgEvData->hContact, AIM_KEY_BLS, false) && !getString(msgEvData->hContact, AIM_KEY_SN, &dbv)) {
if (_stricmp(dbv.pszVal, SYSTEM_BUDDY))
- aim_typing_notification(hServerConn, seqno, dbv.pszVal, 0x000f);
+ aim_typing_notification(m_hServerConn, m_seqno, dbv.pszVal, 0x000f);
db_free(&dbv);
}
}
@@ -87,13 +83,13 @@ int CAimProto::OnWindowEvent(WPARAM, LPARAM lParam) INT_PTR CAimProto::GetProfile(WPARAM wParam, LPARAM)
{
- if (state != 1)
+ if (m_state != 1)
return 0;
DBVARIANT dbv;
if (!getString(wParam, AIM_KEY_SN, &dbv)) {
- request_HTML_profile = 1;
- aim_query_profile(hServerConn, seqno, dbv.pszVal);
+ m_request_HTML_profile = 1;
+ aim_query_profile(m_hServerConn, m_seqno, dbv.pszVal);
db_free(&dbv);
}
return 0;
@@ -101,14 +97,13 @@ INT_PTR CAimProto::GetProfile(WPARAM wParam, LPARAM) INT_PTR CAimProto::GetHTMLAwayMsg(WPARAM wParam, LPARAM)
{
- if (state != 1)
+ if (m_state != 1)
return 0;
DBVARIANT dbv;
- if (!getString(wParam, AIM_KEY_SN, &dbv))
- {
- request_away_message = 1;
- aim_query_away_message(hServerConn, seqno, dbv.pszVal);
+ if (!getString(wParam, AIM_KEY_SN, &dbv)) {
+ m_request_away_message = 1;
+ aim_query_away_message(m_hServerConn, m_seqno, dbv.pszVal);
}
return 0;
}
@@ -117,15 +112,11 @@ int CAimProto::OnDbSettingChanged(WPARAM hContact, LPARAM lParam) {
DBCONTACTWRITESETTING *cws = (DBCONTACTWRITESETTING*)lParam;
- if (mir_strcmp(cws->szModule, MOD_KEY_CL) == 0 && state == 1 && hContact)
- {
- if (mir_strcmp(cws->szSetting, AIM_KEY_NL) == 0)
- {
- if (cws->value.type == DBVT_DELETED)
- {
+ if (mir_strcmp(cws->szModule, MOD_KEY_CL) == 0 && m_state == 1 && hContact) {
+ if (mir_strcmp(cws->szSetting, AIM_KEY_NL) == 0) {
+ if (cws->value.type == DBVT_DELETED) {
DBVARIANT dbv;
- if (!db_get_utf(hContact, MOD_KEY_CL, OTH_KEY_GP, &dbv) && dbv.pszVal[0])
- {
+ if (!db_get_utf(hContact, MOD_KEY_CL, OTH_KEY_GP, &dbv) && dbv.pszVal[0]) {
add_contact_to_group(hContact, dbv.pszVal);
db_free(&dbv);
}
@@ -133,11 +124,9 @@ int CAimProto::OnDbSettingChanged(WPARAM hContact, LPARAM lParam) add_contact_to_group(hContact, AIM_DEFAULT_GROUP);
}
}
- else if (mir_strcmp(cws->szSetting, "MyHandle") == 0)
- {
- char* name;
- switch (cws->value.type)
- {
+ else if (mir_strcmp(cws->szSetting, "MyHandle") == 0) {
+ char *name;
+ switch (cws->value.type) {
case DBVT_DELETED:
set_local_nick(hContact, NULL, NULL);
break;
@@ -166,28 +155,26 @@ int CAimProto::OnDbSettingChanged(WPARAM hContact, LPARAM lParam) int CAimProto::OnContactDeleted(WPARAM hContact, LPARAM)
{
- if (state != 1) return 0;
+ if (m_state != 1)
+ return 0;
if (db_get_b(hContact, MOD_KEY_CL, AIM_KEY_NL, 0))
return 0;
DBVARIANT dbv;
- if (!getString(hContact, AIM_KEY_SN, &dbv))
- {
- for(int i=1;;++i)
- {
+ if (!getString(hContact, AIM_KEY_SN, &dbv)) {
+ for (int i = 1;; ++i) {
unsigned short item_id = getBuddyId(hContact, i);
- if (item_id == 0) break;
+ if (item_id == 0) break;
unsigned short group_id = getGroupId(hContact, i);
- if (group_id)
- {
+ if (group_id) {
bool is_not_in_list = getBool(hContact, AIM_KEY_NIL, false);
- aim_ssi_update(hServerConn, seqno, true);
- aim_delete_contact(hServerConn, seqno, dbv.pszVal, item_id, group_id, 0, is_not_in_list);
- char* group = group_list.find_name(group_id);
+ aim_ssi_update(m_hServerConn, m_seqno, true);
+ aim_delete_contact(m_hServerConn, m_seqno, dbv.pszVal, item_id, group_id, 0, is_not_in_list);
+ char *group = m_group_list.find_name(group_id);
update_server_group(group, group_id);
- aim_ssi_update(hServerConn, seqno, false);
+ aim_ssi_update(m_hServerConn, m_seqno, false);
}
}
db_free(&dbv);
@@ -196,24 +183,25 @@ int CAimProto::OnContactDeleted(WPARAM hContact, LPARAM) }
-int CAimProto::OnGroupChange(WPARAM hContact,LPARAM lParam)
+int CAimProto::OnGroupChange(WPARAM hContact, LPARAM lParam)
{
- if (state != 1 || !getByte(AIM_KEY_MG, 1)) return 0;
+ if (m_state != 1 || !getByte(AIM_KEY_MG, 1))
+ return 0;
- CLISTGROUPCHANGE* grpchg = (CLISTGROUPCHANGE*)lParam;
+ CLISTGROUPCHANGE *grpchg = (CLISTGROUPCHANGE*)lParam;
if (hContact == NULL) {
if (grpchg->pszNewName == NULL && grpchg->pszOldName != NULL) {
T2Utf szOldName(grpchg->pszOldName);
- unsigned short group_id = group_list.find_id(szOldName);
+ unsigned short group_id = m_group_list.find_id(szOldName);
if (group_id) {
- aim_delete_contact(hServerConn, seqno, szOldName, 0, group_id, 1, false);
- group_list.remove_by_id(group_id);
+ aim_delete_contact(m_hServerConn, m_seqno, szOldName, 0, group_id, 1, false);
+ m_group_list.remove_by_id(group_id);
update_server_group("", 0);
}
}
else if (grpchg->pszNewName != NULL && grpchg->pszOldName != NULL) {
- unsigned short group_id = group_list.find_id(T2Utf(grpchg->pszOldName));
+ unsigned short group_id = m_group_list.find_id(T2Utf(grpchg->pszOldName));
if (group_id)
update_server_group(T2Utf(grpchg->pszNewName), group_id);
}
@@ -231,7 +219,8 @@ int CAimProto::OnGroupChange(WPARAM hContact,LPARAM lParam) INT_PTR CAimProto::AddToServerList(WPARAM hContact, LPARAM)
{
- if (state != 1) return 0;
+ if (m_state != 1)
+ return 0;
DBVARIANT dbv;
if (!db_get_utf(hContact, MOD_KEY_CL, OTH_KEY_GP, &dbv) && dbv.pszVal[0]) {
@@ -244,7 +233,7 @@ INT_PTR CAimProto::AddToServerList(WPARAM hContact, LPARAM) INT_PTR CAimProto::BlockBuddy(WPARAM hContact, LPARAM)
{
- if (state != 1)
+ if (m_state != 1)
return 0;
unsigned short item_id;
@@ -252,36 +241,36 @@ INT_PTR CAimProto::BlockBuddy(WPARAM hContact, LPARAM) if (getString(hContact, AIM_KEY_SN, &dbv))
return 0;
- switch(pd_mode) {
+ switch (m_pd_mode) {
case 1:
- pd_mode = 4;
- aim_set_pd_info(hServerConn, seqno);
+ m_pd_mode = 4;
+ aim_set_pd_info(m_hServerConn, m_seqno);
case 4:
- item_id = block_list.find_id(dbv.pszVal);
+ item_id = m_block_list.find_id(dbv.pszVal);
if (item_id != 0) {
- block_list.remove_by_id(item_id);
- aim_delete_contact(hServerConn, seqno, dbv.pszVal, item_id, 0, 3, false);
+ m_block_list.remove_by_id(item_id);
+ aim_delete_contact(m_hServerConn, m_seqno, dbv.pszVal, item_id, 0, 3, false);
}
else {
- item_id = block_list.add(dbv.pszVal);
- aim_add_contact(hServerConn, seqno, dbv.pszVal, item_id, 0, 3, false);
+ item_id = m_block_list.add(dbv.pszVal);
+ aim_add_contact(m_hServerConn, m_seqno, dbv.pszVal, item_id, 0, 3, false);
}
break;
case 2:
- pd_mode = 3;
- aim_set_pd_info(hServerConn, seqno);
+ m_pd_mode = 3;
+ aim_set_pd_info(m_hServerConn, m_seqno);
case 3:
- item_id = allow_list.find_id(dbv.pszVal);
+ item_id = m_allow_list.find_id(dbv.pszVal);
if (item_id != 0) {
- allow_list.remove_by_id(item_id);
- aim_delete_contact(hServerConn, seqno, dbv.pszVal, item_id, 0, 2, false);
+ m_allow_list.remove_by_id(item_id);
+ aim_delete_contact(m_hServerConn, m_seqno, dbv.pszVal, item_id, 0, 2, false);
}
else {
- item_id = allow_list.add(dbv.pszVal);
- aim_add_contact(hServerConn, seqno, dbv.pszVal, item_id, 0, 2);
+ item_id = m_allow_list.add(dbv.pszVal);
+ aim_add_contact(m_hServerConn, m_seqno, dbv.pszVal, item_id, 0, 2);
}
break;
}
@@ -290,7 +279,7 @@ INT_PTR CAimProto::BlockBuddy(WPARAM hContact, LPARAM) return 0;
}
- INT_PTR CAimProto::JoinChatUI(WPARAM, LPARAM)
+INT_PTR CAimProto::JoinChatUI(WPARAM, LPARAM)
{
DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_CHAT), NULL, join_chat_dialog, LPARAM(this));
return 0;
@@ -298,11 +287,11 @@ INT_PTR CAimProto::BlockBuddy(WPARAM hContact, LPARAM) INT_PTR CAimProto::OnJoinChat(WPARAM hContact, LPARAM)
{
- if (state != 1) return 0;
+ if (m_state != 1)
+ return 0;
DBVARIANT dbv;
- if (!getString(hContact, "ChatRoomID", &dbv))
- {
+ if (!getString(hContact, "ChatRoomID", &dbv)) {
chatnav_param* par = new chatnav_param(dbv.pszVal, getWord(hContact, "Exchange", 4));
ForkThread(&CAimProto::chatnav_request_thread, par);
db_free(&dbv);
@@ -312,13 +301,13 @@ INT_PTR CAimProto::OnJoinChat(WPARAM hContact, LPARAM) INT_PTR CAimProto::OnLeaveChat(WPARAM wParam, LPARAM)
{
- if (state != 1) return 0;
+ if (m_state != 1)
+ return 0;
MCONTACT hContact = wParam;
DBVARIANT dbv;
- if (!getString(hContact, "ChatRoomID", &dbv))
- {
+ if (!getString(hContact, "ChatRoomID", &dbv)) {
chat_leave(dbv.pszVal);
db_free(&dbv);
}
@@ -339,17 +328,17 @@ INT_PTR CAimProto::ManageAccount(WPARAM, LPARAM) INT_PTR CAimProto::GetAvatarInfo(WPARAM wParam, LPARAM lParam)
{
- PROTO_AVATAR_INFORMATION* pai = (PROTO_AVATAR_INFORMATION*)lParam;
-
+ PROTO_AVATAR_INFORMATION *pai = (PROTO_AVATAR_INFORMATION*)lParam;
+
pai->filename[0] = 0;
pai->format = PA_FORMAT_UNKNOWN;
- if (getByte(AIM_KEY_DA, 0)) return GAIR_NOAVATAR;
+ if (getByte(AIM_KEY_DA, 0))
+ return GAIR_NOAVATAR;
- switch (get_avatar_filename(pai->hContact, pai->filename, _countof(pai->filename), NULL))
- {
+ switch (get_avatar_filename(pai->hContact, pai->filename, _countof(pai->filename), NULL)) {
case GAIR_SUCCESS:
- if (!(wParam & GAIF_FORCE) || state != 1 )
+ if (!(wParam & GAIF_FORCE) || m_state != 1)
return GAIR_SUCCESS;
case GAIR_WAITFOR:
@@ -360,8 +349,7 @@ INT_PTR CAimProto::GetAvatarInfo(WPARAM wParam, LPARAM lParam) return GAIR_NOAVATAR;
}
- if (state == 1)
- {
+ if (m_state == 1) {
ForkThread(&CAimProto::avatar_request_thread, (void*)pai->hContact);
return GAIR_WAITFOR;
}
@@ -420,56 +408,52 @@ INT_PTR CAimProto::GetAvatar(WPARAM wParam, LPARAM lParam) INT_PTR CAimProto::SetAvatar(WPARAM, LPARAM lParam)
{
- TCHAR* szFileName = (TCHAR*)lParam;
+ TCHAR *szFileName = (TCHAR*)lParam;
- if (state != 1) return 1;
+ if (m_state != 1)
+ return 1;
- if (szFileName == NULL)
- {
- aim_ssi_update(hServerConn, seqno, true);
- aim_delete_avatar_hash(hServerConn, seqno, 1, 1, avatar_id_sm);
- aim_delete_avatar_hash(hServerConn, seqno, 1, 12, avatar_id_lg);
- aim_ssi_update(hServerConn, seqno, false);
+ if (szFileName == NULL) {
+ aim_ssi_update(m_hServerConn, m_seqno, true);
+ aim_delete_avatar_hash(m_hServerConn, m_seqno, 1, 1, m_avatar_id_sm);
+ aim_delete_avatar_hash(m_hServerConn, m_seqno, 1, 12, m_avatar_id_lg);
+ aim_ssi_update(m_hServerConn, m_seqno, false);
avatar_request_handler(NULL, NULL, 0);
}
- else
- {
+ else {
char hash[16], hash1[16], *data, *data1 = NULL;
unsigned short size, size1 = 0;
- if (!get_avatar_hash(szFileName, hash, &data, size))
- {
+ if (!get_avatar_hash(szFileName, hash, &data, size)) {
mir_free(hash);
return 1;
}
rescale_image(data, size, data1, size1);
- if (size1)
- {
+ if (size1) {
mir_md5_state_t state;
mir_md5_init(&state);
mir_md5_append(&state, (unsigned char*)data1, size1);
mir_md5_finish(&state, (unsigned char*)hash1);
- mir_free(hash_lg); hash_lg = bytes_to_string(hash, sizeof(hash));
- mir_free(hash_sm); hash_sm = bytes_to_string(hash1, sizeof(hash1));
+ mir_free(m_hash_lg); m_hash_lg = bytes_to_string(hash, sizeof(hash));
+ mir_free(m_hash_sm); m_hash_sm = bytes_to_string(hash1, sizeof(hash1));
- aim_ssi_update(hServerConn, seqno, true);
- aim_set_avatar_hash(hServerConn, seqno, 1, 1, avatar_id_sm, 16, hash1);
- aim_set_avatar_hash(hServerConn, seqno, 1, 12, avatar_id_lg, 16, hash);
- aim_ssi_update(hServerConn, seqno, false);
+ aim_ssi_update(m_hServerConn, m_seqno, true);
+ aim_set_avatar_hash(m_hServerConn, m_seqno, 1, 1, m_avatar_id_sm, 16, hash1);
+ aim_set_avatar_hash(m_hServerConn, m_seqno, 1, 12, m_avatar_id_lg, 16, hash);
+ aim_ssi_update(m_hServerConn, m_seqno, false);
}
- else
- {
- mir_free(hash_lg); hash_lg = NULL;
- mir_free(hash_sm); hash_sm = bytes_to_string(hash, sizeof(hash1));
-
- aim_ssi_update(hServerConn, seqno, true);
- aim_set_avatar_hash(hServerConn, seqno, 1, 1, avatar_id_sm, 16, hash);
- aim_delete_avatar_hash(hServerConn, seqno, 1, 12, avatar_id_lg);
- aim_ssi_update(hServerConn, seqno, false);
+ else {
+ mir_free(m_hash_lg); m_hash_lg = NULL;
+ mir_free(m_hash_sm); m_hash_sm = bytes_to_string(hash, sizeof(hash1));
+
+ aim_ssi_update(m_hServerConn, m_seqno, true);
+ aim_set_avatar_hash(m_hServerConn, m_seqno, 1, 1, m_avatar_id_sm, 16, hash);
+ aim_delete_avatar_hash(m_hServerConn, m_seqno, 1, 12, m_avatar_id_lg);
+ aim_ssi_update(m_hServerConn, m_seqno, false);
}
avatar_request_handler(NULL, NULL, 0);
@@ -481,12 +465,11 @@ INT_PTR CAimProto::SetAvatar(WPARAM, LPARAM lParam) TCHAR *ext = _tcsrchr(szFileName, '.');
get_avatar_filename(NULL, tFileName, _countof(tFileName), ext);
int fileId = _topen(tFileName, _O_CREAT | _O_TRUNC | _O_WRONLY | O_BINARY, _S_IREAD | _S_IWRITE);
- if (fileId < 0)
- {
+ if (fileId < 0) {
char errmsg[512];
mir_snprintf(errmsg, _countof(errmsg), "Cannot store avatar. File '%s' could not be created/overwritten", tFileName);
ShowPopup(errmsg, ERROR_POPUP);
- return 1;
+ return 1;
}
_write(fileId, data, size);
_close(fileId);
diff --git a/protocols/AimOscar/src/snac.h b/protocols/AimOscar/src/snac.h index 8c184dfa3e..5c97462f22 100644 --- a/protocols/AimOscar/src/snac.h +++ b/protocols/AimOscar/src/snac.h @@ -23,23 +23,23 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. class SNAC
{
-private:
unsigned short service_;
unsigned short subgroup_;
unsigned short length_;
unsigned short flags_;
unsigned short idh_;
unsigned short id_;
- char* value_;
+ char *value_;
+
public:
- SNAC(char* buf, unsigned short length);
+ SNAC(char *buf, unsigned short length);
int cmp(unsigned short service);
int subcmp(unsigned short subgroup);
- unsigned short ushort(int pos=0);
- unsigned long ulong(int pos=0);
- unsigned char ubyte(int pos=0);
+ unsigned short ushort(int pos = 0);
+ unsigned long ulong(int pos = 0);
+ unsigned char ubyte(int pos = 0);
char* part(int pos, int length);
- char* val(int pos=0) { return &value_[pos]; }
+ char* val(int pos = 0) { return &value_[pos]; }
unsigned short len(void) { return length_; }
unsigned short flags(void) { return flags_; }
unsigned short id(void) { return id_; }
diff --git a/protocols/AimOscar/src/theme.cpp b/protocols/AimOscar/src/theme.cpp index cbcd33e7e4..200c6f90cf 100644 --- a/protocols/AimOscar/src/theme.cpp +++ b/protocols/AimOscar/src/theme.cpp @@ -176,32 +176,32 @@ int CAimProto::OnPreBuildContactMenu(WPARAM hContact, LPARAM) bool bIsChatRoom = isChatRoom(hContact);
//see if we should add the html away message context menu items
- Menu_ShowItem(hHTMLAwayContextMenuItem, getWord(hContact, AIM_KEY_ST, ID_STATUS_OFFLINE) == ID_STATUS_AWAY && !bIsChatRoom);
- Menu_ShowItem(hAddToServerListContextMenuItem, !getBuddyId(hContact, 1) && state != 0 && !bIsChatRoom);
+ Menu_ShowItem(m_hHTMLAwayContextMenuItem, getWord(hContact, AIM_KEY_ST, ID_STATUS_OFFLINE) == ID_STATUS_AWAY && !bIsChatRoom);
+ Menu_ShowItem(m_hAddToServerListContextMenuItem, !getBuddyId(hContact, 1) && m_state != 0 && !bIsChatRoom);
ptrA id(getStringA(hContact, AIM_KEY_SN));
if (id == NULL)
return 0;
- switch (pd_mode) {
+ switch (m_pd_mode) {
case 1:
- Menu_ModifyItem(hBlockContextMenuItem, LPGENT("&Block"));
+ Menu_ModifyItem(m_hBlockContextMenuItem, LPGENT("&Block"));
break;
case 2:
- Menu_ModifyItem(hBlockContextMenuItem, LPGENT("&Unblock"));
+ Menu_ModifyItem(m_hBlockContextMenuItem, LPGENT("&Unblock"));
break;
case 3:
- Menu_ModifyItem(hBlockContextMenuItem, allow_list.find_id(id) ? LPGENT("&Block") : LPGENT("&Unblock"));
+ Menu_ModifyItem(m_hBlockContextMenuItem, m_allow_list.find_id(id) ? LPGENT("&Block") : LPGENT("&Unblock"));
break;
case 4:
- Menu_ModifyItem(hBlockContextMenuItem, block_list.find_id(id) ? LPGENT("&Unblock") : LPGENT("&Block"));
+ Menu_ModifyItem(m_hBlockContextMenuItem, m_block_list.find_id(id) ? LPGENT("&Unblock") : LPGENT("&Block"));
break;
default:
- Menu_ShowItem(hBlockContextMenuItem, false);
+ Menu_ShowItem(m_hBlockContextMenuItem, false);
break;
}
return 0;
@@ -217,21 +217,21 @@ void CAimProto::InitMainMenus(void) mi.position = 201001;
mi.hIcolibItem = GetIconHandle("aim");
mi.name.a = LPGEN("Manage Account");
- hMainMenu[0] = Menu_AddProtoMenuItem(&mi, m_szModuleName);
+ m_hMainMenu[0] = Menu_AddProtoMenuItem(&mi, m_szModuleName);
mi.pszService = "/InstantIdle";
CreateProtoService(mi.pszService, &CAimProto::InstantIdle);
mi.position = 201002;
mi.hIcolibItem = GetIconHandle("idle");
mi.name.a = LPGEN("Instant Idle");
- hMainMenu[1] = Menu_AddProtoMenuItem(&mi, m_szModuleName);
+ m_hMainMenu[1] = Menu_AddProtoMenuItem(&mi, m_szModuleName);
mi.pszService = "/JoinChatRoom";
CreateProtoService(mi.pszService, &CAimProto::JoinChatUI);
mi.position = 201003;
mi.hIcolibItem = GetIconHandle("aol");
mi.name.a = LPGEN( "Join Chat Room" );
- hMainMenu[2] = Menu_AddProtoMenuItem(&mi, m_szModuleName);
+ m_hMainMenu[2] = Menu_AddProtoMenuItem(&mi, m_szModuleName);
}
void CAimProto::InitContactMenus(void)
@@ -244,7 +244,7 @@ void CAimProto::InitContactMenus(void) mi.hIcolibItem = GetIconHandle("away");
mi.name.a = LPGEN("Read &HTML Away Message");
mi.flags = CMIF_NOTOFFLINE | CMIF_HIDDEN;
- hHTMLAwayContextMenuItem = Menu_AddContactMenuItem(&mi, m_szModuleName);
+ m_hHTMLAwayContextMenuItem = Menu_AddContactMenuItem(&mi, m_szModuleName);
CreateProtoService("/GetProfile", &CAimProto::GetProfile);
mi.pszService = "/GetProfile";
@@ -260,7 +260,7 @@ void CAimProto::InitContactMenus(void) mi.hIcolibItem = GetIconHandle("add");
mi.name.a = LPGEN("Add To Server List");
mi.flags = CMIF_NOTONLINE | CMIF_HIDDEN;
- hAddToServerListContextMenuItem = Menu_AddContactMenuItem(&mi, m_szModuleName);
+ m_hAddToServerListContextMenuItem = Menu_AddContactMenuItem(&mi, m_szModuleName);
CreateProtoService("/BlockCommand", &CAimProto::BlockBuddy);
mi.pszService = "/BlockCommand";
@@ -268,5 +268,5 @@ void CAimProto::InitContactMenus(void) mi.hIcolibItem = GetIconHandle("block");
mi.name.a = LPGEN("&Block");
mi.flags = CMIF_HIDDEN;
- hBlockContextMenuItem = Menu_AddContactMenuItem(&mi, m_szModuleName);
+ m_hBlockContextMenuItem = Menu_AddContactMenuItem(&mi, m_szModuleName);
}
diff --git a/protocols/AimOscar/src/thread.cpp b/protocols/AimOscar/src/thread.cpp index 8c03fab0a0..35685f24ce 100644 --- a/protocols/AimOscar/src/thread.cpp +++ b/protocols/AimOscar/src/thread.cpp @@ -16,18 +16,18 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+
#include "stdafx.h"
void __cdecl CAimProto::accept_file_thread(void* param)//buddy sending file
{
- file_transfer *ft = (file_transfer*)param;
+ file_transfer *ft = (file_transfer*)param;
HANDLE hConn = NULL;
if (ft->peer_force_proxy) //peer is forcing proxy
{
hConn = aim_peer_connect(ft->proxy_ip, get_default_port());
- if (hConn)
- {
+ if (hConn) {
debugLogA("Connected to proxy ip that buddy specified.");
ft->hConn = hConn;
ForkThread(&CAimProto::aim_proxy_helper, ft);
@@ -37,8 +37,7 @@ void __cdecl CAimProto::accept_file_thread(void* param)//buddy sending file else if (ft->me_force_proxy) //we are forcing proxy
{
hConn = aim_peer_connect(AIM_PROXY_SERVER, get_default_port());
- if (hConn)
- {
+ if (hConn) {
debugLogA("Connected to proxy ip because we want to use a proxy for the file transfer.");
ft->requester = true;
ft->hConn = hConn;
@@ -46,47 +45,40 @@ void __cdecl CAimProto::accept_file_thread(void* param)//buddy sending file ft->stop_listen();
}
}
- else
- {
- bool verif = ft->verified_ip != detected_ip;
+ else {
+ bool verif = ft->verified_ip != m_detected_ip;
hConn = aim_peer_connect(verif ? ft->verified_ip : ft->local_ip, ft->port);
- if (hConn)
- {
- debugLogA("Connected to buddy over P2P port via %s ip.", verif ? "verified": "local");
+ if (hConn) {
+ debugLogA("Connected to buddy over P2P port via %s ip.", verif ? "verified" : "local");
ft->accepted = true;
ft->hConn = hConn;
- aim_file_ad(hServerConn, seqno, ft->sn, ft->icbm_cookie, false, ft->max_ver);
+ aim_file_ad(m_hServerConn, m_seqno, ft->sn, ft->icbm_cookie, false, ft->max_ver);
ForkThread(&CAimProto::aim_dc_helper, ft);
ft->stop_listen();
}
- else if (ft->sending)
- {
+ else if (ft->sending) {
hConn = aim_peer_connect(AIM_PROXY_SERVER, get_default_port());
- if (hConn)
- {
+ if (hConn) {
ft->hConn = hConn;
ft->requester = true;
ForkThread(&CAimProto::aim_proxy_helper, ft);
ft->stop_listen();
}
}
- else
- {
+ else {
debugLogA("Failed to connect to buddy- asking buddy to connect to us.");
ft->listen(this);
ft->requester = true;
- aim_send_file(hServerConn, seqno, detected_ip, ft->local_port, false, ft);
+ aim_send_file(m_hServerConn, m_seqno, m_detected_ip, ft->local_port, false, ft);
return;
}
}
- if (hConn == NULL)
- {
+ if (hConn == NULL) {
if (ft->req_num)
- {
- aim_file_ad(hServerConn, seqno, ft->sn, ft->icbm_cookie, true, 0);
- }
+ aim_file_ad(m_hServerConn, m_seqno, ft->sn, ft->icbm_cookie, true, 0);
+
ProtoBroadcastAck(ft->hContact, ACKTYPE_FILE, ACKRESULT_FAILED, ft, 0);
- ft_list.remove_by_ft(ft);
+ m_ft_list.remove_by_ft(ft);
}
}
diff --git a/protocols/AimOscar/src/ui.cpp b/protocols/AimOscar/src/ui.cpp index db98a0006a..4802fe3bd2 100644 --- a/protocols/AimOscar/src/ui.cpp +++ b/protocols/AimOscar/src/ui.cpp @@ -389,8 +389,8 @@ static INT_PTR CALLBACK userinfo_dialog(HWND hwndDlg, UINT msg, WPARAM wParam, L {
char* buf = rtf_to_html(hwndDlg, IDC_PROFILE);
db_set_utf(NULL, ppro->m_szModuleName, AIM_KEY_PR, buf);
- if (ppro->state == 1)
- ppro->aim_set_profile(ppro->hServerConn, ppro->seqno, buf);//also see set caps for profile setting
+ if (ppro->m_state == 1)
+ ppro->aim_set_profile(ppro->m_hServerConn, ppro->m_seqno, buf);//also see set caps for profile setting
mir_free(buf);
EnableWindow(GetDlgItem(hwndDlg, IDC_SETPROFILE), FALSE);
@@ -606,10 +606,9 @@ INT_PTR CALLBACK admin_dialog(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPar ppro = (CAimProto*)((LPPSHNOTIFY)lParam)->lParam;
SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)ppro);
- if (ppro->wait_conn(ppro->hAdminConn, ppro->hAdminEvent, 0x07)) // Make a connection
- {
- ppro->aim_admin_request_info(ppro->hAdminConn, ppro->admin_seqno, 0x01); // Get our screenname
- ppro->aim_admin_request_info(ppro->hAdminConn, ppro->admin_seqno, 0x11); // Get our email
+ if (ppro->wait_conn(ppro->m_hAdminConn, ppro->m_hAdminEvent, 0x07)) { // Make a connection
+ ppro->aim_admin_request_info(ppro->m_hAdminConn, ppro->m_admin_seqno, 0x01); // Get our screenname
+ ppro->aim_admin_request_info(ppro->m_hAdminConn, ppro->m_admin_seqno, 0x11); // Get our email
}
case PSN_INFOCHANGED:
@@ -627,14 +626,14 @@ INT_PTR CALLBACK admin_dialog(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPar case WM_COMMAND:
if (LOWORD(wParam) == IDC_SAVECHANGES) {
- if (!ppro->wait_conn(ppro->hAdminConn, ppro->hAdminEvent, 0x07)) // Make a connection
+ if (!ppro->wait_conn(ppro->m_hAdminConn, ppro->m_hAdminEvent, 0x07)) // Make a connection
break;
char name[64];
GetDlgItemTextA(hwndDlg, IDC_FNAME, name, _countof(name));
if (mir_strlen(trim_str(name)) > 0 && !ppro->getString(AIM_KEY_SN, &dbv)) {
if (mir_strcmp(name, dbv.pszVal))
- ppro->aim_admin_format_name(ppro->hAdminConn, ppro->admin_seqno, name);
+ ppro->aim_admin_format_name(ppro->m_hAdminConn, ppro->m_admin_seqno, name);
db_free(&dbv);
}
@@ -643,7 +642,7 @@ INT_PTR CALLBACK admin_dialog(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPar if (mir_strlen(trim_str(email)) > 1 && !ppro->getString(AIM_KEY_EM, &dbv)) // Must be greater than 1 or a SNAC error is thrown.
{
if (mir_strcmp(email, dbv.pszVal))
- ppro->aim_admin_change_email(ppro->hAdminConn, ppro->admin_seqno, email);
+ ppro->aim_admin_change_email(ppro->m_hAdminConn, ppro->m_admin_seqno, email);
db_free(&dbv);
}
@@ -658,7 +657,7 @@ INT_PTR CALLBACK admin_dialog(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPar // Let's allow the client to type (two) new passwords incase they make a mistake so we
// can handle any input error locally.
if (mir_strcmp(npw1, npw2) == 0) {
- ppro->aim_admin_change_password(ppro->hAdminConn, ppro->admin_seqno, cpw, npw1);
+ ppro->aim_admin_change_password(ppro->m_hAdminConn, ppro->m_admin_seqno, cpw, npw1);
}
else {
SetDlgItemTextA(hwndDlg, IDC_CPW, "");
@@ -670,8 +669,8 @@ INT_PTR CALLBACK admin_dialog(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPar }
else if (LOWORD(wParam) == IDC_CONFIRM) // Confirmation
{
- if (ppro->wait_conn(ppro->hAdminConn, ppro->hAdminEvent, 0x07)) // Make a connection
- ppro->aim_admin_account_confirm(ppro->hAdminConn, ppro->admin_seqno);
+ if (ppro->wait_conn(ppro->m_hAdminConn, ppro->m_hAdminEvent, 0x07)) // Make a connection
+ ppro->aim_admin_account_confirm(ppro->m_hAdminConn, ppro->m_admin_seqno);
}
break;
}
@@ -945,15 +944,15 @@ static INT_PTR CALLBACK privacy_dialog(HWND hwndDlg, UINT msg, WPARAM wParam, LP SetWindowLongPtr(hwndDlg, GWLP_USERDATA, lParam);
ppro = (CAimProto*)lParam;
- CheckRadioButton(hwndDlg, IDC_ALLOWALL, IDC_BLOCKBELOW, btns[ppro->pd_mode - 1]);
+ CheckRadioButton(hwndDlg, IDC_ALLOWALL, IDC_BLOCKBELOW, btns[ppro->m_pd_mode - 1]);
- for (i = 0; i < ppro->allow_list.getCount(); ++i)
- SendDlgItemMessageA(hwndDlg, IDC_ALLOWLIST, LB_ADDSTRING, 0, (LPARAM)ppro->allow_list[i].name);
+ for (i = 0; i < ppro->m_allow_list.getCount(); ++i)
+ SendDlgItemMessageA(hwndDlg, IDC_ALLOWLIST, LB_ADDSTRING, 0, (LPARAM)ppro->m_allow_list[i].name);
- for (i = 0; i < ppro->block_list.getCount(); ++i)
- SendDlgItemMessageA(hwndDlg, IDC_BLOCKLIST, LB_ADDSTRING, 0, (LPARAM)ppro->block_list[i].name);
+ for (i = 0; i < ppro->m_block_list.getCount(); ++i)
+ SendDlgItemMessageA(hwndDlg, IDC_BLOCKLIST, LB_ADDSTRING, 0, (LPARAM)ppro->m_block_list[i].name);
- CheckDlgButton(hwndDlg, IDC_SIS, (ppro->pref1_flags & 0x400) ? BST_CHECKED : BST_CHECKED);
+ CheckDlgButton(hwndDlg, IDC_SIS, (ppro->m_pref1_flags & 0x400) ? BST_CHECKED : BST_CHECKED);
break;
case WM_COMMAND:
@@ -981,56 +980,56 @@ static INT_PTR CALLBACK privacy_dialog(HWND hwndDlg, UINT msg, WPARAM wParam, LP case WM_NOTIFY:
if (((LPNMHDR)lParam)->code == PSN_APPLY) {
- ppro->aim_ssi_update(ppro->hServerConn, ppro->seqno, true);
+ ppro->aim_ssi_update(ppro->m_hServerConn, ppro->m_seqno, true);
for (i = 0; i < 5; ++i) {
- if (IsDlgButtonChecked(hwndDlg, btns[i]) && ppro->pd_mode != i + 1) {
- ppro->pd_mode = (char)(i + 1);
- ppro->pd_flags = 1;
- ppro->aim_set_pd_info(ppro->hServerConn, ppro->seqno);
+ if (IsDlgButtonChecked(hwndDlg, btns[i]) && ppro->m_pd_mode != i + 1) {
+ ppro->m_pd_mode = (char)(i + 1);
+ ppro->m_pd_flags = 1;
+ ppro->aim_set_pd_info(ppro->m_hServerConn, ppro->m_seqno);
break;
}
}
- for (i = 0; i < ppro->block_list.getCount(); ++i) {
- BdListItem& pd = ppro->block_list[i];
+ for (i = 0; i < ppro->m_block_list.getCount(); ++i) {
+ BdListItem& pd = ppro->m_block_list[i];
if (SendDlgItemMessageA(hwndDlg, IDC_BLOCKLIST, LB_FINDSTRING, (WPARAM)-1, (LPARAM)pd.name) == LB_ERR) {
- ppro->aim_delete_contact(ppro->hServerConn, ppro->seqno, pd.name, pd.item_id, 0, 3, false);
- ppro->block_list.remove(i--);
+ ppro->aim_delete_contact(ppro->m_hServerConn, ppro->m_seqno, pd.name, pd.item_id, 0, 3, false);
+ ppro->m_block_list.remove(i--);
}
}
i = SendDlgItemMessage(hwndDlg, IDC_BLOCKLIST, LB_GETCOUNT, 0, 0);
for (; i--;) {
char nick[80];
SendDlgItemMessageA(hwndDlg, IDC_BLOCKLIST, LB_GETTEXT, i, (LPARAM)nick);
- if (ppro->block_list.find_id(nick) == 0) {
- unsigned short id = ppro->block_list.add(nick);
- ppro->aim_add_contact(ppro->hServerConn, ppro->seqno, nick, id, 0, 3);
+ if (ppro->m_block_list.find_id(nick) == 0) {
+ unsigned short id = ppro->m_block_list.add(nick);
+ ppro->aim_add_contact(ppro->m_hServerConn, ppro->m_seqno, nick, id, 0, 3);
}
}
- for (i = 0; i < ppro->allow_list.getCount(); ++i) {
- BdListItem& pd = ppro->allow_list[i];
+ for (i = 0; i < ppro->m_allow_list.getCount(); ++i) {
+ BdListItem& pd = ppro->m_allow_list[i];
if (SendDlgItemMessageA(hwndDlg, IDC_ALLOWLIST, LB_FINDSTRING, (WPARAM)-1, (LPARAM)pd.name) == LB_ERR) {
- ppro->aim_delete_contact(ppro->hServerConn, ppro->seqno, pd.name, pd.item_id, 0, 2, false);
- ppro->allow_list.remove(i--);
+ ppro->aim_delete_contact(ppro->m_hServerConn, ppro->m_seqno, pd.name, pd.item_id, 0, 2, false);
+ ppro->m_allow_list.remove(i--);
}
}
i = SendDlgItemMessage(hwndDlg, IDC_ALLOWLIST, LB_GETCOUNT, 0, 0);
for (; i--;) {
char nick[80];
SendDlgItemMessageA(hwndDlg, IDC_ALLOWLIST, LB_GETTEXT, i, (LPARAM)nick);
- if (ppro->allow_list.find_id(nick) == 0) {
- unsigned short id = ppro->allow_list.add(nick);
- ppro->aim_add_contact(ppro->hServerConn, ppro->seqno, nick, id, 0, 2);
+ if (ppro->m_allow_list.find_id(nick) == 0) {
+ unsigned short id = ppro->m_allow_list.add(nick);
+ ppro->aim_add_contact(ppro->m_hServerConn, ppro->m_seqno, nick, id, 0, 2);
}
}
unsigned mask = (IsDlgButtonChecked(hwndDlg, IDC_SIS) == BST_CHECKED) << 10;
- if ((ppro->pref1_flags & 0x400) ^ mask) {
- ppro->pref1_flags = (ppro->pref1_flags & ~0x400) | mask;
- ppro->aim_ssi_update_preferences(ppro->hServerConn, ppro->seqno);
+ if ((ppro->m_pref1_flags & 0x400) ^ mask) {
+ ppro->m_pref1_flags = (ppro->m_pref1_flags & ~0x400) | mask;
+ ppro->aim_ssi_update_preferences(ppro->m_hServerConn, ppro->m_seqno);
}
- ppro->aim_ssi_update(ppro->hServerConn, ppro->seqno, false);
+ ppro->aim_ssi_update(ppro->m_hServerConn, ppro->m_seqno, false);
}
break;
}
@@ -1168,16 +1167,16 @@ INT_PTR CALLBACK instant_idle_dialog(HWND hwndDlg, UINT msg, WPARAM wParam, LPAR switch (LOWORD(wParam)) {
case IDOK:
//Instant Idle
- if (ppro->state == 1) {
- ppro->aim_set_idle(ppro->hServerConn, ppro->seqno, hours * 60 * 60 + minutes * 60);
- ppro->instantidle = 1;
+ if (ppro->m_state == 1) {
+ ppro->aim_set_idle(ppro->m_hServerConn, ppro->m_seqno, hours * 60 * 60 + minutes * 60);
+ ppro->m_instantidle = 1;
}
EndDialog(hwndDlg, IDOK);
break;
case IDCANCEL:
- ppro->aim_set_idle(ppro->hServerConn, ppro->seqno, 0);
- ppro->instantidle = 0;
+ ppro->aim_set_idle(ppro->m_hServerConn, ppro->m_seqno, 0);
+ ppro->m_instantidle = 0;
EndDialog(hwndDlg, IDCANCEL);
break;
}
@@ -1217,7 +1216,7 @@ INT_PTR CALLBACK join_chat_dialog(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM case IDOK:
char room[128];
GetDlgItemTextA(hwndDlg, IDC_ROOM, room, _countof(room));
- if (ppro->state == 1 && room[0] != 0) {
+ if (ppro->m_state == 1 && room[0] != 0) {
chatnav_param* par = new chatnav_param(room, 4);
ppro->ForkThread(&CAimProto::chatnav_request_thread, par);
}
@@ -1254,15 +1253,15 @@ static void clist_chat_invite_send(MCONTACT hItem, HWND hwndList, chat_list_item TCHAR buf[128] = _T("");
SendMessage(hwndList, CLM_GETITEMTEXT, (WPARAM)hItem, (LPARAM)buf);
- char* sn = mir_t2a(buf);
- ppro->aim_chat_invite(ppro->hServerConn, ppro->seqno,
+ char *sn = mir_t2a(buf);
+ ppro->aim_chat_invite(ppro->m_hServerConn, ppro->m_seqno,
item->cookie, item->exchange, item->instance, sn, msg);
mir_free(sn);
}
else {
DBVARIANT dbv;
if (!ppro->getString(hItem, AIM_KEY_SN, &dbv)) {
- ppro->aim_chat_invite(ppro->hServerConn, ppro->seqno,
+ ppro->aim_chat_invite(ppro->m_hServerConn, ppro->m_seqno,
item->cookie, item->exchange, item->instance, dbv.pszVal, msg);
db_free(&dbv);
}
@@ -1347,7 +1346,7 @@ INT_PTR CALLBACK invite_to_chat_dialog(HWND hwndDlg, UINT msg, WPARAM wParam, LP {
switch (LOWORD(wParam)) {
case IDC_ADDSCR:
- if (param->ppro->state == 1) {
+ if (param->ppro->m_state == 1) {
TCHAR sn[64];
GetDlgItemText(hwndDlg, IDC_EDITSCR, sn, _countof(sn));
@@ -1365,11 +1364,11 @@ INT_PTR CALLBACK invite_to_chat_dialog(HWND hwndDlg, UINT msg, WPARAM wParam, LP {
chat_list_item* item = param->ppro->find_chat_by_id(param->id);
if (item) {
- char msg[1024];
- GetDlgItemTextA(hwndDlg, IDC_MSG, msg, _countof(msg));
+ char buf[1024];
+ GetDlgItemTextA(hwndDlg, IDC_MSG, buf, _countof(buf));
HWND hwndList = GetDlgItem(hwndDlg, IDC_CCLIST);
- clist_chat_invite_send(NULL, hwndList, item, param->ppro, msg);
+ clist_chat_invite_send(NULL, hwndList, item, param->ppro, buf);
}
EndDialog(hwndDlg, IDOK);
}
@@ -1423,7 +1422,7 @@ INT_PTR CALLBACK chat_request_dialog(HWND hwndDlg, UINT msg, WPARAM wParam, LPAR break;
case IDCANCEL:
- param->ppro->aim_chat_deny(param->ppro->hServerConn, param->ppro->seqno, param->name, param->icbm_cookie);
+ param->ppro->aim_chat_deny(param->ppro->m_hServerConn, param->ppro->m_seqno, param->name, param->icbm_cookie);
delete param->cnp;
EndDialog(hwndDlg, IDCANCEL);
break;
diff --git a/protocols/AimOscar/src/utility.cpp b/protocols/AimOscar/src/utility.cpp index d66e920b56..0a774fbf5b 100644 --- a/protocols/AimOscar/src/utility.cpp +++ b/protocols/AimOscar/src/utility.cpp @@ -21,88 +21,79 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. void CAimProto::broadcast_status(int status)
{
- debugLogA("Broadcast Status: %d",status);
+ debugLogA("Broadcast Status: %d", status);
int old_status = m_iStatus;
m_iStatus = status;
- if (m_iStatus == ID_STATUS_OFFLINE)
- {
+ if (m_iStatus == ID_STATUS_OFFLINE) {
shutdown_file_transfers();
shutdown_chat_conn();
- if (hServerConn)
- {
- aim_sendflap(hServerConn,0x04,0,NULL,seqno);
- Netlib_Shutdown(hServerConn);
+ if (m_hServerConn) {
+ aim_sendflap(m_hServerConn, 0x04, 0, NULL, m_seqno);
+ Netlib_Shutdown(m_hServerConn);
}
- if (hMailConn && hMailConn != (HANDLE)1)
- {
- aim_sendflap(hMailConn,0x04,0,NULL,mail_seqno);
- Netlib_Shutdown(hMailConn);
+ if (m_hMailConn && m_hMailConn != (HANDLE)1) {
+ aim_sendflap(m_hMailConn, 0x04, 0, NULL, m_mail_seqno);
+ Netlib_Shutdown(m_hMailConn);
}
- else if (hMailConn == (HANDLE)1)
- hMailConn = NULL;
+ else if (m_hMailConn == (HANDLE)1)
+ m_hMailConn = NULL;
- if (hAvatarConn && hAvatarConn != (HANDLE)1)
- {
- aim_sendflap(hAvatarConn,0x04,0,NULL,avatar_seqno);
- Netlib_Shutdown(hAvatarConn);
+ if (m_hAvatarConn && m_hAvatarConn != (HANDLE)1) {
+ aim_sendflap(m_hAvatarConn, 0x04, 0, NULL, m_avatar_seqno);
+ Netlib_Shutdown(m_hAvatarConn);
}
- else if (hAvatarConn == (HANDLE)1)
- hAvatarConn = NULL;
+ else if (m_hAvatarConn == (HANDLE)1)
+ m_hAvatarConn = NULL;
- if (hChatNavConn && hChatNavConn != (HANDLE)1)
- {
- aim_sendflap(hChatNavConn,0x04,0,NULL,chatnav_seqno);
- Netlib_Shutdown(hChatNavConn);
+ if (m_hChatNavConn && m_hChatNavConn != (HANDLE)1) {
+ aim_sendflap(m_hChatNavConn, 0x04, 0, NULL, m_chatnav_seqno);
+ Netlib_Shutdown(m_hChatNavConn);
}
- else if (hChatNavConn == (HANDLE)1)
- hChatNavConn = NULL;
+ else if (m_hChatNavConn == (HANDLE)1)
+ m_hChatNavConn = NULL;
- idle = false;
- instantidle = false;
- list_received = false;
- state = 0;
+ m_idle = false;
+ m_instantidle = false;
+ m_list_received = false;
+ m_state = 0;
m_iDesiredStatus = ID_STATUS_OFFLINE;
- mir_free(last_status_msg); last_status_msg = NULL;
-
- avatar_id_lg = 0;
- avatar_id_sm = 0;
- mir_free(hash_lg); hash_lg = NULL;
- mir_free(hash_sm); hash_sm = NULL;
-
- pd_flags = 0;
- pd_info_id = 0;
- pd_mode = 0;
-
- seqno = 0;
- mail_seqno = 0;
- avatar_seqno = 0;
- chatnav_seqno = 0;
- admin_seqno = 0;
-
+ replaceStr(m_last_status_msg, NULL);
+
+ m_avatar_id_lg = 0;
+ m_avatar_id_sm = 0;
+ replaceStr(m_hash_lg, NULL);
+ replaceStr(m_hash_sm, NULL);
+
+ m_pd_flags = 0;
+ m_pd_info_id = 0;
+ m_pd_mode = 0;
+
+ m_seqno = 0;
+ m_mail_seqno = 0;
+ m_avatar_seqno = 0;
+ m_chatnav_seqno = 0;
+ m_admin_seqno = 0;
}
- ProtoBroadcastAck(NULL, ACKTYPE_STATUS, ACKRESULT_SUCCESS, (HANDLE)old_status, m_iStatus);
+ ProtoBroadcastAck(NULL, ACKTYPE_STATUS, ACKRESULT_SUCCESS, (HANDLE)old_status, m_iStatus);
}
void CAimProto::start_connection(void*)
{
- if (m_iStatus<=ID_STATUS_OFFLINE)
- {
+ if (m_iStatus <= ID_STATUS_OFFLINE) {
offline_contacts();
DBVARIANT dbv;
if (!getString(AIM_KEY_SN, &dbv))
db_free(&dbv);
- else
- {
+ else {
ShowPopup(LPGEN("Please, enter a username in the options dialog."), 0);
broadcast_status(ID_STATUS_OFFLINE);
return;
}
if (!getString(AIM_KEY_PW, &dbv))
db_free(&dbv);
- else
- {
+ else {
ShowPopup(LPGEN("Please, enter a password in the options dialog."), 0);
broadcast_status(ID_STATUS_OFFLINE);
return;
@@ -113,39 +104,39 @@ void CAimProto::start_connection(void*) char* login_url = getStringA(AIM_KEY_HN);
if (login_url == NULL) login_url = mir_strdup(use_ssl ? AIM_DEFAULT_SERVER : AIM_DEFAULT_SERVER_NS);
- hServerConn = aim_connect(login_url, get_default_port(), use_ssl, login_url);
+ m_hServerConn = aim_connect(login_url, get_default_port(), use_ssl, login_url);
mir_free(login_url);
- pref1_flags = 0x77ffff;
- pref1_set_flags = 0x77ffff;
- mir_free(pref2_flags); pref2_flags = NULL; pref2_len = 0;
- mir_free(pref2_set_flags); pref2_set_flags = NULL; pref2_set_len = 0;
+ m_pref1_flags = 0x77ffff;
+ m_pref1_set_flags = 0x77ffff;
+ mir_free(m_pref2_flags); m_pref2_flags = NULL; m_pref2_len = 0;
+ mir_free(m_pref2_set_flags); m_pref2_set_flags = NULL; m_pref2_set_len = 0;
- if (hServerConn)
+ if (m_hServerConn)
aim_connection_authorization();
- else
+ else
broadcast_status(ID_STATUS_OFFLINE);
}
}
bool CAimProto::wait_conn(HANDLE& hConn, HANDLE& hEvent, unsigned short service)
{
- if (m_iStatus == ID_STATUS_OFFLINE)
+ if (m_iStatus == ID_STATUS_OFFLINE)
return false;
{
mir_cslock lck(connMutex);
- if (hConn == NULL && hServerConn) {
+ if (hConn == NULL && m_hServerConn) {
debugLogA("Starting Connection.");
hConn = (HANDLE)1; //set so no additional service request attempts are made while aim is still processing the request
- aim_new_service_request(hServerConn, seqno, service);//general service connection!
+ aim_new_service_request(m_hServerConn, m_seqno, service);//general service connection!
}
}
if (WaitForSingleObjectEx(hEvent, 10000, TRUE) != WAIT_OBJECT_0)
return false;
- if (Miranda_Terminated() || m_iStatus == ID_STATUS_OFFLINE)
+ if (Miranda_Terminated() || m_iStatus == ID_STATUS_OFFLINE)
return false;
return true;
@@ -168,10 +159,10 @@ MCONTACT CAimProto::find_chat_contact(const char* room) for (MCONTACT hContact = db_find_first(m_szModuleName); hContact; hContact = db_find_next(hContact, m_szModuleName)) {
DBVARIANT dbv;
if (!getString(hContact, "ChatRoomID", &dbv)) {
- bool found = !mir_strcmp(room, dbv.pszVal);
+ bool found = !mir_strcmp(room, dbv.pszVal);
db_free(&dbv);
if (found)
- return hContact;
+ return hContact;
}
}
return NULL;
@@ -179,15 +170,15 @@ MCONTACT CAimProto::find_chat_contact(const char* room) MCONTACT CAimProto::contact_from_sn(const char* sn, bool addIfNeeded, bool temporary)
{
- ptrA norm_sn( normalize_name(sn));
+ ptrA norm_sn(normalize_name(sn));
for (MCONTACT hContact = db_find_first(m_szModuleName); hContact; hContact = db_find_next(hContact, m_szModuleName)) {
DBVARIANT dbv;
if (!getString(hContact, AIM_KEY_SN, &dbv)) {
- bool found = !mir_strcmp(norm_sn, dbv.pszVal);
+ bool found = !mir_strcmp(norm_sn, dbv.pszVal);
db_free(&dbv);
if (found)
- return hContact;
+ return hContact;
}
}
@@ -197,7 +188,7 @@ MCONTACT CAimProto::contact_from_sn(const char* sn, bool addIfNeeded, bool tempo if (Proto_AddToContact(hContact, m_szModuleName) == 0) {
setString(hContact, AIM_KEY_SN, norm_sn);
setString(hContact, AIM_KEY_NK, sn);
- debugLogA("Adding contact %s to client side list.",norm_sn);
+ debugLogA("Adding contact %s to client side list.", norm_sn);
if (temporary)
db_set_b(hContact, "CList", "NotOnList", 1);
return hContact;
@@ -216,16 +207,15 @@ void CAimProto::update_server_group(const char* group, unsigned short group_id) if (group_id)
user_id_array = get_members_of_group(group_id, user_id_array_size);
- else
- {
- user_id_array_size = (unsigned short)group_list.getCount();
+ else {
+ user_id_array_size = (unsigned short)m_group_list.getCount();
user_id_array = (unsigned short*)mir_alloc(user_id_array_size * sizeof(unsigned short));
- for (unsigned short i=0; i<user_id_array_size; ++i)
- user_id_array[i] = _htons(group_list[i].item_id);
+ for (unsigned short i = 0; i < user_id_array_size; ++i)
+ user_id_array[i] = _htons(m_group_list[i].item_id);
}
- debugLogA("Modifying group %s:%u on the serverside list",group, group_id);
- aim_mod_group(hServerConn, seqno, group, group_id, (char*)user_id_array,
+ debugLogA("Modifying group %s:%u on the serverside list", group, group_id);
+ aim_mod_group(m_hServerConn, m_seqno, group, group_id, (char*)user_id_array,
user_id_array_size * sizeof(unsigned short));
mir_free(user_id_array);
@@ -236,16 +226,14 @@ void CAimProto::add_contact_to_group(MCONTACT hContact, const char* new_group) if (new_group == NULL)
return;
- unsigned short old_group_id = getGroupId(hContact, 1);
- char* old_group = group_list.find_name(old_group_id);
-
+ unsigned short old_group_id = getGroupId(hContact, 1);
+ char *old_group = m_group_list.find_name(old_group_id);
if (old_group && mir_strcmp(new_group, old_group) == 0)
return;
-
+
DBVARIANT dbv;
char *nick = NULL;
- if (!db_get_utf(hContact, MOD_KEY_CL, "MyHandle", &dbv))
- {
+ if (!db_get_utf(hContact, MOD_KEY_CL, "MyHandle", &dbv)) {
nick = NEWSTR_ALLOCA(dbv.pszVal);
db_free(&dbv);
}
@@ -254,7 +242,7 @@ void CAimProto::add_contact_to_group(MCONTACT hContact, const char* new_group) unsigned short item_id = getBuddyId(hContact, 1);
unsigned short new_item_id = search_for_free_item_id(hContact);
- unsigned short new_group_id = group_list.find_id(new_group);
+ unsigned short new_group_id = m_group_list.find_id(new_group);
if (!item_id)
debugLogA("Contact %u not on list.", hContact);
@@ -265,43 +253,39 @@ void CAimProto::add_contact_to_group(MCONTACT hContact, const char* new_group) else
db_unset(hContact, MOD_KEY_CL, OTH_KEY_GP);
- aim_ssi_update(hServerConn, seqno, true);
-
- if (new_group_id == 0)
- {
- create_group(new_group);
+ aim_ssi_update(m_hServerConn, m_seqno, true);
+
+ if (new_group_id == 0) {
+ create_group(new_group);
debugLogA("Group %s not on list.", new_group);
- new_group_id = group_list.add(new_group);
+ new_group_id = m_group_list.add(new_group);
debugLogA("Adding group %s:%u to the serverside list", new_group, new_group_id);
- aim_add_contact(hServerConn, seqno, new_group, 0, new_group_id, 1);//add the group server-side even if it exist
+ aim_add_contact(m_hServerConn, m_seqno, new_group, 0, new_group_id, 1);//add the group server-side even if it exist
}
debugLogA("Adding buddy %s:%u %s:%u to the serverside list", dbv.pszVal, new_item_id, new_group, new_group_id);
- aim_add_contact(hServerConn, seqno, dbv.pszVal, new_item_id, new_group_id, 0, nick);
-
+ aim_add_contact(m_hServerConn, m_seqno, dbv.pszVal, new_item_id, new_group_id, 0, nick);
+
update_server_group(new_group, new_group_id);
- if (old_group_id && item_id)
- {
+ if (old_group_id && item_id) {
bool is_not_in_list = getBool(hContact, AIM_KEY_NIL, false);
debugLogA("Removing buddy %s:%u %s:%u from the serverside list", dbv.pszVal, item_id, old_group, old_group_id);
- aim_delete_contact(hServerConn, seqno, dbv.pszVal, item_id, old_group_id, 0, is_not_in_list);
+ aim_delete_contact(m_hServerConn, m_seqno, dbv.pszVal, item_id, old_group_id, 0, is_not_in_list);
update_server_group(old_group, old_group_id);
delSetting(hContact, AIM_KEY_NIL);
}
- aim_ssi_update(hServerConn, seqno, false);
+ aim_ssi_update(m_hServerConn, m_seqno, false);
db_free(&dbv);
}
void CAimProto::offline_contact(MCONTACT hContact, bool remove_settings)
{
- if (remove_settings)
- {
+ if (remove_settings) {
//We need some of this stuff if we are still online.
- for(int i=1;;++i)
- {
+ for (int i = 1;; ++i) {
if (deleteBuddyId(hContact, i)) break;
deleteGroupId(hContact, i);
}
@@ -314,50 +298,49 @@ void CAimProto::offline_contact(MCONTACT hContact, bool remove_settings) void CAimProto::offline_contacts(void)
{
for (MCONTACT hContact = db_find_first(m_szModuleName); hContact; hContact = db_find_next(hContact, m_szModuleName))
- offline_contact(hContact,true);
+ offline_contact(hContact, true);
- allow_list.destroy();
- block_list.destroy();
- group_list.destroy();
+ m_allow_list.destroy();
+ m_block_list.destroy();
+ m_group_list.destroy();
}
char *normalize_name(const char *s)
{
if (s == NULL) return NULL;
-
+
char* buf = mir_strdup(s);
_strlwr(buf);
-/*
- char *p = strchr(buf, ' ');
- if (p)
- {
- char *q = p;
- while (*p)
+ /*
+ char *p = strchr(buf, ' ');
+ if (p)
{
- if (*p != ' ') *(q++) = *p;
- ++p;
+ char *q = p;
+ while (*p)
+ {
+ if (*p != ' ') *(q++) = *p;
+ ++p;
+ }
+ *q = '\0';
}
- *q = '\0';
- }
-*/
+ */
return buf;
}
char* trim_str(char* s)
-{
+{
if (s == NULL) return NULL;
size_t len = mir_strlen(s);
- while (len)
- {
- if (isspace(s[len-1])) --len;
+ while (len) {
+ if (isspace(s[len - 1])) --len;
else break;
}
- s[len]=0;
+ s[len] = 0;
- char* sc = s;
+ char* sc = s;
while (isspace(*sc)) ++sc;
- memcpy(s,sc,mir_strlen(sc)+1);
+ memcpy(s, sc, mir_strlen(sc) + 1);
return s;
}
@@ -379,7 +362,7 @@ retry: id = get_random();
for (MCONTACT hContact = db_find_first(m_szModuleName); hContact; hContact = db_find_next(hContact, m_szModuleName)) {
- for(int i=1; ;++i) {
+ for (int i = 1; ; ++i) {
unsigned short item_id = getBuddyId(hContact, i);
if (item_id == 0) break;
@@ -398,7 +381,7 @@ unsigned short* CAimProto::get_members_of_group(unsigned short group_id, unsigne size = 0;
for (MCONTACT hContact = db_find_first(m_szModuleName); hContact; hContact = db_find_next(hContact, m_szModuleName)) {
- for(int i=1; ;++i) {
+ for (int i = 1; ; ++i) {
unsigned short user_group_id = getGroupId(hContact, i);
if (user_group_id == 0)
break;
@@ -407,7 +390,7 @@ unsigned short* CAimProto::get_members_of_group(unsigned short group_id, unsigne unsigned short buddy_id = getBuddyId(hContact, i);
if (buddy_id) {
list = (unsigned short*)mir_realloc(list, ++size*sizeof(list[0]));
- list[size-1] = _htons(buddy_id);
+ list[size - 1] = _htons(buddy_id);
}
}
}
@@ -419,7 +402,7 @@ void CAimProto::upload_nicks(void) {
for (MCONTACT hContact = db_find_first(m_szModuleName); hContact; hContact = db_find_next(hContact, m_szModuleName)) {
DBVARIANT dbv;
- if ( !db_get_utf(hContact, MOD_KEY_CL, "MyHandle", &dbv)) {
+ if (!db_get_utf(hContact, MOD_KEY_CL, "MyHandle", &dbv)) {
set_local_nick(hContact, dbv.pszVal, NULL);
db_free(&dbv);
}
@@ -431,15 +414,14 @@ void CAimProto::set_local_nick(MCONTACT hContact, char* nick, char* note) DBVARIANT dbv;
if (getString(hContact, AIM_KEY_SN, &dbv)) return;
- for(int i=1; ;++i)
- {
+ for (int i = 1; ; ++i) {
unsigned short group_id = getGroupId(hContact, i);
if (group_id == 0) break;
unsigned short buddy_id = getBuddyId(hContact, i);
if (buddy_id == 0) break;
- aim_mod_buddy(hServerConn, seqno, dbv.pszVal, buddy_id, group_id, nick, note);
+ aim_mod_buddy(m_hServerConn, m_seqno, dbv.pszVal, buddy_id, group_id, nick, note);
}
db_free(&dbv);
}
@@ -453,7 +435,7 @@ unsigned short BdList::get_free_id(void) retry:
id = get_random();
- for (int i=0; i<count; ++i)
+ for (int i = 0; i < count; ++i)
if (items[i]->item_id == id) goto retry;
return id;
@@ -461,8 +443,7 @@ retry: unsigned short BdList::find_id(const char* name)
{
- for (int i=0; i<count; ++i)
- {
+ for (int i = 0; i < count; ++i) {
if (_stricmp(items[i]->name, name) == 0)
return items[i]->item_id;
}
@@ -471,8 +452,7 @@ unsigned short BdList::find_id(const char* name) char* BdList::find_name(unsigned short id)
{
- for (int i=0; i<count; ++i)
- {
+ for (int i = 0; i < count; ++i) {
if (items[i]->item_id == id)
return items[i]->name;
}
@@ -481,10 +461,8 @@ char* BdList::find_name(unsigned short id) void BdList::remove_by_id(unsigned short id)
{
- for (int i=0; i<count; ++i)
- {
- if (items[i]->item_id == id)
- {
+ for (int i = 0; i < count; ++i) {
+ if (items[i]->item_id == id) {
remove(i);
break;
}
@@ -495,42 +473,42 @@ void BdList::remove_by_id(unsigned short id) unsigned short CAimProto::getBuddyId(MCONTACT hContact, int i)
{
- char item[sizeof(AIM_KEY_BI)+10];
+ char item[sizeof(AIM_KEY_BI) + 10];
mir_snprintf(item, _countof(item), AIM_KEY_BI"%d", i);
return getWord(hContact, item, 0);
}
void CAimProto::setBuddyId(MCONTACT hContact, int i, unsigned short id)
{
- char item[sizeof(AIM_KEY_BI)+10];
+ char item[sizeof(AIM_KEY_BI) + 10];
mir_snprintf(item, _countof(item), AIM_KEY_BI"%d", i);
setWord(hContact, item, id);
}
int CAimProto::deleteBuddyId(MCONTACT hContact, int i)
{
- char item[sizeof(AIM_KEY_BI)+10];
+ char item[sizeof(AIM_KEY_BI) + 10];
mir_snprintf(item, _countof(item), AIM_KEY_BI"%d", i);
return delSetting(hContact, item);
}
unsigned short CAimProto::getGroupId(MCONTACT hContact, int i)
{
- char item[sizeof(AIM_KEY_GI)+10];
+ char item[sizeof(AIM_KEY_GI) + 10];
mir_snprintf(item, _countof(item), AIM_KEY_GI"%d", i);
return getWord(hContact, item, 0);
}
void CAimProto::setGroupId(MCONTACT hContact, int i, unsigned short id)
{
- char item[sizeof(AIM_KEY_GI)+10];
+ char item[sizeof(AIM_KEY_GI) + 10];
mir_snprintf(item, _countof(item), AIM_KEY_GI"%d", i);
setWord(hContact, item, id);
}
int CAimProto::deleteGroupId(MCONTACT hContact, int i)
{
- char item[sizeof(AIM_KEY_GI)+10];
+ char item[sizeof(AIM_KEY_GI) + 10];
mir_snprintf(item, _countof(item), AIM_KEY_GI"%d", i);
return delSetting(hContact, item);
}
@@ -550,8 +528,7 @@ int CAimProto::open_contact_file(const char*, const TCHAR* file, const char*, TC mir_sntprintf(path + pos, MAX_PATH - pos, _T("\\%s"), file);
int fid = _topen(path, _O_CREAT | _O_RDWR | _O_BINARY, _S_IREAD);
- if (fid < 0)
- {
+ if (fid < 0) {
TCHAR errmsg[512];
mir_sntprintf(errmsg, _countof(errmsg), TranslateT("Failed to open file: %s %s"), path, __tcserror(NULL));
ShowPopup((char*)errmsg, ERROR_POPUP | TCHAR_POPUP);
@@ -563,10 +540,9 @@ void CAimProto::write_away_message(const char* sn, const char* msg, bool utf) {
TCHAR* path;
int fid = open_contact_file(sn, _T("away.html"), "wb", path, 1);
- if (fid >= 0)
- {
+ if (fid >= 0) {
if (utf) _write(fid, "\xEF\xBB\xBF", 3);
- char* s_msg=process_status_msg(msg, sn);
+ char* s_msg = process_status_msg(msg, sn);
_write(fid, "<h3>", 4);
_write(fid, sn, (unsigned)mir_strlen(sn));
_write(fid, "'s Away Message:</h3>", 21);
@@ -576,16 +552,15 @@ void CAimProto::write_away_message(const char* sn, const char* msg, bool utf) mir_free(path);
mir_free(s_msg);
}
-}
+}
void CAimProto::write_profile(const char* sn, const char* msg, bool utf)
{
TCHAR* path;
- int fid = open_contact_file(sn, _T("profile.html"),"wb", path, 1);
- if (fid >= 0)
- {
+ int fid = open_contact_file(sn, _T("profile.html"), "wb", path, 1);
+ if (fid >= 0) {
if (utf) _write(fid, "\xEF\xBB\xBF", 3);
- char* s_msg=process_status_msg(msg, sn);
+ char* s_msg = process_status_msg(msg, sn);
_write(fid, "<h3>", 4);
_write(fid, sn, (unsigned)mir_strlen(sn));
_write(fid, "'s Profile:</h3>", 16);
@@ -601,8 +576,7 @@ unsigned long aim_oft_checksum_chunk(unsigned long dwChecksum, const unsigned ch {
unsigned long checksum = (dwChecksum >> 16) & 0xffff;
- for (int i = 0; i < len; i++)
- {
+ for (int i = 0; i < len; i++) {
unsigned val = buffer[i];
if ((i & 1) == 0)
@@ -616,16 +590,14 @@ unsigned long aim_oft_checksum_chunk(unsigned long dwChecksum, const unsigned ch return checksum << 16;
}
-unsigned int aim_oft_checksum_file(TCHAR *filename, unsigned __int64 size)
+unsigned int aim_oft_checksum_file(TCHAR *filename, unsigned __int64 size)
{
unsigned long checksum = 0xffff0000;
int fid = _topen(filename, _O_RDONLY | _O_BINARY, _S_IREAD);
- if (fid >= 0)
- {
+ if (fid >= 0) {
unsigned __int64 sz = _filelengthi64(fid);
- if (size > sz) size = sz;
- while (size)
- {
+ if (size > sz) size = sz;
+ while (size) {
unsigned char buffer[8912];
int bytes = (int)min(size, sizeof(buffer));
bytes = _read(fid, buffer, bytes);
@@ -642,8 +614,7 @@ char* long_ip_to_char_ip(unsigned long host, char* ip) host = _htonl(host);
unsigned char* bytes = (unsigned char*)&host;
size_t buf_loc = 0;
- for(int i=0; i<4; i++)
- {
+ for (int i = 0; i < 4; i++) {
char store[16];
_itoa(bytes[i], store, 10);
size_t len = mir_strlen(store);
@@ -659,10 +630,9 @@ char* long_ip_to_char_ip(unsigned long host, char* ip) unsigned long char_ip_to_long_ip(char* ip)
{
- unsigned char chost[4] = {0};
+ unsigned char chost[4] = { 0 };
char *c = ip;
- for(int i=0; i<4; ++i)
- {
+ for (int i = 0; i < 4; ++i) {
chost[i] = (unsigned char)atoi(c);
c = strchr(c, '.');
if (c) ++c;
|