Protocols/MSNP/MSNP13/SDrive: Difference between revisions

From NINA Wiki
Jump to navigation Jump to search
(Future)
 
No edit summary
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
{{Protocols/MSNP/MSNP13 Navigation}}
{{Protocols/MSNP|
section=MSNP13}}


WLM 8.0 introduces a new feature called Sharing Folders.
WLM 8.0 introduces a new feature called Sharing Folders.

Latest revision as of 11:00, 13 May 2022

MSNP Protocol
Version 13
General
Overview • Changes
Challenges • Sharing Folders
Example Session
SOAP Address Book
Retrieving the lists
Updating the membership lists
Updating the AB
Other features using SOAP
Offline Messaging
Passport 3.0 authentication
Overview
Introduction • Terms • Clients
Reference
Error List • Commands • Relying Party Suite • Spotlife
Services
XMPP • HTTP Gateway • Tabs • Activities
Documentation
Development Tools • MSNP Grid
Polygamy • URLs used by MSN
Documents
Protocol Versions
Version 21
Version 18
Version 16
Version 15
Version 14
Version 13
Version 12
Version 11
Version 9
Version 8
Version 2
MSNC
Introduction • P2P • Object Descriptor • Display Pictures • File Transfer
Scenarios
Microsoft Messenger for Mac
MSNP on WebTV (MSNTV)

WLM 8.0 introduces a new feature called Sharing Folders.

The Client ID

In order to show to others client that yours supports Sharing Folders, you have to OR its Protocols/MSNP/Client ID with 0x400000 (4194304) :

ClientID |= 4194304

XML messages

They are exchanged through the notification server. Warning : you CANNOT use this method to exchange plain-text messages.

Sending

This is done via the notification server, with the UUN command, what is a payload command:

UUN (TrId) destination@email.addr.ess 1 7\r\n
message

Receiving

When someone sends you a XML message, the notification server sends :

UBN source@email.addr.ess 1 7\r\n
message

The SNM tag

It takes these attributes :

  • opcode : The operation code
  • csid : A GUID that identifies the operation
  • priority : Still unknown (sent only when the opcode is set to SNM)
  • reason : A HResult that gives more information (sent only when the opcode is set to NAK or INFO)

Synchronization requests

They are done with a SNM tag having its opcode set to SNM. Example :

<SNM opcode="SNM" csid="{aaaaaaaa-bbbb-cccc-ddee-ffgghhiijjkk}" priority="n" />

Accepting a request

This is done with a SNM tag having its opcode set to ACK.

Rejecting a request

This is done with a SNM tag having its opcode set to NAK. Example :

<SNM opcode="NAK" csid="{aaaaaaaa-bbbb-cccc-ddee-ffgghhiijjkk}" reason="0x80070000" />

Information ??

The opcode has been observed to be set to INFO. The meaning of this opcode is still unknown. Example :

<SNM opcode="INFO" csid="{aaaaaaaa-bbbb-cccc-ddee-ffgghhiijjkk}" reason="0x8F450005" />

Generating HResults

Some expressions

Logical (OR/AND/LSH) expression :

HResult = (Severity << 30) | ((Facility & 0x3FFF) << 16) | (Code & 0xFFFF)

"Graphical" expression :

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|15|14|13|12|11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|Sever|                Facility                 |                     Code                      |
| ity |                                         |                                               |
+-----+-----------------------------------------+-----------------------------------------------+

Successes

Severity = 0 (0 << 30 = 0x00000000)

Warnings

Severity = 1 (1 << 30 = 0x40000000)

Errors

Severity = 2 (2 << 30 = 0x80000000)

When an operation raises a Windows error

Facility = 7
Code     = WindowsErrorCode

You can get an error description for most of the Windows errors with the command-line utility Net.exe (case-insensitive) :

Net HelpMsg WindowsErrorCode

When Sharing Folders are unavailable

Facility = 0x0F45

Values of Code :

  • 0x0001 : Sharing Folders are disabled
  • 0x0002 : unknown, discovered by sniffing
  • 0x0005 : Sharing Folders are suspended

Critical errors

Severity = 3 (3 << 30 = 0xC0000000)

Examples

  • 0x80070002 : File not found
    • Severity =      2
    • Facility = 0x0007
    • Code  = 0x0002
  • 0x8F450001 : Sharing Folders are disabled
    • Severity =      2
    • Facility = 0x0F45
    • Code  = 0x0001

Future

According to wikipedia, "The Sharing Folder feature has been discontinued in the latest version of Windows Live Messenger (2009), and replaced with access to Protocols/MSNP/Windows Live SkyDrive instead."