#include <libxslm.h> xslm_uint32 xslm_adv_request_license( xslm_handle session_handle, xslm_uuid publisher_id, xslm_uint32 product_id, xslm_uint32 version_id, xslm_uint32 feature_id, xslm_uint32 named_user_length, xslm_string * named_user, xslm_uint32 num_units_req, xslm_uint32 * num_units_granted, xslm_uint32 force_num_units, xslm_uint32 confirm_time, xslm_uint32 cert_auth_type xslm_uint32 publisher_key_length, xslm_bin_string * publisher_key, xslm_handle * lic_handle, xslm_uint32 * status, xslm_uint32 auth_token, xslm_bin_string * auth_signature, xslm_uuid * auth_lic_sys_id );
xslm_adv_request_license()asks the license server for num_units_req license units, for the product identified by publisher_id, product_id, version_id, and feature_id. This call can also provide confirm time information, via confirm_time, to the server to specify the time interval within which an xslm_confirm()call must be issued in order for the license to remain valid.
A reference returned by
The software publisher identification.
The identification of the product whose license is requested.
The identification of the version of the product whose license is requested.
The product and versionís associated feature number; if not used, must be set to 0.
Length of named_user in bytes. If this value is 0, no name is specified, and the licensing system should use the current system-dependent name, if required.
A text string containing the id of the named user for which a license is requested. An empty string (that is, named_user_length equal to 0) indicates that the licensing system should use the current system-dependent name, if required.
The number of license units requested. A value of XSLM_DEFAULT_UNITS indicates that the default number of units, as defined by the certificate data element DEFAULT_UNITS_TO_GRANT, will be requested.
A value of XSLM_GRANT_PARTIAL indicates that the license request may be satisfied by less than the number of units requested via the num_units_req parameter. A value of XSLM_GRANT_FULL indicates that the request may only be satisfied by at least as many units as indicated by the num_units_req parameter. No other values may be specified.
Certificate authorization request type. If this value is XSLM_CERT_AUTH_NONE, the licensing system is not required to perform any specific action to authenticate the license certificate issuer before granting a license. If this value is XSLM_CERT_AUTH_PUB_KEY, the licensing system must use the value provided via the publisher_key parameter to authenticate the license certificate issuer. If this value is XSLM_CERT_AUTH_CA, then the licensing system must perform the authentication using an authentication certificate associated with the license certificate, as described in
License Certificate Authenticity.
Length of publisher_key in bytes. If this value is 0, no certificate authentication will take place, and the certificate is assumed to have been created by the application publisher.
Publisher-specified public key. Used to confirm the authenticity of a license certificate. The value passed must match the value of the publisher's public key contained in the license certificate.
A 32-bit arbitrary value created by the application and used as part of the licensing system authentication process. See
Process Descriptionfor more information.
Elapsed time (in seconds) within which the license server will expect the next
xslm_adv_confirm()call. This value is an integer greater than or equal to one. Failure to confirm continued license use will cause the license server to assume that the product is no longer active and, if the license is reusable, return it to the pool of available licenses.
The confirm_time value overrides any other confirmation value. If set to 0, the current value will be returned by the license.
Number of license units granted.
A reference returned by this call. It is used to maintain information about the currently granted license.
Completion status. Detailed error code directly processable by the caller. This value is set to XSLM_STATUS_OK if no error occurred. For other messages, see ERRORS.
An area large enough to contain a 16-byte digital signature created by the licensing system from the input parameters and auth_token. Used as part of the licensing system authentication process.
A unique identifier for the particular type of licensing system handling the current license instance. Used as part of the licensing system authentication process.
Problem with license and/or certificate
Local resources unavailable
The function return value gives an overall indication of the success or failure of the call. In addition, the status parameter will be set to one of the following values, to further help point to the reason for a failed request.
- In the future, additional values may be defined for the status variable. An application must not rely upon these being the only possible values.
Return Value Status Value Explanation XSLM_OK XSLM_STATUS_OK No errors occurred XSLM_IN_SOFT_STOP License granted due to soft-stop policy XSLM_IN_RECOVERY_MODE License granted due to disaster-recovery mode XSLM_COMM_ERR XSLM_LIC_SYS_NOT_RESP The licensing system does not respond XSLM_NO_SVRS_FOUND No license servers responding XSLM_CERT_ERR XSLM_NO_CERTIFICATES No certificate found for the specified publisher_id, product_id, version_id and feature_id XSLM_CERT_NOT_STARTED Certificate validity period not yet begun. XSLM_NOT_ENOUGH_CAPACITY Capacity requested exceeds that available. XSLM_NOT_ENOUGH_LICS Number of requested licenses is more than the number available. XSLM_NO_LICS The number of available license units is currently less than the number needed to satisfy the request. XSLM_NO_MATCHING_NODE No certificate found for current node. XSLM_NO_MATCHING_USERID No certificate found for current userID. XSLM_INVALID_PUBLIC_KEY Public keys do not match XSLM_RESRC_UNAVL XSLM_NO_RES Platform dependent XSLM_PARM_ERR XSLM_BAD_PARM One or more parameters were not correct XSLM_BAD_SESSION_HANDLE The specified session handle is invalid