[Nice] complete example

Bryce Allen ballen at ci.uchicago.edu
Fri Feb 1 09:24:32 PST 2013


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.c
Type: text/x-csrc
Size: 14340 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/nice/attachments/20130201/6e7dbfa8/attachment.c>
-------------- 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/6e7dbfa8/attachment.pgp>


More information about the nice mailing list