[Nice] complete example

Bryce Allen ballen at ci.uchicago.edu
Fri Feb 1 13:28:48 PST 2013


Patch attached. Found a bug in print_local_data when there is more than
one local candidate (wasn't printing spaces in between). Also replaced
the busy waiting with condition variables.

-Bryce

On Fri, 1 Feb 2013 11:24:32 -0600
Bryce Allen <ballen at ci.uchicago.edu> wrote:
> Hi Rohan,
> 
> Thanks for testing it out and for the feedback!
> 
> Re parse_args, I think it is correct as is. The line returned by fgets
> may not contains '\n' (if it's very long), so it's not safe to only
> check for '\n' as end of string, and the !isspace(*p) already handles
> the '\n' as well as other whitespace to make sure it won't be included
> in the arg:
> 
>         // find end of current arg
>         while (*p != '\0' && !isspace(*p)) { p++; }
>         if (*p == '\0')
>             break;
>         *p = '\0';
> 
> Were you getting a crash or a hang? It works for me when I copy just
> the single line, but if I include extra empty lines it just hangs.
> Also if your terminal wraps the input line, it will fail. It would be
> nice to have a less fragile format - I think that is what Youness was
> suggesting with the SDP format. I've attached a new version that
> handles empty lines and re-prompts if the parse fails, and fixes a
> memory leak in parse_remote_data.
> 
> Re removing the thread for mainloop, I'm not sure the STUN
> binding/keep alive requests will continue if the thread is quit after
> negotiation is complete (during the send/receive phase). It seems
> nice to manually drive the loop for tests and avoid the complexity of
> threads, but I'm not sure it's what we want for an example.
> 
> -Bryce
> 
> 
> On Fri, 1 Feb 2013 12:37:43 +0530
> Rohan Garg <rohan16garg at gmail.com> wrote:
> > Hey everyone :)
> > I went over the program a bit, and I'm attaching a patch that fixes
> > a couple of issues, just minor stuff regarding the thread_mainloop
> > and making the code a wee bit more async.
> > 
> > There also seems to be a bug on line 241 of the original code where
> > it only stops at \0 , I believe that should be \n. When using \0 the
> > program simply crashes at " remote_candidates =
> > g_slist_reverse(remote_candidates); " in parse_remote_data.
> > 
> > 
> > On Fri, Feb 1, 2013 at 6:05 AM, Youness Alaoui
> > > I have a plan of adding a new API call for transforming the
> > > candidates into SDP and to parse candidates from SDP. I think it
> > > will help people, and I think it would be a good idea to port your
> > > code to it. I'll let you know tomorrow what I find!
> > >
> > Could you explain this a bit on the list in another thread? :)
> > 
> > Regards
> > Rohan Garg
> > 
> > > Thanks,
> > > Youness.
> > >
> > >
> > > On 01/31/2013 07:30 PM, Bryce Allen wrote:
> > >> I expanded my nicetest.c into a complete example, using a simple
> > >> serialization format and copying/pasting the data between
> > >> clients. It's inspired by icedemo from pjnath, but I didn't find
> > >> having separate commands for each phase useful for testing and
> > >> it made reading the code more difficult, so I just have three
> > >> phases:
> > >>
> > >> 1) gather candidates, print serialized local data
> > >> 2) prompt user for remote data, parse and set when entered
> > >> 3) if successful, prompt for data to send to remote end
> > >>
> > >> I'm probably missing some failure cases and some error checking,
> > >> but it seems like it could be a useful addition to the main
> > >> distribution after a fixup. I can re-license under LGPL/MPL if
> > >> needed.
> > >>
> > >> Also please let me know if I'm doing anything fundamentally wrong
> > >> here. I'm using pretty much the same flow for a real application,
> > >> with condition variables to synchronize instead busy waiting.
> > >>
> > >> Thanks,
> > >> Bryce
> > >>
> > >>
> > >>
> > >> _______________________________________________
> > >> 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 --------------
A non-text attachment was scrubbed...
Name: nicetest-fix2.diff
Type: text/x-patch
Size: 2427 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/nice/attachments/20130201/c138c53a/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 490 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/nice/attachments/20130201/c138c53a/attachment.pgp>


More information about the nice mailing list