3.1.4.6 GetUpdateData

A DSS calls the GetUpdateData method to get the full update metadata for the list of revision IDs requested.

 <wsdl:operation name="GetUpdateData">
    <wsdl:input message="tns:GetUpdateDataSoapIn" />
    <wsdl:output message="tns:GetUpdateDataSoapOut" />
 </wsdl:operation>

The SOAP operation is defined as follows.

 <soap:operation soapAction="http://www.microsoft.com/SoftwareDistribut
 ion/GetUpdateData" style="document" />

Request validation:

The USS validates inputs as given in the following table. If any of the inputs are not valid, the USS MUST return a SOAP fault message to the DSS with the <ErrorCode> set, as shown in the table.

Input

Validation conditions

ErrorCode

cookie

MUST be present and nonempty.

InvalidCookie

cookie

The EncryptedData MUST be the correct format such that the USS can read values out of it, as specified in section 2.2.4.8.

InvalidCookie

protocolVersion in the cookie EncryptedData

MUST be of the format x.y where x is the Major Version and y is the Minor Version number.

InvalidParameters

protocolVersion in the cookie EncryptedData

Major Version MUST be 1.

IncompatibleProtocolVersion

updateIds

MUST not be NULL.

InvalidParameters

updateIds

Number of elements in the array MUST NOT be greater than the MaxNumberOfUpdatesPerRequest value returned in the GetConfigData (section 3.1.4.4) response message.

InvalidParameters

Data processing:

The USS MUST process this message as follows:

  1. Search for the requested updateIds in the Categories Table, Update Classifications Table, Detectoids Table, and Update Revision Table.

  2. For each entry found in step 1, create an entry in the ArrayOfServerSyncUpdateData element of the response. Initialize the entry as follows:

    1. For categories, update classifications, and detectoids, set the UpdateIdentity element to the CategoryIdentity, ClassificationIdentity, and DetectoidIdentity, respectively, and the XML metadata from the table.

    2. For update Revisions found in the Revision Table, set the UpdateIdentity to the UpdateIdentity from the table.

    3. For each ServerSyncUpdateData entry, initialize the XmlUpdateBlob or the XmlUpdateBlobCompressed element with the XML metadata stored in the table.<36>

    4. For each update Revision, initialize the FileDigestList element of the ServerSyncUpdateData with the FileDigest of the content files associated with the Revision Table entry.

  3. For each content file of an update Revision found in the Revision Table in step 2, create an entry in the ArrayOfServerSyncUrlData element of the response. Initialize the FileDigest and MUUrl fields of this entry from the information in the Revision Table.

Response:

If no errors occur during processing, the USS MUST return the success response to the DSS.

If an error occurs during processing, the USS MUST return a SOAP fault. The SOAP fault SHOULD contain an <ErrorCode> element, as defined in section 2.2.9. If the SOAP fault contains an <ErrorCode> element, its value MUST be one of the following.

If the DSS receives a SOAP fault containing an <ErrorCode> element, it MUST react to the fault with one of the following error codes, which are defined in section 2.2.9.3.

  • InvalidParameters

  • InternalServerError

  • InvalidCookie

  • IncompatibleProtocolVersion

If the DSS receives a fault that does not contain an <ErrorCode> element, it MUST stop the protocol.