All notable changes to the project are documented in this file.
v2.1 - 2023-06-03
- Add support for JSON output with
ssdpd-scan -j
, issue #17 - Dump received data from devices in
ssdp-scan -l debug
- Termios support for disabling
^C
output fromssdp-scan
- Update copyright years, LICENSE file hash change
- Source
/etc/default/ssdpd
from systemd unit file
- Fix #15: add fallback to
/var/lib/ssdpd/uuid.cache
- Fix #16: truncated UUID when reading from cache file
v2.0 - 2023-02-19
The drop privs release.
- Add support for
-c NAME
to overridessdpd
UUID cache file - Add support for
-d URL
to override the UPnP description URL, a single%s
is supported to be replaced with the interface address - Add support for
-m NAME
to override themanufacturer
in the defaultdescription.xml
- Add support for
-M URL
to override themanufacturerURL
in the defaultdescription.xml
- Add support for
-p URL
to override thepresentationURL
in the defaultdescription.xml
, a single%s
is supported - Add support for
-P FILE
to override the default PID file location defaultdescription.xml
, a single%s
is supported - Add support for
-u UUID
to use a custom UUID, useful when the built-in micro HTTP server is disabled - Add support for
-w
to disable built-in micro HTTP server, useful when other, more capable, web servers are available. Make sure to have the alternate web server running on port 1901 to serve the file/description.xml
, see also-d URL
above, which details the location of the UPnP description URL - Increased debug messages in
ssdp_init()
, for troubleshooting - Add support for dropping root privileges after initial setup. The
used
ssdp
is searched for first, with fallback tonobody
- Add support for an initial retry interval at startup, in case ssdpd
is started before any interface has been configured. Configurable
retry count using
-R NUM
command line option - Add support for an IP address monitor using Linux netlink interfaces
coming and going at runtime. Meaning,
-R NUM
is unused on Linux. For this to work,ssdpd
must start as root or haveCAP_NET_RAW
- Fix #11: periodic busy loop causing intermittent 100% CPU load
- Fix invalid
<UDN>uuid:uuid:...</UDN>
indescription.xml
- Add
Date:
andServer:
to HTTP header in micro HTTP server - Add support for HTTP HEAD requests to micro HTTP server
- Handle case when
/etc/os-release
does not haveVERSION_ID
fall back to useVERSION_CODENAME
- Don't overwrite CPPFLAGS from the command line
- Portability fix to
utimensat()
replacement function
v1.9 - 2022-10-30
The Dennis Ritchie release.
- Add command line options to
sscp-scan
, mostly for testing but may be useful for other purposes too - Use
$ac_default_prefix
instead of/usr/local
in configure script when expanding paths - Update copyright years (affects LICENSE file hash)
- Add ChangeLog to project
- Drop Travis-CI in favor of GitHub Actions
- Fix #6: workaround for OpenVPN /32 default server setup
- Fix #9: time-of-check vs time-of-use issue with caching of UUID, found by Coverity Scan, fixed by Raul Porancea
- Fix #10: basic instructions for building and starting the daemon
v1.8 - 2021-01-23
- Use UUID cache directory from configure script, with fall-back to
operating system specific
/var/lib/misc
or/var/db
- Update man page with info on UUID cache location
- Add missing systemd unit file
- Add missing SysV init script
- Fix avahi-daemon (mDNS) conflict, no conflict with SSDP, caused by copy-paste between mdnsd and project and this
- Fix default install prefix, should be GNU
/usr/local
not/
. The default for Debian systems is/usr
- Workaround for
--runstatedir
on systems with older autoconf
v1.7 - 2020-06-07
- Use
/etc/os-release
as base for SSDP server string, distribution release information is primarily stored in this file, some Linux systems still use/etc/lsb-release
, on real UNIX systems we can useuname(1)
- Update ssdpd(8) man page
- N/A
v1.6 - 2020-06-07
- Refactor socket handling, enable
SO_REUSEADDR
+SO_REUSEPORT
- Change default behavior, must now use
-n
to run in foreground - Add
ssdp-scan
tool, similar tomdns-scan
- Add systemd unit file
- Initial Debian/Ubuntu packaging
- Fix #1: CVE-2019-14323
v1.5 - 2017-09-23
- New default SSDP notify interval, 300 sec. (Was 600 sec)
- Validation of refresh and notify intervals, the notify interval must
not be longer than half the cache timeout
- Notify: 30-900 sec
- Refresh: 5-1800 sec
- Fix regression in v1.3, allow running without interface filtering
- The new interface filtering feature of v1.4 managed to filter out all interfaces if none were given on the command line.
- Fix CPU overload problem, caused by invalid timer comparison
v1.4 - 2017-05-16
Minor bug fix release.
- Fix invalid argument to
accept()
in web server
v1.3 - 2017-05-16
- Massive refactor
- Support SSDP per interface and multiple addresses per interface
- Use
SOCK_DGRAM
instead ofSOCK_RAW
, no longer need to run as root - New refresh timer, runs independently of NOTIFY timer, checks for new addresses
v1.2 - 2017-05-16
Announces itself as an InternetGatewayDevice, works with Windows, serves XML description.
- Optional
--with-vendor-url=URL
configure option for XML description - Read server string from
/etc/lsb-release
, if it exists - Save cached version of generated UUID between restarts
- Make XML manufacturer and modelName configurable
v1.1 - 2017-05-12
- Generate a proper variant 1, version 4, random session UUID
- Send notify only for UUID, rootdevice and IGD
- Weirdly enough the UPnP spec. says the TTL should be 2 for multicast
- Add UUID to description.xml and remove icon data for now
- UPnP spec says to use RFC1123 date, as specified in RFC2616
- Use HTTP/1.1 everywhere, clean up XML a bit
max-age 120
--> 1800 and run web server on SSDP port- Add SSDP port to address composition
- Add
-d
to enable debug mode, with syslog support - Add
-v
to list version and update usage text
- Fix nasty bug in M-SEARCH reply, missing ST rootdevince in USN
- No need to
sleep(1)
after IGMP join, we can announce w/o it
Initial release