[Nice] what threads are needed?

Tony Di Croce dicroce at gmail.com
Mon Aug 30 15:36:56 PDT 2010


Aha!

I wasn't serializing the port number on NiceCandidate.addr and
NiceCandidate.base_addr! I added that, as you suggested, and I'm now sending
data between my agents!


    td

On Mon, Aug 30, 2010 at 3:24 PM, Youness Alaoui <
youness.alaoui at collabora.co.uk> wrote:

> On 08/30/2010 06:20 PM, Tony Di Croce wrote:
> >
> > Ok, well, I guess that's not my problem then!
> >
> > I feel like I'm very close...
> >
> > I have two agents... both of which are getting their local candidates,
> > serializing them and sendthing them to the other...
> >
> > Both of them are also sending their local credentials to each other and
> > calling "nice_agent_set_remote_credentials()" on them...
> >
> > They are both talking to my stun server, and I believe that all of the
> > information is being serialized and deserialized correctly (it's safe to
> > use nice_address_to_string() and nice_address_set_from_string() to
> > serialize and deserialize the NiceCandidate->addr and
> > NiceCandidate->base_addr members right?)...
> So far good, yes, you can serialize them with the to_string and
> from_string.
> Just don't forget to get/set the port on the NiceAddress.
> >
> > BTW, do I need to set the "NiceCandidate->username" and
> > "NiceCandidate->password" fields if I am seperately sending the
> > credentials ( I currently am both sending them as part of my
> > NiceCandidate serialization process and seperately for calls to
> > set_remote_credentials())....?
> no, you don't need to.. some compatiblity modes (like google, or MSN) have
> a
> username/password different for each candidate, but that's from the old
> draft of
> ICE (draft 6) and it's not used anymore, now only the get/set credentials
> is
> needed. If you set a user/pass on the candidate itself, it will override
> the
> global stream credentials for that candidate.
>
> >
> > The behaviour that I'm seeing is that my componet state never changes to
> > 4... it goes right from 2 to 5... then a send() of course fails...
> yes, 5 is FAILED, so something goes wrong.. if you run your program with
> the
> environment variable "NICE_DEBUG=all" set, and send me the logs from both
> sides
> for the same call, I'll have a look at see why it failed.
> You can send the logs to me directly in this case :)
>
> Youness.
> >
> >     td
> >
> > On Mon, Aug 30, 2010 at 2:47 PM, Youness Alaoui
> > <youness.alaoui at collabora.co.uk <mailto:youness.alaoui at collabora.co.uk>>
> > wrote:
> >
> >     On 08/30/2010 05:43 PM, Tony Di Croce wrote:
> >     > In the "test-thread.c" example application that is included in the
> >     > libnice source tree a number of threads are created...
> >     >
> >     > My current thinking is that "lthread" and "rthread" are needed to
> >     > implement the main loop of the agents themselves... IE.. The
> threads
> >     > that execute the "candidate-gathering-done" etc signals...
> >     >
> >     > I'm less sure about "ldthread" and "rdthread"..... These seem to
> >     be used
> >     > when you're attaching a recv function... So I'm guessing these are
> >     > internal worker threads that actually do the data transfer between
> >     > endpoints? If so, do you need a thread like this per stream or is
> one
> >     > worker thread for the whole agent sufficient?
> >     >
> >     >     td
> >
> >     No threads are needed, The test-thread.c example is for "testing
> >     threads", it's
> >     there to make sure that even if libnice is being used by a
> >     multi-threaded
> >     environment, the library is thread-safe. It does not mean at all
> >     that you need
> >     to be using threads in order to make it work.. you only need one
> >     thread, your
> >     main one, the one where your main_loop is running, that's why you
> >     give the
> >     nice_agent_new the main_context to your mainloop, and that's why you
> >     give it to
> >     the nice_agent_attach_recv. That's all you need.
> >
> >     p.s: Please keep asking your questions on the mailing list.
> >
> >     Youness.
> >
> >
> >
> >
> > _______________________________________________
> > Nice mailing list
> > Nice at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/nice
>
>
>
> _______________________________________________
> Nice mailing list
> Nice at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/nice
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/nice/attachments/20100830/ac8616b5/attachment.htm>


More information about the Nice mailing list