SLPPARSESRVURL(3SLP) Service Location Protocol Library Functions SLPPARSESRVURL(3SLP)

SLPParseSrvURL - parse service URL

cc [ flag... ] file... -lslp [ library... ]
#include <slp.h>
SLPError SLPParseSrvURL(const char *pcSrvURL, SLPSrvURL** ppSrvURL);

The SLPParseSrvURL() routine parses the URL passed in as the argument into a service URL structure and returns it in the ppSrvURL pointer. If a parser error occurs, returns SLP_PARSE_ERROR. The structure returned in ppSrvURL should be freed with SLPFree(). If the URL has no service part, the s_pcSrvPart string is the empty string, "", that is, it is not NULL. If pcSrvURL is not a service: URL, then the s_pcSrvType field in the returned data structure is the URL's scheme, which might not be the same as the service type under which the URL was registered. If the transport is IP, the s_pcNetFamily field is the empty string.

If no error occurs, the return value is the SLP_OK. Otherwise, if an error occurs, one of the SLPError codes is returned.

pcSrvURL
A pointer to a character buffer containing the null terminated URL string to parse. It is destructively modified to produce the output structure. It may not be NULL.

ppSrvURL

A pointer to a ponter for the SLPSrvURL structure to receive the parsed URL. It may not be NULL.

This function or its callback may return any SLP error code. See the ERRORS section in slp_api(3SLP).

Example 1 Using SLPParseSrvURL()

The following example uses the SLPParseSrvURL() function to parse the service URL service:printer:lpr://serv/queue1:


SLPSrvURL* surl;
SLPError err;
err = SLPParseSrvURL("service:printer:lpr://serv/queue1", &surl);

SLP_CONF_FILE
When set, use this file for configuration.

slpd(1M), slp_api(3SLP), slp.conf(4), slpd.reg(4), attributes(5)

System Administration Guide: Network Services

Guttman, E., Perkins, C., Veizades, J., and Day, M. RFC 2608, Service Location Protocol, Version 2. The Internet Society. June 1999.

Kempf, J. and Guttman, E. RFC 2614, An API for Service Location. The Internet Society. June 1999.

January 16, 2003 OmniOS