Home | Downloads | Compatibility list | libnatpmp | MiniSSDPd | xchat upnp patch | Forum
Last modified on February 6th 2013.
September 2005: a beta version of the client library is available
here.
October the 6th: a much cleaner form of the client library is available
here.
October the 7th: I found a workaround
for a bug of my old LinkSys router and
improved the sample program. From now you can check if there are
new files into this directory.
May the 24th 2006: I finally got the time and motivation to
make miniupnpd work on my OpenBSD box. I will release it once
I clean up the code a bit.
June 11th: João Paulo Barraca sent me a
patch
to add three new UPnP methods to miniupnpc.
June 21st: Craig Kadziolka sent several patches for using
miniupnpc under MS Windows. Find the result
here.
June 30th: Thanks to Craig Kadziolka, the
miniupnpc library
is now working well under MS Windows. Well I hope so :)
July 1st: I compiled the
miniupnp client sample under windows with
MinGW. You'll find it on the download
page. João Paulo Barraca sent his modified sources of
the client. I have put
them
directly on the download page,
I thought it forked too much from the initial code.
See his web page
here.
July 6th: I modified the miniUPnP client in order to be able to
send command to both WANCommonInterFaceConfig and WANIPConnection
services. As usual, find the update on the
download page.
July 13th: I finally took the time to put the daemon on the
download page. If you are using OpenBSD,
go and get it, I need your feedback. A linux version will be
release... when I get the time ! If you want to help me in
this task, send me an email.
July 31st: The client was changed to fix some compatibilities problems.
The daemon is now correctly responding to SSDP request with the right
ST: line.
September 9th: The miniUPnP client has been released for around one year
now and there is still plenty of work to do. Thanks to Seth Mos from
pfSense pass rules are now added.
I have just added proper
support for redirection descriptions in the daemon. New versions of both
the client and the daemon are available on the
download page.
September 18th: Thanks to Rick Richard, miniupnpd is now sending SSDP
notify and byebye
messages. Check also the new -u and -o options. Thanks to all
contributors ! There is various bugfixes and updates so check
the download page.
September 29th: I studied the UPnP forum documentations
to improve the XML descriptions.
October 20th: The client has been improved for compatibility. URL
fixing is fixed (!) and now the discover process searches fist for
"InternetGatewayDevice" and if none is found for root devices. As
some devices do not respond to request specific to "InternetGatewayDevice"
it was needed. Thanks to Louis Croisez, Wayne Dawe and Raymond Richmond
for their feedback and patches.
October 23rd: Changed the Makefile of miniupnpc, added install target.
I've been working to make a patch to xchat
allowing NAT traversal for DCC using the miniupnpc library. Contact me
for more informations. Thanks to Ryan Wagoner I also fixed the XML
descriptions that was causing winXP to send unrecognised SUBSCRIBE
commands.
October 26th: The patch for xchat
is available on this page.
October 27th: Thanks to Michael van Tellingen, miniupnpd is now
writing its own pid to /var/run/miniupnpd.pid (-P command line
option can be used to change the file).
October 28th: For the daemon : Ryan Wagoner fixed a nasty typo
that prevented WinXP
from showing the status and implemented uptime. I worked on a memory
leak. As usual, find the updated version on the
download page.
October 29th: a small fix in the daemon (thanks to
valgrind) and a new option to
enable log in pf.
November 6th: miniupnpd is now able to report system uptime,
total bytes/packets sent/received and bitrates.
November 11th: I'm actively working on the linux/netfilter
version of the daemon. In the meantime, I have fixed some bugs.
The daemon is now working on bigendian machines such as SPARC64
November 12th: The linux/netfilter version is allmost finished now.
Rules are added but not deleted. Go on the
download page and have a look.
I need your feedback to finish the work !
November 17th: The linux/netfilter code now has nearly the same
functionnality as the BSD/pf code now. As my gateway at home
is running OpenBSD, I cannot myself test the linux code in real
usage situation, so I'm very interested by your feedback.
November 23rd: I compiled and tested the daemon on a Linksys
WRT54G router device running
the OpenWRT linux distribution.
You can get a precompiled binary on the download page.
If you can help me to build a complete ipkg package, please contact me.
I also worked on some space optimisation in the daemon and several
bug fixes. A new option is available to the upnpc sample client
thanks to Alexander Hubmann.
November 29th: miniupnpdxxxx.tar.gz archives now include all
required files to compile, no more need to have
miniupnpcxxx.tar.gz as well. An ipkg package has
been made from the openwrt version of miniupnpd.
This package is available from the
X-Wrt project.
November 30th: I added the support for presentationURL into
miniupnpd.
December 7th: 1.0-RC1 release of both the daemon and the client.
Many changes in the build process and configuration of the daemon.
January 12th 2007: The work has continued on the miniupnp daemon since
the RC1 release. Thanks to Ryan Wagoner, code style has been cleaned up
and log messages have been modified. Ryan also added the handling of
the /etc/miniupnpd.conf config file.
I fixed a nasty bug in the linux/netfilter implementation. Be sure to
download the latest version on the download page.
January 17th 2007: 1.0-RC2 release of the daemon. Contains some cleanup.
January 27th 2007: both the client and the daemon released today with
a lot of features. External IP address is now updated at run time,
the XML description is improved to please WinXP buggy UPnP support,
QueryStateVariable was improved too and I added some security checking
in the AddPortMapping method. You can now prevent some ports to be
redirected or specify which host have the right to receive
a redirection.
January 31st 2007: 1.0-RC3 release of both the daemon and the client
library. The client should now work better and faster with most UPnP
IGDs, even bugged ones. Thanks to the work of Ryan, the robusteness
of the client to wrongly formed UPnP SOAP requests has been greatly
improved. I also cleaned up stuff in the configuration file parsing
and added a target in the makefile to generate a proper UUID for
the daemon.
March 17th 2007: 1.0-RC4 release. miniupnpd code cleanup, fix in the
linux/netfilter implementation when "internal" and "external" ports
are not the same, changed the pf rule "rdr" to "rdr pass".
April 12th 2007: small miniupnpd release to add
setsockopt(s, SOL_SOCKET, SO_BROADCAST ...) for broadcasting socket.
April 15th 2007: I opened a
Forum for user to talk.
May 10th 2007: I found and fixed a bug in the netfilter implementation
of the daemon
that prevented DeletePortMapping from working correctly.
Download the version 1.0-RC5 to get it fixed !
June 12th 2007: 1.0-RC6 Release of both client and daemon with
improvements and bugfixes. A Python
module is now available for using miniupnpc functionalities from python code.
Redirection descriptions are now stored in the linux/netfilter flavour
of the daemon.
July 20th 2007: 1.0-RC7 release of the daemon for linux 2.6.22
compatibility.
August 29th 2007: after my monthlong vacation, 1.0-RC8 release
of both daemon (trick to please XBox 360, improved genconfig.sh) and
the client (fixing python module for python older than Python 2.4).
September 23rd 2007: In order to reduce discovery time in UPnP
enabled applications, MiniSSDPd was developped for use in conjunction
with MiniUPnPc. MiniSSDPd receive and process SSDP announces broadcasted
on the network by UPnP devices so when an application starts, it does not
need to do the whole discovery process. Some minor changes were also made
to MiniUPnPd and MiniUPnPc.
September 27th 2007: 1.0-RC9 release :
Makefiles have been improved to support different
installation directories. MiniUPnPc now compiles to both libminiupnpc shared
and static library. MiniUPnPd support for multiple LANs has been greatly
improved. MiniUPnPd is now able to clean it's ruleset periodically
by removing unused rules.
October 12th 2007: 1.0-RC10 release :
Darren Reed added SunOS/Solaris support and an
ipf implementation
to MiniUPnPd. To allow this, the code was reorganized for better
support for different OS or firewalls. MiniUPnPd now correctly checks
its commandline.
MiniUPnPc : a memory bug was fixed and a function in order to
use a known in advance UPnP IGD was introduced. The Makefile
has been improved.
man pages were added to all subprojects.
October 25th 2007: 1.0-RC11 release introducing
experimental NAT-PMP support in MiniUPnPd.
MiniUPnPc is now able to use a specific network interface instead of
the default.
November 3rd 2007: I'm currently improving the
NAT-PMP to get something usefull.
If you want to test it, download today snapshot of MiniUPnPd sources,
don't forget to enable the #define ENABLE_NATPMP directive in config.h
file, compile and enjoy :)
December 3rd 2007: You can now test NAT-PMP support in MiniUPnPd
by using libnatpmp.
December 14th 2007: 1.0-RC12 release. MiniUPnPd has now a
fully functional NAT-PMP support. It
stills need to be enabled by editing config.h.
pf code doesn't generate filter rules by default anymore. This
behaviour can be changed by editing config.h.
Small bugs where fixed in MiniUPnPc and code is now compiled
with -fPIC option. In an attempt to improve compatibility, SOAP
requests are now sent using HTTP/1.0 instead of HTTP/1.1.
December 20th 2007: At the request of a user having made so much
efforts to build and run MiniuUPnPd on its ADSL router,
I added a cache mechanism to linux getifstats() function in order
to avoid parsing /proc/net/dev too often. It is available
in miniupnpd-20071220.tar.gz. Don't forget to edit
config.h in order to enable it. Here is the
topic
on the forum.
January 3rd 2008: 1.0-RC13. On the daemon side :
It is now possible to set a queue
with the pf filter rule. It is usefull if you use ALTQ for your traffic.
NAT-PMP was bug fixed and it is now possible to enable/disable NAT-PMP
support at runtime.
On the client side : adding upnperror.c/.h to provide strupnperror()
in order to translate UPnP error codes to a human readable string.
January 27th 2008 : Release of miniupnpd-1.0 ! At least !
This version add a "secure" mode, fixes a bug in the config file parser
and some other minor bugs.
February 21st 2008 : Release of miniupnpc-1.0. I hope this version
fixes most compatibility problems people were facing.
On the daemon side, work is going on to improve compatibility.
Testing miniupnpd-20080221.tar.gz or newer sources is advised.
April 25th 2008 : Release of miniupnpd-1.1.
Major changes with 1.0 are : UPnP Eventing implementation,
code cleanup, improved compatibility, tag support for PF rules.
To check for new releases, you can use this RSS feed :
https://miniupnp.tuxfamily.org/files/rss.php.
July 4th 2008 : Robbie Hanson made the work to have libnatpmp and miniupnpc
compiling and working properly under Win32 using Mingw32. libnatpmp should
also work under Solaris now and compile with compilers other than GCC. I should release miniupnpc-1.1 soon.
July 14th 2008 : Sorry, the miniupnpc-1.1 does not install properly all .h. I was also informed that it doesn't compile without changes on Mac OS X.
I'll try to fix all that.
By the way, if pure C don't suit you, you should have a look at
TCMPortmapper
(Cocoa) or
DotNetMApper (.det).
That guy is doing a great work with miniUPnPc : read his
blog !
Somebody also written a ruby gem wrapping MiniUPnPc. So whatever is your environement, Cocoa, .net, Python, Ruby, you can use the MiniUPnPc library.
October 6th 2008 : After a quiet summer, the MiniUPnP project is
alive again ! I'm preparing the release of new versions. In the meantime,
you can download and use
miniupnpc-20081002.tar.gz which has the "sameport patch" integrated,
minissdpd-20081006.tar.gz which is now usefull for UPnP devices too :
see the MiniSSDPd page for more informations,
miniupnpd-20081006.tar.gz which detect more correctly ipf or pf,
uses MiniSSDPd for managing SSDP searches, which netfilters chain
can be configured, etc.
January 29th 2009 : Some cleanup in Makefiles, and small fixes to MiniUPNPd.
If you need to have both MiniUPnPd and
Mediatomb
running on the same machine,
you should follow instructions given here in the forum.
December 4th 2009 : Sorry, I've not been updating this
changelog/history page this year.
Just one word to tell version 1.4 is out.
And thanks to Michael Trebilcock
MiniUPnPc now compiles under Amiga OS using the official AmigaOS4.1 SDK
or GeekGadgets (for AmigaOS 3).
April 2010 : I'm currently working on the OpenBSD 4.7 support by
MiniUPnPd. Also check the compatibility improvements in MiniUPnPc.
January 2011 : Happy new year and enjoy
miniupnpd-1.5
and
miniupnpc-1.5.
MiniUPnPd was bugfixed and is now compatible with OpenBSD >= 4.7.
It includes preliminary support for the
version 2 of the UPnP Internet Gateway
specification.
MiniUPnPc-1.5 has a new HTTP code fully compatible with HTTP/1.1
and supporting chunked transfer encoding. Many other improvements were made.
July 2011 : release of MiniUPnPc-1.6 and MiniUPnPd-1.6.
A lot of work on IPv6 support and IGDv2. Support of lease duration, etc.
May 2012 : release of MiniUPnPc-1.7 and MiniUPnPd-1.7.
More work on IPv6 and IGDv2. MiniUPnPd now implements
WANIPv6FirewallControl.
February 2013 : release of MiniUPnPc-1.8 and MiniUPnPd-1.8.
Improvements to UPnP standards compliance, especially when
MiniUPnPd is compiled with the UPNP_STRICT config option.
For better security, HTTP peer and SSDP source IP are checked to
belong to a LAN. It should help to avoid SSDP and SOAP services to
be exposed to the internet.