Negotiating capabilities one at a time

To negotiate request capabilities one at a time, an application must make the following calls for each capability you want to negotiate:

  1. Call srv_capability_info with the cmd argument set to CS_GET, the type argument set to CS_CAP_REQUEST, and the capability argument set to the capability of interest. If the *valp argument contains CS_TRUE, the client will request this type of capability. If *valp contains CS_FALSE, the client will not.

  2. Call srv_capability_info with the cmd argument set to CS_SET, the type argument set to CS_CAP_REQUEST, and the capability argument set to the capability of interest, and *valp set to a Boolean value. The application sets *valp to CS_TRUE to support this type of capability and CS_FALSE to decline it.

An application negotiates response capabilities in a similar fashion, except that it must set the type argument to CS_CAP_RESPONSE.

An Open Server application only needs to call srv_capability_info for the request and response capabilities that it negotiates explicitly. The default values are used for all the other capabilities.