Release notes - Nabto Client SDK - Version 4.3.0 ** Summary of changes This release adds a few new features and many performance improvements and bug fixes. ** New Feature * [NABTO-1592] - Add tunnel API functions in Cordova plugin * [NABTO-1733] - Secure LAN communication * [NABTO-1796] - Add client support for Apple tvOS ** Improvement * [NABTO-1606] - Docker test: Test performance and behavior in LAN * [NABTO-1634] - Synchronize all wrapper implementations and add tests for all API functions * [NABTO-1722] - Build armv7k libraries for watchOS support * [NABTO-1864] - Add version info to win32 .dll files ** Bug * [NABTO-1458] - DEVICE_DETACHED statements do not appear in kibana * [NABTO-1493] - Missing CA cert in client installation yields confusing error message * [NABTO-1512] - Cordova plugin fails on Android 4.4.2 * [NABTO-1524] - Stream error on remote connections on PIC32 * [NABTO-1525] - NabtoSetOption missing in Android wrapper * [NABTO-1538] - Relay connections takes 18 seconds to be released after close * [NABTO-1544] - Calling nabtoSetStaticResourceDir with NULL is not working as documented * [NABTO-1548] - Test nabto stun client using our traffic shaping router * [NABTO-1554] - Dotnet stream echo hangs * [NABTO-1555] - Dotnet stream echo fails * [NABTO-1557] - Update Android wrapper with new SDK functions * [NABTO-1563] - Update Cordova wrapper with new SDK functions * [NABTO-1565] - Bitcode issue with iOS dynamic lib * [NABTO-1574] - Android JCenter demo crashes upon start as it tries to write to a readonly location * [NABTO-1591] - NabtoInstallDefaultStaticResources is missing error code on failure * [NABTO-1652] - async_http_client_test fails intermittently in jenkins * [NABTO-1657] - Tunnel stress tests fail * [NABTO-1665] - Timeout when accessing offline device instead of device offline message * [NABTO-1688] - Deadlock during simpleclient app shutdown * [NABTO-1702] - Nabto CLI fails on macOS with references to hardcoded path on CI server * [NABTO-1704] - Various small issues in nabto-cli * [NABTO-1716] - Reports about HTML DD apps broken after Android 8.1 update * [NABTO-1719] - Nabto-cli users are confused since they think gcc-4.8 on ubuntu 14.04 is okay * [NABTO-1720] - Android skins are not installed into user dir * [NABTO-1724] - Queries in separate sessions in multiple parallel threads causes crash * [NABTO-1727] - Timeout instead of device offline error if local discovery disabled * [NABTO-1739] - Memory leak in client concurrency stress test * [NABTO-1754] - Failure propagating errors returned from application_event() * [NABTO-1793] - Apple rejected Nabto Client app due to crash when testing in IPv6 env * [NABTO-1799] - Apple rejected legacy Nabto apps as CA webservices cannot be invoked on IPv6 * [NABTO-1839] - Not possible to disable local access with Nabto Client SDK trunk version (works fine on 4.1) * [NABTO-1842] - Device exception details not propagated from fetchUrl * [NABTO-1849] - Android AssetManager cannot be deprecated due to some necessary assets not being installed through SDK * [NABTO-1856] - UDP relay is broken in certain configurations * [NABTO-1861] - Streaming does not close connection in .net client wrapper * [NABTO-1863] - .NET wrapper's getFingerPrint crashes Release Notes - Nabto Client SDK - Version 4.2.0 ** Summary of changes No Nabto Client SDK changes for this release (only Nabto Cloud and uNabto SDK). Release Notes - Nabto - Version 4.1.0 ** Summary of changes This version greatly improves streaming performance in non-optimal network conditions. Also, new means for access control are introduced: A custom webhook configured in the basestation can now control device access. The custom webhook can decide if access should be granted based on the identity embedded in the client certificate when requesting access. Or the client can specify a custom JSON document passed on to the service, e.g. to embed an access token meaning that client certificate management is no longer necessary to control access. ** New Feature * [NABTO-1316] - Simple function that creates all appropriate files and directories for nabto clients * [NABTO-1527] - Central certificate-less access control ** Improvement * [NABTO-351] - Release number must be available in clients * [NABTO-1335] - Tunnel access needs to be explicitly opened * [NABTO-1354] - Expose function to remove cert in client API * [NABTO-1481] - Add an add_user.json function to the Fingerprint ACL module * [NABTO-1482] - Use Fingerprint ACL in uNabto Tunnel ** Bug * [NABTO-1252] - uNabto fails on ubuntu 14.04 with openssl 1.0.0 and gcc 4.8.4 * [NABTO-1469] - Low stream throughput with moderate latency and packet loss * [NABTO-1480] - Timeouts occurs with minimal packet loss * [NABTO-1535] - Client leaks UDP sockets Release Notes - Nabto - Version 3.0.15 ** Summary of changes This version of Nabto involves some major changes to the platform: - Browser plugins are no longer supported: All major browser vendors are abandoning plugin support, making plugin based apps a dead-end. Browser plugins for Nabto 3.0.14 will be available for download for use with older browsers until medio 2017. Security issues will be fixed in this period. - Deprecation of HTML DD based applications: With the end of browser support, we focus on making it simple to develop standalone mobile apps and desktop applications. This means better and simpler support for Nabto request/response applications through the dedicated Nabto RPC API. Nabto RPC is a client-only simplification that moves the interface definition from central HTML DD bundles (nabto/unabto_queries.xml) to the client app. More or less all new apps were using nabtoFetchUrl() with an HTML DD bundle containing just the unabto_queries.xml interface definition. - Migrating to the Nabto RPC API: Just invoke nabtoRpcSetInterface() with the interface xml file previously included in HTML DD bundles. Next, invoke nabtoInvokeRpc() to retrieve the same JSON response as previously returned with nabtoFetchUrl(). Nothing changes on the devices side so all existing devices work with the new client approach. See nabto_client_api.h for details. - RSA fingerprint based authentication: A new authentication method based on the fingerprint of self-signed certs and local device pairing as an alternative to the "guest cert" application level authentication. This yields simpler device applications while still maintaining a simple user workflow with no need for cumbersome central CA signing of client certificates. See TEN036 "Security in Nabto Applications" for details. - Global cloud deployment: The Nabto Basestation now supports multi-datacenter deployment, i.e. with clusters of basestations deployed in multiple geographical regions. Completely transparent for client and devices, devices register automatically with the closest region and clients automatically locates the correct region of the device. - Better support for app development: - More robust cordova support - See: - Https://github.com/nabto/cordova-plugin-nabto - Https://www.npmjs.com/package/cordova-plugin-nabto - Simplified library installation through jCentral and Cocoapods - See: - Https://github.com/nabto/android-client-api - Https://cocoapods.org/pods/NabtoClient - Https://github.com/nabto/nabto-cocoapod-demo - Production ready starter apps for Ionic2/Cordova and iOS (Xamarin and Android apps in development) - Https://github.com/nabto/ionic-starter-nabto - Platforms being moved out of uNabto SDK: We are currently tidying up the uNabto SDK with the goal of having it consist only of common framework code. Platforms will instead be supported through separate individual github repos - Read more at https://github.com/nabto/unabto. ** New Feature * [NABTO-948] - Cordova/PhoneGap Nabto plugin * [NABTO-1000] - Global Autoscaling Basestation Deployment * [NABTO-1018] - Provisioning / user-install of shared secret * [NABTO-1097] - Improve global statistics * [NABTO-1197] - Split GSPs from the controller * [NABTO-1239] - Global basestation Milestone 2 (production MVP) * [NABTO-1271] - New Node.js and DynamoDB based user management services * [NABTO-1339] - Implement self signed certificates * [NABTO-1341] - Finger print authentication in uNabto ** Improvement * [NABTO-1199] - Use a Cassandra from GSP and controllers instead of using the GSP attach protocol * [NABTO-1208] - Run plugin tests on Android platform * [NABTO-1209] - More cordova plugin tests * [NABTO-1215] - Create cordova plugin package * [NABTO-1219] - Split gsp into a separate application * [NABTO-1220] - Split relay nodes into its own application * [NABTO-1232] - Add Http interface to gsp_app * [NABTO-1241] - Individual basestation service monitoring using Prometheus * [NABTO-1251] - Basestation binary to query AWS metadata for IP and region * [NABTO-1254] - uNabto module for pairing * [NABTO-1255] - Create cassandra production deployment * [NABTO-1256] - Create monitoring infrastructure * [NABTO-1257] - Create basestation deployment * [NABTO-1260] - Add structured events to the controller, relay and gsp. * [NABTO-1274] - Upgrade curl to 7.49.1 * [NABTO-1275] - Migrate nabtoproxy to pion. * [NABTO-1277] - Create nabto-cloud rest api * [NABTO-1279] - Cassandra management tool * [NABTO-1281] - Forward structured logging to elk * [NABTO-1285] - Make it possible to supply an rpc interface in the client. * [NABTO-1287] - Move gsp key, cert and root cert to own tables * [NABTO-1289] - Use pre_shared_key pr device from cassandra in the gsp. * [NABTO-1305] - Bulk device key cloud api * [NABTO-1312] - Rest api to change gsp_certificates * [NABTO-1317] - Cloud api get domains/:domain/devices should reflect created keys but not yet seen devices * [NABTO-1320] - Refine the way users are handled in the cloud api * [NABTO-1324] - Add new RPC functions from native API to Android wrapper * [NABTO-1325] - Add new RPC functions from native API to iOS wrapper * [NABTO-1326] - Add new RPC functions from native API to Cordova wrapper * [NABTO-1340] - Accept self signed certificates throughout the software * [NABTO-1343] - Client api changes to fully support self signed certificates and extra connect authentication * [NABTO-1344] - Add accept Selfsigned certs option to domain config * [NABTO-1351] - Add new RPC functions from native API to Cordova-Android wrapper * [NABTO-1355] - Populate DNS cache to remedy slow lookups * [NABTO-1358] - Add fingerprint to local connections * [NABTO-1378] - Publish Android API on GitHub * [NABTO-1389] - Make it possible to extract pubkey fingerprint on specific cert through client API ** Bug * [NABTO-1124] - Unprovisioning a device should allow activation token to be used only with same device later * [NABTO-1155] - Udpchannel fails on ipv6 only hosts. * [NABTO-1185] - Android on nat64 with local clat cannot connect. * [NABTO-1186] - Simpleclient app hangs most of the time in a nat64+clat android setup * [NABTO-1237] - HTML DD not properly refreshed when metadata changes * [NABTO-1270] - Make sure session key is appended in plugin * [NABTO-1272] - Hosted client crashes frequently on Danfoss basestation * [NABTO-1282] - Research/fix unstable cassandra prometheus metrics aggregation * [NABTO-1284] - Client SDK crash in lifecycle stress test * [NABTO-1286] - Problems with TCP relay observed on win32 * [NABTO-1290] - Nabto Client API errors not propagated cleanly to Cordova client * [NABTO-1291] - Nabto Client API errors on initial requests in Ionic demo app * [NABTO-1292] - A null pre_shared_key should not make it possible to use the all zeroes key * [NABTO-1302] - Cached stamps was checked in a tick driven context * [NABTO-1313] - Simpleclient_app needs visual studio runtime. * [NABTO-1318] - GET domains/:domain/devices has bugs * [NABTO-1333] - Nabto Cloud API mock allows multiple duplicate domains * [NABTO-1353] - Return errors from the gsp to the client. * [NABTO-1363] - Recurly webhook configuration broken * [NABTO-1368] - Missing log files from nabto-cloud-api * [NABTO-1379] - Expose Nabto errors through client API * [NABTO-1383] - Client api shutdown hangs * [NABTO-1386] - StartupAndOpenProfile() missing in Android implementation of Cordova wrapper * [NABTO-1387] - Resource handling in unabto tunnels is not good enough * [NABTO-1401] - Multi tunnel on mac should increase fds like normal tunnel * [NABTO-1402] - Tabs exists in unabto github repo * [NABTO-1403] - Tunnel logging fails on windows theres no flush * [NABTO-1404] - Tcp fallback fails on windows in the tunnel application * [NABTO-1405] - Remove partially implemented (and broken) tunnel support from Cordova * [NABTO-1406] - Android Nabto Video app crashes after connect Release Notes - Nabto - Version 3.0.14 ** New Feature * [NABTO-483] - IPv6 support * [NABTO-573] - Nabto iOS Video App * [NABTO-1018] - Provisioning / user-install of shared secret * [NABTO-1106] - Beta version of Nabto-over-DNS ** Improvement * [NABTO-6] - Use new code sign certificate * [NABTO-562] - uNabto: Use libtomcrypt random * [NABTO-1108] - Secrets.json parsing from node service * [NABTO-1112] - Web service logging to Kibana * [NABTO-1114] - Detect device wan port change in basestation to allow p2p after such change * [NABTO-1127] - Provisioning must work through Nabto local connections * [NABTO-1174] - Detect address-symmetric NATs and collect statistics ** Sub-task * [NABTO-1075] - Web service solution for shared secrets * [NABTO-1077] - uNabto provisioning * [NABTO-1085] - RTSP authentication * [NABTO-1087] - Local legacy connect is broken * [NABTO-1102] - Create an enable dns fallback option in unabto options. * [NABTO-1115] - Better ability to customize configuration * [NABTO-1116] - Improve deployment of node service * [NABTO-1143] - Reduce CPU usage on ARM platforms * [NABTO-1167] - IOS Kikato crash when accessing a file on web * [NABTO-1168] - Cannot send statistics packets if address is resolved to multiple endpoints. * [NABTO-1172] - Plugin not recognising nabto:// in Firefox 43 * [NABTO-1173] - uNabto: Empty binary folders for pc_demo * [NABTO-1177] - Light weight curl detection for provisioning - Only look in system files * [NABTO-1179] - Bug in device attach. * [NABTO-1181] - GSP memory leak. ** Bug * [NABTO-663] - Use DNS name for STUN server and resolve to multiple IP adresses * [NABTO-742] - Bad streaming performance on ARM platforms * [NABTO-920] - Replace use of standard STUN with much simpler Nabto specific approach * [NABTO-933] - Relay observed in p2p compatible network configuration * [NABTO-1073] - Crash if shutting down 0.5 sec or less after initiating connect * [NABTO-1083] - IOS UIWebView history bug on iOS9 * [NABTO-1089] - IE crashes at shutdown due to log system flushing pending lines * [NABTO-1092] - Nabto plugin does not work in firefox 42. * [NABTO-1113] - uNabto can go into a state where it cannot reattach. * [NABTO-1126] - Udp controller handshake packets are not retried. Release Notes - Nabto - Version 3.0.13 ** New Feature * [NABTO-994] - Support restrictive network configurations for handshake and relay * [NABTO-918] - Nabto client Nuget package * [NABTO-1030] - Java Nabto Client API wrapper demo ** Improvement * [NABTO-46] - Android: Cleanup legacy pre-API-11 code * [NABTO-1005] - Add pion http commands to control gperf profiling * [NABTO-1012] - Device should automatically re-attach on new socket if NAT related problems detected ** Bug * [NABTO-906] - Apple dislikes our app under iOS8 * [NABTO-925] - Assertion failure in framingpacket.cpp * [NABTO-982] - Stress test segmentation fault with many parallel clients and poor network * [NABTO-998] - IE consistently crash on certain long URLs * [NABTO-1004] - Memory leak in basestation related to statistics reporting * [NABTO-1032] - Access restrictions in tunnel causes crash in some scenarios * [NABTO-1036] - Nuget package installed in multiple projects * [NABTO-967] - Black bar on iphone and ipad apps when started in landscape * [NABTO-990] - Connecting state stops when rotating device * [NABTO-1072] - HTML DD handling in some cases extremely slow on moderately poor connections Release Notes - Nabto - Version 3.0.12 ** Sub-task ** New Feature * [NABTO-98] - Basestation data interface * [NABTO-114] - Support for Nabto streaming through a serial RS 232 interface * [NABTO-173] - RRD for uNabto * [NABTO-216] - Streaming - Client and micro must be symmetrically implemented * [NABTO-372] - Create Visual Basic demos for the .NET client API * [NABTO-848] - Documentation for GSP Webservice ** Improvement * [NABTO-278] - URRD Documentation * [NABTO-5] - Stat tools for concurrent queue * [NABTO-25] - More specific error codes on prepare-for-offline errors * [NABTO-39] - Crypto code cleanup: Remove unsupported algos * [NABTO-40] - Crypto code cleanup: Rewrite in C * [NABTO-78] - Ensure tcp streaming send non-partial packets * [NABTO-102] - Highest client layers must handle detailed communication status from comms layer * [NABTO-209] - Review closing connections/processes in big nabto. * [NABTO-217] - Verify solution in FallbackConnectionBase::verifyHandshake * [NABTO-279] - Implement more effective streaming on micro TCP fallback connection * [NABTO-315] - Simplify simpleclientapp * [NABTO-316] - Refactor uNabto tunnel to make it more readable * [NABTO-321] - Missing name of field in signup error message * [NABTO-346] - Make unabto code c89 compliant * [NABTO-554] - Refactor async events in uNabto to be simpler. * [NABTO-734] - Firefox 36 extension * [NABTO-927] - Full duplex streaming support * [NABTO-946] - Create tunnel on ephemeral port from Nabto Client * [NABTO-950] - License check in GSP ** Bug * [NABTO-30] - Missing acknowledge of successful connection * [NABTO-58] - Tunnel clients blocked for a minute if target connection closed * [NABTO-148] - Better support for returning exceptions from uNabto applications * [NABTO-152] - Update starterkit documentation with new unabto function names * [NABTO-212] - Creating second tunnel listening on an unavailble TCP port should fail * [NABTO-231] - 100% cpu usage in controller * [NABTO-283] - Android: Rotating on Android 4.4 goes to discover * [NABTO-322] - Reset password does not work on verification link error page * [NABTO-323] - Resetting password for a session should log you out from that session * [NABTO-393] - Remove antipatterns from the fallback connections in the controller. * [NABTO-508] - Remove stale TransceiverUDT code * [NABTO-522] - Local p2p connections doesn't always reconnect. * [NABTO-550] - Client is unaware of stream has been stopped * [NABTO-658] - Regression: Controller crashes in TCP handshake * [NABTO-830] - Regression: Client crashes in tunnel stress test * [NABTO-852] - P2p connection fail between axis camera and ipad * [NABTO-885] - Client sometimes uses 3000% more CPU when streaming than uNabto end * [NABTO-903] - uNabto web requests fails in several network configurations. * [NABTO-915] - Connection resource leak in uNabto observed by many users * [NABTO-926] - Assertion failure in packet.cpp when running framework test * [NABTO-928] - Stream rate increase is linear instead of exponential as expected * [NABTO-931] - .NET streamdemo crashes * [NABTO-944] - Device disconnect data exchange problem * [NABTO-947] - Tcp fallback connections is leaked in unabto * [NABTO-416] - Stream stops if bandwidth temporarily is limited * [NABTO-424] - If the stream is stopped because of network latency, the stream in the client is not closed * [NABTO-793] - Admin popup does not work in Video App * [NABTO-860] - Smarter editing of existing devices * [NABTO-888] - Enable camera app users to create QR codes * [NABTO-893] - SDK PIC-18 demo fails in "unabto_open_socket" * [NABTO-945] - Regression: nabtoTunnelClose hangs for 40 seconds * [NABTO-949] - Stream from client to device breaks at large throughput * [NABTO-951] - Regression: fallback connection mixup * [NABTO-952] - If dns resolving fails we try to send data on an invalid address leading to permission denied errors. * [NABTO-954] - Fix gsp webservice api * [NABTO-955] - Regression: Streams on legacy relay connections cannot be established * [NABTO-956] - Regression: stream stops on a congested fallback connection * [NABTO-957] - Bad video app behavior observed at hotel in Germany * [NABTO-958] - Regression: TCP connections leaked between GSP and controller when P2P connection is established * [NABTO-960] - Client crash in PacketFraming::onKeepAliveHeartBeat * [NABTO-962] - Skin installation should not be controlled by deviceDriverInstallation config option * [NABTO-963] - Streams on fallback connections are not properly released when closing TCP client * [NABTO-965] - Device behind 1s lag makes several communication errors. * [NABTO-968] - Undeclared SOL_TCP and MSG_NOSIGNAL in tunnel demo on Mac * [NABTO-970] - Double requests received from IE plugin * [NABTO-971] - uNabto on same machine as IE client fails * [NABTO-973] - Regression: Cannot open stream to device - Connections/streams not released? * [NABTO-975] - When a nabto connection dies all streams should automatically die too. * [NABTO-976] - Regression: streaming ACK clock is not working properly * [NABTO-977] - Stresstest fails in connect test on 3.0.12rc2 * [NABTO-978] - Concurrent queue pop and probably other methods can throw an exception. * [NABTO-979] - Regression: there is a problem with ack and resent packets in streaming. * [NABTO-983] - Regression: UDP relay broken * [NABTO-985] - Regression: Stream stops when adding 5% packet loss * [NABTO-986] - Regression: fallback is not compatible with old clients * [NABTO-987] - Regression: 2000034 decode failure on large responses Release Notes - Nabto - Version 3.0.11 ** Sub-task * [NABTO-654] - Make Windows application with a demo weather station device. * [NABTO-655] - Add stream demo to Windows demo application. * [NABTO-753] - QR reader in iOS Tunnel App * [NABTO-763] - Cannot install plugin in IE on Windows XP * [NABTO-772] - Dynamic log settings in uNabto. * [NABTO-773] - Syslog in unabto + expire * [NABTO-774] - Syslog in client + expire * [NABTO-775] - Implement a debug payload and packet. * [NABTO-776] - Implement debug payload handling for both clients and unabto in the gsp. * [NABTO-777] - Implement debug packet handling in uNabto * [NABTO-778] - Implement debug payload handling in the client * [NABTO-804] - Custom HTML-DD download on demo.nab.to * [NABTO-831] - On failed connect, navigation title goes up but doesnt come down * [NABTO-875] - Relay connection close can fail if errors occurs on the tcp connection * [NABTO-878] - Crash on iOS7 * [NABTO-882] - Statisticschannel cannot send statistics messages. * [NABTO-887] - Investigate high CPU usage in GSP and controller during relay * [NABTO-895] - Update Axis document to new Video App * [NABTO-898] - IE plug-in fails to install on XP ** Bug * [NABTO-27] - Failure when opening local streams when restarting uNabto device and keeping client running * [NABTO-221] - Prevent device identity theft by forcing authentication * [NABTO-687] - NSLP html-dd: implement rest of IO pins (digital) * [NABTO-767] - TCP tunnel is reported ready but clients fail if connecting * [NABTO-768] - TCP relay connections fail if unabto to gsp latency is larger than 1000 ms * [NABTO-790] - Make login screens on Android and iOS consistent * [NABTO-818] - Several nabto tests hang during shutdown * [NABTO-823] - NabtoTunnelClose() wrongly returns NABTO_OK even when tunnel could not be closed * [NABTO-828] - Valgrind complaints about threadcache * [NABTO-858] - Android 4.4.4 crash on invalid open of certificate * [NABTO-859] - Add list of client error codes to appropriate document * [NABTO-866] - Intermittent failure with multiple concurrent streams * [NABTO-876] - Android: get lib version * [NABTO-879] - Android: Crash when quickly tapping hardware "back" out of the app * [NABTO-880] - Connection closed if garbage received at client during handshake * [NABTO-924] - Deadlock if closing tunnel immediately after tcp connect * [NABTO-929] - TCP_FALLBACK fails on a congested tcp connection ** Improvement * [NABTO-695] - Improve the way uNabto application exceptions are presented to clients. * [NABTO-733] - Firefox 35 extension * [NABTO-783] - Cleanup of temporary video demo app * [NABTO-789] - Update Android shell to include tunnel info timer * [NABTO-901] - QR scanner in Nabto App * [NABTO-923] - Simple optimizations to improve connect time ** New Feature * [NABTO-542] - Standalone Nabto application for Windows 7+ Release Notes - Nabto - Version 3.0.10 ** Sub-task * [NABTO-672] - Create demo setup documentation * [NABTO-756] - Firefox on Linux- holding F5 for some secs. locks Firefox ** Bug * [NABTO-705] - Move resources (e.g. skins) out of nabto-client and into nabto-data package * [NABTO-718] - Firefox crashes * [NABTO-747] - uNabto VS2005 build broken * [NABTO-786] - Space is interpreted as part of hostname, resulting in error 100004 * [NABTO-857] - Dropped packets in a connect response from uNabto is disastreous. * [NABTO-866] - Intermittent failure with multiple concurrent streams ** Improvement * [NABTO-11] - General Nabto whitepaper * [NABTO-707] - Improve error propagation: Simplify interface, use JSON framework for JSON messages * [NABTO-732] - Firefox 34 extension ** New Feature * [NABTO-589] - Connection information * [NABTO-619] - IOS tunnel app * [NABTO-483] - IPv6 support Release Notes - Nabto - Version 3.0.9 ** Sub-task * [NABTO-605] - Nabto/Modbus Gateway: CoffeeFS integration tests * [NABTO-660] - Document uNabto streaming. * [NABTO-722] - Connections are not closed properly to micro devices * [NABTO-740] - Plugins do not show demo.clx.danfoss.com properly. * [NABTO-741] - Firefox crashes on win32 * [NABTO-751] - "Error loading page" is shown during HTML DD download when navigating using the "Remote access" button on the discover page (IE x64) * [NABTO-762] - Firefox hangs when pressing F5 5 times on the Nabduino Temperature page. ** Bug * [NABTO-175] - Javascript Firefox extension crashes randomly * [NABTO-692] - Remove use of NABTO_LOG_ADMIN as it cannot be disabled * [NABTO-694] - Rak wireless camera module streaming performance * [NABTO-717] - Missing byte order conversions in FreeRTOS+lwIP platform adapter * [NABTO-719] - C++ based STUN client included per default in unabto_tunnel * [NABTO-720] - Streaming echoes wrong data in some cases * [NABTO-737] - Redirecting to 4 slashes after nabto://self/show_homepage ** Improvement * [NABTO-620] - uNabto nanostreaming * [NABTO-731] - Firefox 33 extension ** New Feature * [NABTO-1] - Javascript firefox extension Release Notes - Nabto - Version 3.0.8 ** Sub-task * [NABTO-36] - When stream closes in micro server, client should be notified * [NABTO-416] - Stream stops if bandwidth temporarily is limited * [NABTO-424] - If the stream is stopped because of network latency, the stream in the client is not closed * [NABTO-425] - Every time SET_STATE(stream, ST_CLOSED) is called in unabto streaming we should provide the reason as an enum code. * [NABTO-531] - Document and rewrite rendezvous * [NABTO-566] - Reset password-link on signup error page is broken * [NABTO-574] - RC2 - Introduction of _STRINGIFY in unabto_evn_base.h causes IAR to fail building * [NABTO-606] - Nabto/Modbus Gateway: Configuration of device * [NABTO-615] - Graceful shutdown of simpleclient_app takes 22 seconds when an active open stream exists. * [NABTO-625] - Streaming fails if we send 0 bytes in the client, this is a general stream issue. * [NABTO-626] - Rewrite uNabto streaming interface to match the nano streaming interface * [NABTO-627] - Integrate congestion control into micro streaming. * [NABTO-630] - Add events to unabto streaming such that stream handlers can be implemented in a non polling fashion. * [NABTO-631] - It seems a stream cannot be closed from the server if there's unacked sent data. * [NABTO-633] - Nabto/Modbus Gateway: Run time state * [NABTO-635] - Nabto/Modbus Gateway: "data sampler" * [NABTO-636] - Nabto/Modbus Gateway: time scheduler * [NABTO-640] - Nabto/Modbus Gateway: platform specific tasks * [NABTO-659] - Make unabto_stream_accept polled * [NABTO-664] - Stream fails with simulated 100ms delay. * [NABTO-677] - Stream echo fails with lots of data from the client echoed through uNabto. * [NABTO-682] - Escape special characters in client on json response * [NABTO-690] - Basestation package conffiles file needs newline in end of file * [NABTO-691] - The starterkit is missing the stream_echo demo which is referenced from TEN023 * [NABTO-696] - Prepare offline access on empty address does something * [NABTO-697] - Streaming fails after running for a while * [NABTO-706] - Json error messages do not return header field ** Bug * [NABTO-143] - Updating the html device driver file isn't recognized by nabto client * [NABTO-147] - Error when returning AER_REQ_SYSTEM_ERROR in uNabto application_event() * [NABTO-447] - NabtoStreamRead returns a valid result pointer when resultLength is 0 but nabtoFree crashes. * [NABTO-494] - Cleanup / streamline document layouts - Use common template * [NABTO-548] - A blocking nabtoStreamWrite is not aborted when the stream is closed by the device. * [NABTO-550] - Client is unaware of stream has been stopped * [NABTO-555] - Encryption mismatch bug * [NABTO-578] - uNabto_tunnel streaming on 1Mbit bandwith only gives 42-43kB/s * [NABTO-591] - uNabto_tunnel for win32 is not working * [NABTO-657] - WindowMaster piggyback stops during disconnected network * [NABTO-667] - Firefox 32 extension ** Improvement * [NABTO-623] - Single threaded uNabto TCP tunnel * [NABTO-624] - Faster sha256 for pic18 ** New Feature * [NABTO-389] - Google Chrome Nabto Client - Proof of concept Release Notes - Nabto - Version 3.0.7 ** Sub-task * [NABTO-524] - Android: Not appending session key correctly * [NABTO-567] - RC2 - IE may crash in local discovery * [NABTO-568] - Nabto Client crash in log adapter * [NABTO-579] - Update HTML-DD for NSLP to demo * [NABTO-616] - RTX default password * [NABTO-617] - Android: No log * [NABTO-618] - Simpleclientapp triggers a bad history device ** Bug * [NABTO-41] - HTML DD check (all platforms): Many users report that HTML is not correctly refreshed * [NABTO-291] - Add explicit "Create Account" and "Reset" buttons on login pages * [NABTO-325] - Deleted html_dd (rm on disk) is not updated automatically * [NABTO-505] - Android: Capital letter in url fails * [NABTO-526] - Android: Nabto app bookmarks has been seen to crash app * [NABTO-533] - Android: Session key is wrong when returning to app * [NABTO-540] - Adapt kitchen sink demo into current SDK documentation * [NABTO-563] - IOS: Can't rotate Nabto iOS App on iPhone. * [NABTO-598] - Android: Turning device sends user to login screen ** Improvement * [NABTO-169] - Finish uNabto communication example and Test * [NABTO-318] - Replace broken history hack with clean solution * [NABTO-497] - Support for multiple platforms within iOS * [NABTO-590] - General iOS App for video streaming with H.264 * [NABTO-597] - Implement symmetric to port restricted nat traversal * [NABTO-607] - Firefox 31 extension * [NABTO-608] - Add logging of available micro events on basestation Release Notes - Nabto - Version 3.0.6 ** Sub-task * [NABTO-383] - Openssl for windows phone * [NABTO-384] - Boost for windows phone * [NABTO-385] - Tpt for windows phone * [NABTO-386] - Xerces for windows phone * [NABTO-387] - Curl for windows phone * [NABTO-470] - Build Xerces for Windows Phone 8. * [NABTO-471] - Build Boost for Windows Phone 8. * [NABTO-472] - Build TPT for Windows Phone 8. * [NABTO-473] - Build cURL for Windows Phone 8. * [NABTO-502] - Rewrite UDP channel to be simpler and not use threads together with asio. * [NABTO-507] - Firefox crashes * [NABTO-532] - Implement ipv6 in udp channels ** Bug * [NABTO-7] - Client API hangs at process exit when trace logging enabled * [NABTO-171] - Nabto client library hangs during shutdown when trace logging is enabled. * [NABTO-183] - Client: Default to .html files in HTML_DD instead of .tpt files. * [NABTO-284] - Skin bundle unzipped every minute in IE * [NABTO-313] - "Redirecting to ..." message should contain the actual address when redirecting from the Login page to the requested page. * [NABTO-378] - Android: App is still running after closing the app and turning off the screen. * [NABTO-400] - Change self-pages to use "//" instead of "://" * [NABTO-406] - Windows Browser: Back button goes to discover (2x back) * [NABTO-465] - NabtoStreamRead does not block as described in the header file. * [NABTO-503] - China is broken * [NABTO-511] - IE - Crashes in demo2.nabduino.net * [NABTO-523] - China streaming. * [NABTO-529] - Timerchannel.cpp generates error during shutdown - Only observed on Win8 * [NABTO-539] - Parameter Missing error when not expected. * [NABTO-544] - Nabto://self/logs, selection of specific log file renders log html content * [NABTO-547] - IOS: Landscape right hides statusbar * [NABTO-561] - Firefox 30 extension ** Improvement * [NABTO-128] - IOS7 ready Client Release Notes - Nabto - Version 3.0.5 ** Sub-task * [NABTO-80] - Embed webserver a la hosted client * [NABTO-127] - HTML_DD: Make whole HTML_DD plug-able and documented * [NABTO-151] - RTX: Update documentation after AmilieSDK update * [NABTO-365] - Write document: "uNabto SDK: Writing a uNabto HTML client application" * [NABTO-376] - Write documentation: Writing a Nabto API client application * [NABTO-403] - Fix that a connection in unabto is closed when the tcp connection is closed. * [NABTO-408] - IOS bug: Tapping a device on Discover sometimes taps elements on the next page * [NABTO-409] - IOS bug: First capital letter in remote field on Discover is not recognized as a valid url. * [NABTO-410] - uNabto starterkit demo is not working properly * [NABTO-411] - All browsers crash on empty show_image * [NABTO-474] - Build OpenSSL for Windows Phone 8. ** Bug * [NABTO-394] - Running e2etest with simulated network delay gives an error. * [NABTO-398] - Fix e2etest issue - Join all threads * [NABTO-415] - Arduino Nabto demo not working in starterkit. * [NABTO-446] - Calling nabtoStreamOpen with nabto://weather.u.nabto.net fails ** Improvement * [NABTO-150] - RTX: Build Nabto source with new AmilieSDK * [NABTO-168] - Improve RTX HTML_DD * [NABTO-297] - Improve starterkit documentation based on feedback from readers * [NABTO-418] - Firefox 29 support * [NABTO-423] - Move WinHttpPostDataSubmitter and create in HttpClientFactory * [NABTO-449] - Make it possible to choose basestation through client API * [NABTO-478] - Remove all scheme/prefixes from the nabto skin. ** Task * [NABTO-414] - Add list query functions and other missing query functions to unabto * [NABTO-420] - Write document: "Nabto Platform Specification" Release Notes - Nabto - Version 3.0.4 ** Sub-task * [NABTO-225] - Put version numbers into the software based on tags * [NABTO-242] - Override javascript requests to use native windows phone method instead * [NABTO-277] - Html-dd to view uRRD data * [NABTO-288] - Build ios lib with XCode5 and clang * [NABTO-396] - Fix win64 shared_from_this trunk issue * [NABTO-407] - Linux Firefox crashes when showing local device ** Bug * [NABTO-271] - IE: URL string manipulated in address bar * [NABTO-285] - IE11: Prepare offline access always returning "Could not be installed" * [NABTO-295] - IE hangs on basic operations * [NABTO-307] - Tunnel tests fail when running old devices towards new basestations * [NABTO-314] - Nabto win32 debug fails due to missing map files * [NABTO-326] - Hosted plugin (HTTP proxy) crashes very frequently * [NABTO-327] - Hosted plugin (HTTP proxy) enters infinite login loop in certain situation * [NABTO-343] - Confusing log statements from reachability probe * [NABTO-371] - Fix crash in controller due to deleted message pointer * [NABTO-392] - Remove antipatterns from fb_connection* ** Improvement * [NABTO-77] - Extract minimal subset of necessary services from old website * [NABTO-201] - Write and/or document scripts for developer building and testing * [NABTO-274] - Improvement of Nabto API wrapper to Android * [NABTO-276] - Edit android apps to use the new api wrapper * [NABTO-286] - When the Logout button on the self/discover page is clicked a page with the old design is showed. * [NABTO-390] - Firefox 28 plugin ACKNOWLEDGMENTS This software uses the following open source libraries, all rights reserved by the respective copyright holders: OpenSSL - Http://www.openssl.org/ (see License Notice [1] below) Boost - Http://www.boost.org/ (see License Notice [2] below) LibTPT - Https://github.com/codemer/libtpt (see License Notice [3] below) libcurl - Http://curl.haxx.se (see License Notice [4] below) zlib - Https://www.zlib.net (see License Notice [5] below) cpp-netlib - Https://github.com/cpp-netlib/cpp-netlib (see License Notice [6] below) Mini-XML - Https://michaelrsweet.github.io/mxml (see License Notice [7] below) ParseWebData - Https://github.com/comargo/parsewebdata (see License Notice [8] below) Pion Network Library - Https://github.com/splunk/pion (see License Notice [9] below) WebSocket++ - Https://github.com/zaphoyd/websocketpp (see License Notice [10] below) LibTomCrypt - Https://github.com/libtom/libtomcrypt (see License Notice [11] below) LICENSE NOTICES ================================================================================ [1] OpenSSL (https://www.openssl.org/source/license.html) OpenSSL License --------------- /* ==================================================================== * Copyright (c) 1998-2017 The OpenSSL Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. All advertising materials mentioning features or use of this * software must display the following acknowledgment: * "This product includes software developed by the OpenSSL Project * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" * * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to * endorse or promote products derived from this software without * prior written permission. For written permission, please contact * openssl-core@openssl.org. * * 5. Products derived from this software may not be called "OpenSSL" * nor may "OpenSSL" appear in their names without prior written * permission of the OpenSSL Project. * * 6. Redistributions of any form whatsoever must retain the following * acknowledgment: * "This product includes software developed by the OpenSSL Project * for use in the OpenSSL Toolkit (http://www.openssl.org/)" * * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. * ==================================================================== * * This product includes cryptographic software written by Eric Young * (eay@cryptsoft.com). This product includes software written by Tim * Hudson (tjh@cryptsoft.com). * */ Original SSLeay License ----------------------- /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) * All rights reserved. * * This package is an SSL implementation written * by Eric Young (eay@cryptsoft.com). * The implementation was written so as to conform with Netscapes SSL. * * This library is free for commercial and non-commercial use as long as * the following conditions are aheared to. The following conditions * apply to all code found in this distribution, be it the RC4, RSA, * lhash, DES, etc., code; not just the SSL code. The SSL documentation * included with this distribution is covered by the same copyright terms * except that the holder is Tim Hudson (tjh@cryptsoft.com). * * Copyright remains Eric Young's, and as such any Copyright notices in * the code are not to be removed. * If this package is used in a product, Eric Young should be given attribution * as the author of the parts of the library used. * This can be in the form of a textual message at program startup or * in documentation (online or textual) provided with the package. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * "This product includes cryptographic software written by * Eric Young (eay@cryptsoft.com)" * The word 'cryptographic' can be left out if the rouines from the library * being used are not cryptographic related :-). * 4. If you include any Windows specific code (or a derivative thereof) from * the apps directory (application code) you must include an acknowledgement: * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" * * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * The licence and distribution terms for any publically available version or * derivative of this code cannot be changed. i.e. this code cannot simply be * copied and put under another distribution licence * [including the GNU Public Licence.] */ ================================================================================ [2] Boost (http://www.boost.org/users/license.html) Boost Software License - Version 1.0 - August 17th, 2003 Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and accompanying documentation covered by this license (the "Software") to use, reproduce, display, distribute, execute, and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following: The copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================================================ [3] LibTPT (https://github.com/codemer/libtpt/blob/master/LICENSE) LibTPT Class Library Template Processor Copyright (C) 2002-2010 Isaac W. Foraker (isaac@noscience.net) All Rights Reserved Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the Author nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE AND DOCUMENTATION IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================================================ [4] Curl (https://curl.haxx.se/legal/licmix.html) COPYRIGHT AND PERMISSION NOTICE Copyright (c) 1996 - 2017, Daniel Stenberg, daniel@haxx.se, and many contributors, see the THANKS file. All rights reserved. Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Except as contained in this notice, the name of a copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization of the copyright holder. ================================================================================ [5]: zlib (https://www.zlib.net/zlib_license.html) /* zlib.h -- interface of the 'zlib' general purpose compression library version 1.2.11, January 15th, 2017 Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. Jean-loup Gailly Mark Adler jloup@gzip.org madler@alumni.caltech.edu */ ================================================================================ [6]: cpp-netlib (https://github.com/cpp-netlib/cpp-netlib/blob/master/LICENSE_1_0.txt) See Boost License [2] above ================================================================================ [7]: Mini-XML (https://michaelrsweet.github.io/mxml/mxml.html#LICENSE) The Mini-XML library and included programs are provided under the terms of the GNU Library General Public License version 2 (LGPL2) with the following exceptions: 1. Static linking of applications to the Mini-XML library does not constitute a derivative work and does not require the author to provide source code for the application, use the shared Mini-XML libraries, or link their applications against a user-supplied version of Mini-XML. If you link the application to a modified version of Mini-XML, then the changes to Mini-XML must be provided under the terms of the LGPL2 in sections 1, 2, and 4. 2. You do not have to provide a copy of the Mini-XML license with programs that are linked to the Mini-XML library, nor do you have to identify the Mini-XML license in your program or documentation as required by section 6 of the LGPL2. ================================================================================ [8]: ParseWebData (https://github.com/comargo/parsewebdata/blob/master/LICENSE) NOTE: The 0.0.1 version in use by the Nabto software is licensed under MIT, newer versions are licensed under LGPL3. The MIT License (MIT) Copyright (c) 2012 Cyril Margorin, Imperx Inc. and other contributors https://code.google.com/p/parsewebdata/ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================================================ [9]: Pion Network Library (https://github.com/splunk/pion/blob/develop/COPYING) See Boost License [2] above. ================================================================================ [10]: WebSocket++ (https://github.com/zaphoyd/websocketpp/blob/master/COPYING) Copyright (c) 2014, Peter Thorson. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the WebSocket++ Project nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PETER THORSON BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================================================ [11]: LibTomCrypt (https://github.com/libtom/libtomcrypt/blob/develop/LICENSE) LibTomCrypt is public domain. As should all quality software be. Tom St Denis