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
-w
ssdpd
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
versionFebruary 14, 2023 | Debian |