maybe DMR sends a new event in
the correct moment if you use "close".
You could repeat test this item (7.3.93.1A) for 20
times to see if this close method will make a faillure too.
If CTT prompts the initial lastchange missing, you
should check whether the SEQ:1 is the first value of the 5 continuous
value.
If not, it means the first change has been
overlayed by the other ones.
2009-12-09
yut616
发件人: Mehmet Sahin
发送时间: 2009-12-09 22:14:29
收件人: gupnp
抄送:
主题: Re: [gupnp] Re: [gupnp]
Support for Evented State Variable ?
Here is the sequence up to get a failure,
1. CTT Subscribes to DMR Service, OK
2. CTT Gets the initial NOTIFY with sequence "SEQ:0", OK
3. CTT fails to get initial LastChange Event from DMR, FAIL
I have captured some Event Notification packets with SEQ:1 or later which
DMR actually sends to CTT, but CTT never verifies these packets.
The critical question is why adding Close Connection header to
notify_subscriber method takes away this Eventing problem.
Mehmet Sahin
On Wed, 09 Dec 2009 15:13:25 +0200, yut616 <yut616 21cn com> wrote:
> 1. the CTT 7.3.93.1A will check the first lastchange of the 5 continuous
> setvolumn etc.
> 2. and check the second lastchange should be large than 200ms between
> the first one.
> Did CTT not receive your first lastchange? If not, it will fail.
> Or your response does not be sent in 1 second.
>
> CTT will check the lastchange in 1 second, and the event should not be
> sent frequently.
>
> 2009-12-09
>
>
>
> yut616
>
>
>
> 发件人: Mehmet Sahin
> 发送时间: 2009-12-09 19:02:06
> 收件人: gupnp
> 抄送:
> 主题: [gupnp] Support for Evented State Variable ?
> Hi,
> Are below ClientHTTP settings correct for GUPnP Framework?
> <ClientHTTP>
> <HTTP10>false</HTTP10>
> <HTTP11>true</HTTP11>
> <PersistentConnections>true</PersistentConnections>
> <Pipelining>false</Pipelining>
> </ClientHTTP
> I tested Rygel Renderer plugin which is running on GUpN Framework,
> there're failures about "Support for Evented State Variable" related CTT
> items ( 7.3.93.1, 7.3.93.1A etc...).
> The Initial Event Notification part is actually working, however there is
> a problem with next Event Notification (LastChange Events for DMR)
> packects.
> CTT waits for the LastChange state variable to be updated, and gives
> ERROR:The DUT did not update the LastChange state variable.
> I modified notify_subscriber method as below and the problem is removed.
> However as far as I know, adding Closing Connection header for Persistent
> Connections is not something acceptable.
> How do I overcome this conflict, is below modification seems reasonable
> to
> you ?
> /* Send notification @user_data to subscriber @value */
> static void
> notify_subscriber (gpointer key,
> gpointer value,
> gpointer user_data)
> {
> SubscriptionData *data;
> const char *property_set;
> char *tmp;
> SoupMessage *msg;
> SoupSession *session;
> data = value;
> property_set = user_data;
> /* Create message */
> msg = soup_message_new (GENA_METHOD_NOTIFY,
> data->callbacks->data);
> if (!msg) {
> g_warning ("Invalid callback URL: %s",
> (char *) data->callbacks->data);
> return;
> }
> + soup_message_headers_append (msg->request_headers,
> + "CONNECTION",
> + "close");
> +
> soup_message_headers_append (msg->request_headers,
> "NT",
> "upnp:event");
> Thanks
> Mehmet Sahin
> --
> To unsubscribe send a mail to gupnp+unsubscribe\@o-hand.com
--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
--
To unsubscribe send a mail to gupnp+unsubscribe\@o-hand.com
|