| ssdpd(8) | System Manager's Manual | ssdpd(8) |
ssdpd —
ssdpd |
[-hnsvw-c
FILE-d
URL-i
SEC-l
LEVEL-m
NAME-M
URL-p
URL-P
FILE-r
SEC-R
NUM-t
TTLIFACE
[ ]IFACE
[ ]... ] |
ssdpd is a stand-alone UNIX daemon with no
external dependencies but the standard C library. It has a built-in web server
for serving the UPnP XML description which Windows use to present the icon, by
default an InternetGatewayDevice is
announced.
On Linux systems, ssdpd reads
/etc/os-release, or
/etc/lsb-release, in that order to
determine the distribution name and version, which along with the system
hostname, is periodically transmitted in SSDP multicast discovery frames. If
neither file exists a built-in default is used as server string. On non-Linux
systems the information from
uname(1) is used,
since that is the canonical UNIX location for such information.
Each SSDP capable device on a LAN has its own UUID. This is generated the first
time ssdpd is started and stored in a file
called ssdpd.cache, either in
/var/lib/misc/ or
/var/db/, which is what *BSD systems use.
Depending on your system this directory may be wiped on reboot, so
ssdpd may start up with a different UUID
every time. Use -c
FILE to work around that.
As soon as the UUID is saved or read from the cache file, and the PID file has
been created, ssdpd drops any root
privileges it may have beeen started with. The preferred user to drop to is
ssdp, but if that is not set up in the
system, user nobody is used as a fallback.
In the event that user is also missing,
ssdpd will log a warning and continue
running as root.
ssdpd starts without any options or
arguments. By default it forks to the background, as a regular UNIX daemon,
and runs on all interfaces that are up and have an IPv4 address. New and
deleted interfaces are discovered at runtime. To run on a subset of
interfaces, append the interface name as an argument.
To control other aspects of ssdpd, the
following command line options are available:
-c
FILEssdpd can store and/or read the
UUID.-d
URL-h-i
SEC-l
LEVELnotice:
-n-m
NAMEmanufacturer in
description.xml.-M
UIRLmanufacturerURL in
description.xml.-p
URLpresentationURL in
description.xml. This is usually the
URL to access the device's web interface. Default:
http://%s/
In the UPnP spec. this can be an absolute or relative URL, but the default
description.xml does not have the
<URLBase> option set. See the
-d option for overriding the UPnP
presentation URL entirely to support a relative
presentationURL.
A single '%s' modifier is allowed, which is replaced by the interface's IP
address. Example:
https://%s:8080/index.php-P
FILE-r
SEC-R
NUMssdpd retries 3
times, using a hard-coded 10 sec refresh interval, before reverting to the
regular refresh interval, -r. Unused on
systems with netlink interface monitoring (Linux).-s-n.-t
TTL-u
UUIDssdpd
generates a UUID when starting up the first time. That UUID is cached
between restarts in the file
/var/lib/misc/ssdpd.cache. When this
option is given, the built-in UUID generator is disabled and the cache
file is not used.-v-wssdpd runs on all IPv4
capable interfaces, except loopback. If interface names are given as
arguments, ssdpd will run only on them.
Interfaces are refreshed at runtime, so if an interface given on the
command line does not exist at first,
ssdpd will add them later.<?xml version="1.0"?> <root xmlns="urn:schemas-upnp-org:device-1-0"> <specVersion> <major>1</major> <minor>0</minor> </specVersion> <device> <deviceType>urn:schemas-upnp-org:device:InternetGatewayDevice:1</deviceType> <friendlyName>HOSTNAME</friendlyName> <manufacturer>Troglobit Software Systems</manufacturer> <manufacturerURL>https://troglobit.com</manufacturerURL> <modelName>Generic</modelName> <UDN>uuid:12345678-coff-eede-adbe-ff00-123456654321</UDN> <presentationURL>http://1.2.3.4/description.xml</presentationURL> </device> </root>
ssdpd is started with the
-w option it is imperative that the
-u UUID is
also provided. Otherwise clients wil detect a mismatch in the advertised UUID
and the XML file.
ssdpd falls back to query this
non-standard file for information on the distribution name and release
version| February 14, 2023 | Debian |