[Live-devel] Removal of "inet_ntoa()" (and "our_inet_ntoa()")

Ross Finlayson finlayson at live555.com
Fri Nov 25 20:06:28 PST 2011


As you all know (because you've all read the FAQ :-), the LIVE555 libraries can be called from multiple threads, although only if each thread uses its own "TaskScheduler" and "UsageEnvironment".  Even this, however, may not be totally safe, because of the possibility that the LIVE555 libraries, and/or your own code, may call system library functions that themselves are not 'thread safe'.

The VLC developers have identified a handful of such system library functions that are currently used the LIVE555 library code, and I am currently going through the code to remove/replace them.

The first such library function is "inet_ntoa()" (which, in our code, we renamed "our_inet_ntoa()").  I have just released a new version (2011.11.26) of the "LIVE555 Streaming Media" code that removes calls to this function.

In its place is a new class "AddressString" - defined in "groupsock/include/NetAddress.hh".  For example, now, in the code, instead of calling
      our_inet_addr(addr)
we now call
      AddressString(addr).val()

If your own code happens to use multiple threads, you may wish to consider replacing any calls to "inet_ntoa()" with this new mechanism.

(A note to the VLC developers: This new release removes the need for the first, and largest of your 'LIVE555 patches'.  I hope to do the same for your other patches also.)


Ross Finlayson
Live Networks, Inc.
http://www.live555.com/

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20111125/5161fb6f/attachment-0001.html>


More information about the live-devel mailing list