- return service attributes
#include <slp.h> SLPError SLPFindAttrs(SLPHandle hSLP, const char *pcURL, const char *pcScopeList, const char *pcAttrIds, SLPAttrCallback *callback, void *pvCookie);
The SLPFindAttrs() function returns service attributes matching the attribute tags for the indicated full or partial URL.If pcURL is a complete URL, the attribute information returned is for that particular service in the language locale of the SLPHandle. If pcURL is a service type, then all attributes for the service type are returned, regardless of the language of registration. Results are returned through the callback parameter.
The result is filtered with an SLP attribute request filter string parameter, the syntax of which is described in RFC 2608. If the filter string is the empty string, "", all attributes are returned.
If an error occurs in starting the operation, one of the SLPError codes is returned.
The language-specific SLPHandle on which to search for attributes. It cannot be NULL.
The full or partial URL. See RFC 2608 for partial URL syntax. It cannot be NULL.
A pointer to a char containing a comma-separated list of scope names. It cannot be NULL or an empty string, "".
The filter string indicating which attribute values to return. Use empty string "" to indicate all values. Wildcards matching all attribute ids having a particular prefix or suffix are also possible. It cannot be NULL.
A callback function through which the results of the operation are reported. It cannot be NULL.
Memory passed to the callback code from the client. It may be NULL.
This function or its callback may return any SLP error code. See the ERRORS section in slp_api(3SLP).
Example 1 Returning Service Attributes for a Specific URL
Use the following example to return the attributes “location” and “dpi” for the URL “service:printer:lpr://serv/queue1” through the callback attrReturn:
SLPHandle hSLP; SLPAttrCallback attrReturn; SLPError err; err = SLPFindAttrs(hSLP "service:printer:lpr://serv/queue1", "default", "location,dpi", attrReturn, err);
Example 2 Returning Service Attributes for All URLs of a Specific Type
Use the following example to return the attributes “location” and “dpi” for all service URLs having type “service:printer:lpr”:
err = SLPFindAttrs(hSLP, "service:printer:lpr", "default", "location, pi", attrReturn, NULL);
When set, use this file for configuration.
See attributes(5) for descriptions of the following attributes:
Kempf, J. and Guttman, E. RFC 2614, An API for Service Location. The Internet Society. June 1999.