summaryrefslogtreecommitdiff
path: root/protocols/SkypeWeb/src/skype_proto.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/SkypeWeb/src/skype_proto.cpp')
-rw-r--r--protocols/SkypeWeb/src/skype_proto.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/protocols/SkypeWeb/src/skype_proto.cpp b/protocols/SkypeWeb/src/skype_proto.cpp
index b566b1c245..82a3ec1b00 100644
--- a/protocols/SkypeWeb/src/skype_proto.cpp
+++ b/protocols/SkypeWeb/src/skype_proto.cpp
@@ -33,9 +33,9 @@ DWORD_PTR CSkypeProto::GetCaps(int type, MCONTACT)
case PFLAGNUM_1:
return PF1_AUTHREQ;
case PFLAGNUM_2:
- return PF2_ONLINE;
+ return PF2_ONLINE | PF2_INVISIBLE;
case PFLAGNUM_3:
- return PF2_ONLINE;
+ return PF2_ONLINE | PF2_INVISIBLE;
case PFLAGNUM_4:
return PF4_FORCEADDED | PF4_NOAUTHDENYREASON;
case PFLAG_UNIQUEIDTEXT:
@@ -147,6 +147,11 @@ int CSkypeProto::SetStatus(int iNewStatus)
m_iStatus = m_iDesiredStatus = ID_STATUS_OFFLINE;
}
+ else if (iNewStatus == ID_STATUS_INVISIBLE)
+ {
+ PushRequest(new GetEndpointRequest(ptrA(getStringA("RegistrationToken")), ptrA(getStringA("Endpoint"))));
+ PushRequest(new SetStatusRequest(ptrA(getStringA("RegistrationToken")), false));
+ }
else
{
if (old_status == ID_STATUS_CONNECTING)