File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / miniupnpd / minissdpd / README
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Sep 27 11:25:11 2023 UTC (14 months, 4 weeks ago) by misho
Branches: miniupnpd, MAIN
CVS tags: v2_3_3p0, HEAD
Version 2.3.3p0

    1:  * MiniSSDPd - SSDP daemon
    2: 
    3: (c) Thomas Bernard
    4: http://miniupnp.free.fr/ or https://miniupnp.tuxfamily.org/
    5: https://github.com/miniupnp/miniupnp/
    6: 
    7: MiniSSDPd is a daemon that :
    8: 1 - keeps track of all UPnP devices announcing themselves on the network.
    9: its database can be queried by local processes using a protocol based on
   10: a unix socket. That enables local processes to quickly discover UPnP devices
   11: without broadcasting SSDP message and waiting several seconds for a response.
   12: 2 - keeps a database of local UPnP devices hosted on the machine and
   13: answering SSDP searchs on their behalf. It enables to run several UPnP devices,
   14: like an IGD and a MediaServer, on the same machine.
   15: 
   16: to build, use GNU Make.
   17: 
   18: 
   19: * protocol :
   20: 
   21: Connect to the unix socket.
   22: Sent request, get response.
   23: close unix socket connection.
   24: 
   25: * Request format :
   26: 1st byte : request type
   27:            0 - version
   28:            1 - type
   29:            2 - USN (unique id)
   30:            3 - everything
   31:            4 - submit service (see below)
   32:            5 - switch connection to notification mode
   33: n bytes : string length : 1 byte if < 128 else the upper bit indicate that
   34: one additional byte should be read, etc. (see codelength.h)
   35: n bytes = string
   36: 
   37: Response format :
   38: 
   39: request type 0 (version) :
   40: n bytes string length
   41: n bytes = version string
   42: 
   43: request type 1 / 2 / 3 / 5 :
   44: 1st byte : number of services/devices, from 0 to 254.
   45:            255 is a special value, see below
   46: For each service/device :
   47: URL :
   48:   n bytes string length
   49:   n bytes = Location string
   50: ST:
   51:   n bytes string length
   52:   n bytes = type string
   53: USN:
   54:   n bytes string length
   55:   n bytes = identifier string
   56: 
   57: if the 1st byte is 255, the format is as follows :
   58: 1st byte = 255
   59: 2nd byte = notification type (1=NEW, 2=UPDATE, 3=REMOVE)
   60: 3rd byte = number of services/devices, from 0 to 255.
   61: 
   62: 
   63: request type 4 = submit service
   64: 1st byte  = 4
   65: (k,n) bytes : length and string "ST" (service type)
   66: (k,n) bytes : length and string "USN"
   67: (k,n) bytes : length and string "Server"
   68: (k,n) bytes : length and string "Location"
   69: No answer
   70: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>