Subject: SLP API question regarding DAADVERT and SAADVERT information

From: Matt Peterson <[email-masked]>
Date: Wed, 28 Feb 2001 16:15:39 -0700

The following question came up on the openslp-devel mailing list today. 
It involves clarification of something that I do not think is addressed
in RFC 2614:

[email-masked] wrote:
>
>There seems to be a bug in SLPFindSrvs () call.
>
>        In the CallbackSrvRqst function in libslp_findsrvs.c on line 69,
>
>
>        if(msg->header.functionid != SLP_FUNCT_SRVRPLY)
>        {
>                    return 1;
>        }
>
>        In case a service request is sent for service:directory-agent or
>        service:service-agent   then  either  SAAdvert  or  DAAdvert  is
>        unicast to the UA by slpd.
>
>        The above code does not take that into account.  I feel that the
>        condition  should be extended to check  "DAAdvert  and SAAdvert"
>        also.  Currently a SRVRQST for service:directory-agent fails. 
>

As you know, special SRVRQSTs with service-type of
"service:directory-agent" and "service:service-agent" elicit DAADVERT
and SAADVERT messages instead of the usual SRVRQST message.  We feel
that it is useful for developers write software that allows
administrators to locate various SLP agents by locating services of type
"service:directory-agent" and "service:service-agent".  

This functionality would be very easy to put into OpenSLP, the RFC is
not clear on how to translate SAADVERTs and DAADVERTs into something
that is suitable for the API.  In the case of SLPFindSrvs(), what do we
use for a lifetime? 

What should the behavior of SLPReg(), SLPDereg(), SLPFindSrvs(),
SLPFindAttrs(), and SLPFindSrvTypes() be in the even that one of the
special SLP agent service types are used ("service:directory-agent",
"service:service-agent".

Our suggestions are the following:

- SLPReg() and SLPDereg() fail with a  return of
SLP_INVALID_REGISTRATION

- SLPFindSrvs() should pass the agent service URL (as parsed from the
DAADVERT or SAADVERT messages) to the  SLPSrvURLCallback function along
with a lifetime of  SLP_MAX_LIFETIME

- SLPFindAttrs() should pass attribute list (as parsed from the DAADVERT
or SAADVERT messages) to the SLPAttrCallback function

- SLPFindSrvType() should not return "service:directory-agent" and
"service:service-agent" types.  (reasons for this suggestion available
upon request).

Is this something that would be appropriate for RFC2614bis?

-- 
Matthew Peterson
Sr. Software Engineer
Caldera Systems, Inc
[email-masked]

---

From: James Kempf <[email-masked]>
Date: Wed, 28 Feb 2001 16:38:08 -0800

We can explicitly put this in the bis draft. Sun SLP handles the special 
service
types.

                 jak

---

From: Matt Peterson <[email-masked]>
Date: Wed, 28 Feb 2001 17:48:03 -0700

> We can explicitly put this in the bis draft. Sun SLP handles the special

Does Sun SLP handle the special service-types in the way suggested in
the previous email or does it do things differently?  What will go into
the bis draft so we can fix this in the next OpenSLP release.

-- 
Matthew Peterson
Sr. Software Engineer
Caldera Systems, Inc
[email-masked]
PGP Key: 9641 4E9B 8433 FC3E B899  A09E E12B 0490 8F8B C331