OpenHome Networking (ohNet) is a modern, cross platform, multi-language UPnP stack
C++ C C# Java Makefile JavaScript Other
Latest commit f0ac7a9 Aug 26, 2016 Tim Cussins Revert "Initial events are occasionally failing to be delivered - the…
… tcp connect attempt from the device stack is never acknowledged by the network stack on the control point. This can cause control point's discovery to fail. Mitigate this by retrying the connect for initial events. See #4469."

This reverts commit 1d7bd01.

These retries have caused big slowdown during boot, in the presence of Windows 7 machines.
According to GDo, they Sub and Unsub quickly, and our initial events all fail to connect.
Permalink
Failed to load latest commit information.
Docs Move fop to thirdparty directory to try to stop github misinterpretin… Apr 10, 2015
Generated Remove most generated proxies and providers, retaining only the ones … Aug 8, 2014
Helpers Do NOT instruct rsync to --delete-excludes by default. Feb 21, 2013
JsDoc Change layout of source/includes. Includes should be in a form other … Jul 21, 2011
OpenHome Revert "Initial events are occasionally failing to be delivered - the… Aug 26, 2016
Os Suppress constant reports about the TCP_NODELAY socket option not bei… Aug 16, 2016
Scripts Change layout of source/includes. Includes should be in a form other … Jul 21, 2011
thirdparty some fixes to get windows universal to compile under 64 bit toolchain May 19, 2016
.gitignore Added Build.stripped dir to .gitignore Aug 25, 2015
AllTests.py fixes to build for windows 8.1 against vs2013 May 26, 2016
Build.py Change default builds to be ndebug (release). Scripted builds use the… May 29, 2012
Common.mak exclude mdns from compilation on winrt May 26, 2016
DoxyfileC Update Doxyfiles in line with yesterdays rearrangement of the source … Jul 22, 2011
DoxyfileCppCore Update Doxyfiles in line with yesterdays rearrangement of the source … Jul 22, 2011
DoxyfileCppStd Updated C++ Providers directory location in CppStd doxygen file. Aug 12, 2011
DoxyfileCs Update Doxyfiles in line with yesterdays rearrangement of the source … Jul 22, 2011
DoxyfileJava Renamed DoxyfileJava.txt to DoxyfileJava. Aug 2, 2011
HelgrindSuppressions.txt Work towards using helgrind Apr 20, 2016
INSTALL.txt Replace Zapp by ohNet Sep 6, 2012
License.txt Update copyright dates to include 2016 Jan 5, 2016
Makefile exclude mdns from compilation on winrt May 26, 2016
MitLicense.txt Be clearer about which OpenHoem company holds copyright Dec 21, 2015
OhNet.mak only force c as cpp on universal windows builds May 26, 2016
README Minor fix for README Sep 11, 2015
T4Linux.mak Remove OS name from Tools directory. Sep 4, 2012
T4Windows.mak Remove OS name from Tools directory. Sep 4, 2012
UserTargets.mak Don't rebuild for 'make bundle'. Nov 12, 2012
ValgrindSuppressions.txt Update valgrind suppressions in line with upgrade to libc on some bui… Nov 25, 2013
bundle_binaries.py fixes to build for windows 8.1 against vs2013 May 26, 2016
go Copy utility scripts from ohOs/ohWidget, mainly to get access to line… Mar 14, 2012
go.bat Copy utility scripts from ohOs/ohWidget, mainly to get access to line… Mar 14, 2012
hudson_build.py Publication of API docs has been broken for some time. Temporary work… Jul 22, 2016
jenkins_wrapper.py Added wrapper script to allow QNAP-x86 builds in the slave chroot Mar 3, 2016
make.bat Change layout of source/includes. Includes should be in a form other … Jul 21, 2011

README

ohNet library
------------
ohNet is a library for the discovery, monitoring, manipulation and implementation
of UPnP devices, generalized to be extensible to other similar protocols.

Prerequisites
-------------
On Windows:
    Microsoft Visual Studio
    (Express versions are okay. Versions earlier than 2010 will have to edit Types.h to
    include content equivalent to stdint.h.)
    Microsoft .NET 4.0 SDK (optional, required for C# bindings and all changes to service descriptions)
    Java (optional, required for building Java bindings)

On Linux:
    Mono (optional, required for changes to service descriptions)
    Java (optional, required for building Java bindings)

Building
--------
    make

Note: On Windows, ensure you are in a visual studio command prompt or have otherwise set Visual
Studio's environment variables.

If you have a .NET runtime available and want to regenerate makefiles, proxies or providers, run
    make generate-makefiles uset4=yes
    make GenAll uset4=yes

Installing
----------
See "INSTALL.txt".

Directories
-----------
Build/
    Generated during the build process. Build artefacts go here.

Build/Obj/Windows/
Build/Obj/Posix/
    Binaries and shared libraries are built to here during a build.

Build/Tools/
    Binaries that are required by the build process are built to here.

Build/Include/OpenHome
    Header files needed by users of the library are copied here during the build.

Build/Include/OpenHome/Net/C
    Header files for C language bindings.

Build/Include/OpenHome/Net/Cpp
    Header files for C++ language bindings.

Build/Include/OpenHome/Net/Core
Build/Include/OpenHome/Net/Private
    Not intended for external use.

OpenHome
    Base source code.

OpenHome/Net
    Source code shared by Control Point and Device stacks.

OpenHome/Net/ControlPoint
    Control Point stack.

OpenHome/Net/Device
    Device stack.

OpenHome/Net/Bindings
    Language bindings (for C++, C#, Java, JavaScript & C).


Make targets
------------
all
    This is the default target. It (should) build everything.

ohNet.net.dll
    ohNet as a dll/shared object plus C# bindings

ohNetJavaAll
    ohNet as a dll/shared object plus Java bindings

generate-makefiles
    This regenerates the makefiles in Generated/ that are derived from the
    service descriptions. GNU make will detect these changes automatically,
    but Microsoft's nmake doesn't handle this, so Windows users will need
    to use this target when the service descriptions or T4 templates for
    the makefiles have been changed.

install
    See "INSTALL.txt".

uninstall
    See "INSTALL.txt".

clean
    Removes files from Build/Obj/$platform/ and Build/Include/

mostlyclean
    Also removes the auto-generated makefiles from Generated/

maintainer-clean
    Also removes Build/Tools/
    (Should - but doesn't yet - remove auto-generated source files too.)