The serialized registration file contains a group of registrations that slpd(1M) registers when it starts. These registrations are primarily for older service programs that do not internally support SLP and cannot be converted. The character format of the registration file is required to be ASCII. To use serialized registrations, set the net.slp.serializedRegURL property in slp.conf(4) to point at a valid slpd.reg file. The syntax of the serialized registration file, in ABNF format (see RFC 2234), is as follows:
ser-file = reg-list reg-list = reg / reg reg-list reg = creg / ser-reg creg = comment-line ser-reg comment-line = ( "#" / ";" ) 1*allchar newline ser-reg = url-props [slist] [attr-list] newline url-props = surl "," lang "," ltime [ "," type ] newline surl = ;The registration's URL. See ;  for syntax. lang = 1*8ALPHA [ "-" 1*8ALPHA ] ;RFC 1766 Language Tag see . ltime = 1*5DIGIT ; A positive 16-bit integer ; giving the lifetime ; of the registration. type = ; The service type name, see  ; and  for syntax. slist = "scopes" "=" scope-list newline scope-list = scope-name / scope-name "," scope-list scope = ; See grammar of  for ; scope-name syntax. attr-list = attr-def / attr-def attr-list attr-def = ( attr / keyword ) newline keyword = attr-id attr = attr-id "=" attr-val-list attr-id = ;Attribute id, see  for syntax. attr-val-list = attr-val / attr-val "," attr-val-list attr-val = ;Attribute value, see  for syntax allchar = char / WSP char = DIGIT / ALPHA / other other = %x21-%x2f / %x3a-%x40 / %x5b-%x60 / %7b-%7e ; All printable, nonwhitespace US-ASCII ; characters. newline = CR / ( CRLF )
The syntax for attributes and attribute values requires that you use a backslash to escape special characters, in addition to non-ASCII characters, as specified in RFC 2608. The slpd command handles serialized registrations exactly as if they were registered by an SA. In the url-props production, the type token is optional. If the type token is present for a service: URL, a warning is signalled, and the type name is ignored. If the maximum lifetime of 65535 seconds is specified, the registration is taken to be permanent, and it is continually refreshed by the DA or SA server until it exits.
Scopes can be included in a registration by including an attribute definition with tag scopes followed by a comma-separated list of scope names immediately after the url-props production. If the optional scope-list is present, the registations are made in the indicated scopes; otherwise, they are registered in the scopes with which the DA or SA server was configured through the net.slp.useScopes property. If any conflicts occur between the scope list and the net.slp.useScopes property, an error message is issued by way of syslog(3C). Refer to information regarding LOG_INFO in syslog(3C).
Service advertisements are separated by a single blank line. Additionally, the file must end with a single blank line.
Example 1: Using a Serialized Registration File
The following serialized registration file shows an instance of the service type foo, with a lifetime of 65535 seconds, in the en locale, with scope somescope:
# register foo service:foo://fooserver/foopath,en,65535 scopes=somescope description=bogus security=kerberos_v5 location=headquarters # next registration...
See attributes(5) for descriptions of the following attributes:
|ATTRIBUTE TYPE||ATTRIBUTE VALUE|
slpd(1M), slp_api(3SLP), syslog(3C), slp.conf(4), attributes(5)
Crocker, D. and Overell, P., RFC 2234, Augmented BNF for Syntax Specifications: ABNF, The Internet Society, November 1997.
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.