summaryrefslogtreecommitdiff
path: root/protocols/EmLanProto/src
diff options
context:
space:
mode:
authordartraiden <wowemuh@gmail.com>2019-07-21 19:59:18 +0300
committerdartraiden <wowemuh@gmail.com>2019-07-21 19:59:18 +0300
commitb078dfb78c89aea87cd422eae52694738e473cf3 (patch)
treeca896e82a8a5ce81f80d041f4aee7fdeeb007162 /protocols/EmLanProto/src
parentee7e29d02e94e969c1154515cd0c408c591a2414 (diff)
Restore "Free for chat" status support (fixes #1963)
Diffstat (limited to 'protocols/EmLanProto/src')
-rw-r--r--protocols/EmLanProto/src/amdproto.cpp4
-rw-r--r--protocols/EmLanProto/src/mlan.cpp6
-rw-r--r--protocols/EmLanProto/src/mlan.h1
3 files changed, 9 insertions, 2 deletions
diff --git a/protocols/EmLanProto/src/amdproto.cpp b/protocols/EmLanProto/src/amdproto.cpp
index 31609cec3e..fc620b8cae 100644
--- a/protocols/EmLanProto/src/amdproto.cpp
+++ b/protocols/EmLanProto/src/amdproto.cpp
@@ -66,9 +66,9 @@ static INT_PTR __cdecl EMPGetCaps(WPARAM wParam, LPARAM)
return PF1_IM | PF1_BASICSEARCH | PF1_ADDSEARCHRES | PF1_PEER2PEER | PF1_INDIVSTATUS |
PF1_MODEMSG | PF1_FILE | PF1_CANRENAMEFILE | PF1_FILERESUME;
case PFLAGNUM_2:
- return PF2_ONLINE | PF2_SHORTAWAY | PF2_LONGAWAY | PF2_LIGHTDND | PF2_HEAVYDND;
+ return PF2_ONLINE | PF2_SHORTAWAY | PF2_LONGAWAY | PF2_LIGHTDND | PF2_HEAVYDND | PF2_FREECHAT;
case PFLAGNUM_3:
- return PF2_SHORTAWAY | PF2_LONGAWAY | PF2_LIGHTDND | PF2_HEAVYDND;
+ return PF2_SHORTAWAY | PF2_LONGAWAY | PF2_LIGHTDND | PF2_HEAVYDND | PF2_FREECHAT;
case PFLAG_UNIQUEIDTEXT:
return (INT_PTR)Translate("User name, IP address or '*'");
default:
diff --git a/protocols/EmLanProto/src/mlan.cpp b/protocols/EmLanProto/src/mlan.cpp
index 6c2b9e13b2..6ad76e2f95 100644
--- a/protocols/EmLanProto/src/mlan.cpp
+++ b/protocols/EmLanProto/src/mlan.cpp
@@ -41,6 +41,7 @@ CMLan::CMLan()
m_amesNa = nullptr;
m_amesOccupied = nullptr;
m_amesDnd = nullptr;
+ m_amesFfc = nullptr;
m_pFileConnectionList = nullptr;
@@ -61,6 +62,7 @@ CMLan::~CMLan()
delete[] m_amesNa;
delete[] m_amesOccupied;
delete[] m_amesDnd;
+ delete[] m_amesFfc;
}
void CMLan::DeleteCache()
@@ -321,6 +323,7 @@ void CMLan::OnRecvPacket(u_char *mes, int len, in_addr from)
case ID_STATUS_NA: mesAway = m_amesNa; break;
case ID_STATUS_OCCUPIED: mesAway = m_amesOccupied; break;
case ID_STATUS_DND: mesAway = m_amesDnd; break;
+ case ID_STATUS_FREECHAT: mesAway = m_amesFfc; break;
}
if (mesAway) {
@@ -508,6 +511,9 @@ int CMLan::SetAwayMsg(u_int status, char* msg)
case ID_STATUS_DND:
ppMsg = &m_amesDnd;
break;
+ case ID_STATUS_FREECHAT:
+ ppMsg = &m_amesFfc;
+ break;
default:
return 1;
}
diff --git a/protocols/EmLanProto/src/mlan.h b/protocols/EmLanProto/src/mlan.h
index df3793a3a1..8396f5d105 100644
--- a/protocols/EmLanProto/src/mlan.h
+++ b/protocols/EmLanProto/src/mlan.h
@@ -141,6 +141,7 @@ private:
char* m_amesNa;
char* m_amesOccupied;
char* m_amesDnd;
+ char* m_amesFfc;
struct TFileConnection
{