Changes

2,130 bytes added ,  00:17, 4 November 2019
no edit summary
Line 570: Line 570:  
|-
 
|-
 
| 5 || [4.0.0+]
 
| 5 || [4.0.0+]
 +
|}
 +
 +
= Contents Delivery =
 +
Content can be transferred with a custom protocol over the network. This is intended for use with local [[LDN_services|ldn]] networks, however the used IP addresses can be arbitary. This can be used for SystemUpdates via the above Send/Receive commands (which are then used via [[NS_Services#ns:su|ns:su]]). Application content can also be transferred, which uses a similar (?) protocol.
 +
 +
Task [[#Cmd69|creation]] for Receive will eventually use the input addr/port with [[Sockets_services|connect()]], while the Send version will eventually do the same with [[Sockets_services|bind()]]. Hence, Receive system = client, while Send system = host.
 +
 +
Messages (requests/replies) begin with the following 0x10-byte header, then any associated data.
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Description
 +
|-
 +
| 0x0 || 0x4 || u32 magicnum. Must match 0x7152444c (request messages, normally from the Receive system) or 0x7352444c (replies, messages normally from the Send system). Code validating the magicnum always checks both magicnums, not an individual one.
 +
|-
 +
| 0x4 || 0x1 || u8 ID. The reply ID must match the request ID.
 +
|-
 +
| 0x5 || 0x1 || Padding
 +
|-
 +
| 0x6 || 0x2 || u16 size0. Must be <=0x1000.
 +
|-
 +
| 0x8 || 0x8 || s64 size1. Must not be negative.
 +
|}
 +
 +
After the header is the associated data for size0 and size1, then the message-specific data if any. Generally size0 is 0, when receiving the data for size0 the received data is unused.
 +
 +
Messages:
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! ID || Request size0 / data || Request size1 / data || Request-specific data || Reply size0 / data || Reply size1 / data || Reply-specific data || Description
 +
|-
 +
| 0x1 || 0x0 || 0x10-bytes. SystemUpdate Meta ContentMetaKey? || None || 0x0 || 0x38-bytes, unknown. || None || This is the first message used by SystemUpdate.
 +
|-
 +
| 0x3 || 0x0 || 0x10-bytes, unknown. || None || 0x0 || 0x8-bytes: two size u32s. || Two blocks of data with the sizes specified by the u32s. || This is presumably used by Application-Delivery. The two blocks of data are used as the buffers for [[ETicket_services|es]] ImportTicket.
 
|}
 
|}
    
[[Category:Services]]
 
[[Category:Services]]