Changes

Jump to navigation Jump to search
135 bytes added ,  01:54, 11 November 2019
Line 767: Line 767:  
*** This handles the requests as required by the ID, no particular order is required by the server.
 
*** This handles the requests as required by the ID, no particular order is required by the server.
 
*** All IDs in the below table are implemented by the server, for both SystemUpdate and Application.
 
*** All IDs in the below table are implemented by the server, for both SystemUpdate and Application.
*** An error is thrown if the ID is unrecognized. An error is thrown if the value of the request size1 doesn't match the expected fixed value (except for ID 0x0).
+
*** An error is thrown if the ID is unrecognized.
    
The above socket setup for the Send async thread does the following:
 
The above socket setup for the Send async thread does the following:
Line 802: Line 802:  
| 0x6 || 0x2 || u16 size0. Must be <=0x1000.
 
| 0x6 || 0x2 || u16 size0. Must be <=0x1000.
 
|-
 
|-
| 0x8 || 0x8 || s64 size1. Must not be negative.
+
| 0x8 || 0x8 || s64 size1. Must not be negative. During message-specific handling with request/reply this must also match the expected value (except for ID 0x0 which is ignored in this case).
 
|}
 
|}
   Line 821: Line 821:  
| 0x1 || [[NCM_services#ContentMetaKey|ContentMetaKey]] || 0x38-byte [[CNMT#Content_Records|Content Record]] || Gets the Content Record with type==Meta for the specified ContentMetaKey. The SystemUpdate client uses the ContentMetaKey from [[#Cmd69]].
 
| 0x1 || [[NCM_services#ContentMetaKey|ContentMetaKey]] || 0x38-byte [[CNMT#Content_Records|Content Record]] || Gets the Content Record with type==Meta for the specified ContentMetaKey. The SystemUpdate client uses the ContentMetaKey from [[#Cmd69]].
 
|-
 
|-
| 0x2 || 0x18-bytes: [[NCM_services#ContentId|ContentId]] u8 flag, u8 pad[7]. When flag is 0, during the transfer [[#SendSystemUpdateTaskInfo]] [[NS_Services#SystemUpdateProgress|SystemUpdateProgress]] total_size is increased using the size of the current chunk. Once the transfer is finished, the end result is that it would be increased by the total content-size. || Size from [[NCM_services#GetSizeFromContentId|GetSizeFromContentId]] with data from [[NCM_services#ReadContentIdFile|ReadContentIdFile]]. || Gets the entire content data for the specified ContentId.
+
| 0x2 || 0x18-bytes: [[NCM_services#ContentId|ContentId]], u8 flag, u8 pad[7]. When flag is 0, during the transfer [[#SendSystemUpdateTaskInfo]] [[NS_Services#SystemUpdateProgress|SystemUpdateProgress]] total_size is increased using the size of the current chunk. Once the transfer is finished, the end result is that it would be increased by the total content-size. || Size from [[NCM_services#GetSizeFromContentId|GetSizeFromContentId]] with data from [[NCM_services#ReadContentIdFile|ReadContentIdFile]]. || Gets the entire content data for the specified ContentId. The client uses each received chunk of data during the transfer with [[NCM_services|WritePlaceHolder]].
 
|-
 
|-
 
| 0x3 || 0x10-byte input for [[ETicket_services|es]] GetCommonTicketAndCertificateSize/GetCommonTicketAndCertificateData. || 0x8-bytes: two size u32s. Then two blocks of data with the sizes specified by the u32s. The server loads the sizes and data from [[ETicket_services|es]] GetCommonTicketAndCertificateSize/GetCommonTicketAndCertificateData. || The two blocks of data are used as the buffers for [[ETicket_services|es]] ImportTicket by the client. This is used for transferring the specified Application Patch CommonTicket.
 
| 0x3 || 0x10-byte input for [[ETicket_services|es]] GetCommonTicketAndCertificateSize/GetCommonTicketAndCertificateData. || 0x8-bytes: two size u32s. Then two blocks of data with the sizes specified by the u32s. The server loads the sizes and data from [[ETicket_services|es]] GetCommonTicketAndCertificateSize/GetCommonTicketAndCertificateData. || The two blocks of data are used as the buffers for [[ETicket_services|es]] ImportTicket by the client. This is used for transferring the specified Application Patch CommonTicket.

Navigation menu