Update to the UPnP – Lua gateway engine

Just posting this as I’ll be away for a couple of weeks, so what did I fix since last post;

  • Todo: UPnP security service has not been implemented (must have!)
  • Todo: Some of the wrapper code (mutexes, waithandles and sockets) are not complete for all platforms yet, currently it only runs on Windows, but this should be limited as the wrappers themselves have all been created already
  • Todo: Solid logger, as its designed to be used in the background without an interface, it must provide solid logging, even if only for troubleshooting and debugging
  • Todo: Serial library; currently network connections are supported through the LuaSocket library, but serial connections must be added to (probably through ser2net, but that lacks a windows version AFAIK)
  • Todo: The demo is a single Lua file (which is totally crap code), and should be replaced by a Lua side object oriented framework to access and modify UPnP devices/controlpoints

Continue reading

All new UPnP gateway concept; a scriptable UPnP engine

Today I finished the first working sample of the new UPnP gateway I’ve been working on, a major milestone! Stepped out of .NET and changed to platform independent code and libraries. Punished myself with hardcore C, multi-threading and multi-platform all at once, but it all seems to start working now.

 

So what is it?

Its a Lua scripting engine, glued to the pupnp library. Lua is a small, fast and very portable dynamic scripting language and pupnp is a portable UPnP library. This creates an engine that will run on any platform (Windows, Mac, Linux, or even embedded on a NAS or your wifi router), while at the same time allowing users/developers to write code in Lua. So it takes away the need to do all the complex stuff in hardcore C, threading, platforms, etc. The Lua scripts will simply run on all platforms, unmodified.

Continue reading

Some updates; xPLLib and WireShark xPL dissector

Today I posted some long overdue updates. Quite some time ago it was agreed to loosen up the xPL protocol with regard to the values in the xPL message body.

From pure ASCII it now allows UTF8 encoding for the values (keys remain ASCII only). At the same time the length restriction of 128 characters was lifted, which basically means that the value can be as long as the overall message size supports (which is set at 1500 bytes).

So todays updates are the xPLLib for .NET, version 5.3, updated to allow these changes and the WireShark dissector, version 1.1, which will now show a warning (for backward compatibility) in cases of UTF8 and long values.

There are some other minor updates too, check the changelog for those.

Continue reading

Utility to add shortcuts to a network

What is it?

A shortcut/link to a URL visible on the network, by (ab)using UPnP technology. 

What does it do?

When Windows users on a network (local subnet) browse their network, they will see icons, with a description. When they double click them, a webpage pops up. Example: On my homeserver eMule runs as a peer-2-peer file sharing application. It features a webinterface and before I had a shortcut installed on each computer/laptop in the house. Now, I have installed the app on my homeserver and they simply double click the device “eMule downloader” from the network. Continue reading