Skip to content

v0.1.21

Latest

Choose a tag to compare

@QuiteYellow QuiteYellow released this 28 Sep 18:36

Added

Responder enumeration for hosts that expose more than one OCF device.

  • read_ocf_responder(host, port) reads one responder's /oic/d identity
    (rt, di, name) and its advertised secure ports in a single call.
  • discover_ocf_responders(target, *, interface_address, ...) enumerates every
    responder at an IPv4 host and returns each with that identity, so two OCF
    devices behind one address can be told apart. It reads one responder at a time.
  • secure_ports_for_di(responders, di) selects a responder by its stored Device
    UUID, which is stable across the reboots that move the secure port.

These compose the existing discovery primitives and add no new wire behaviour.
Choosing which responder is the wanted appliance, and how to fall back when
multicast cannot cross a subnet, stay with the caller. The di returned here is
the plaintext one, for selection; it does not replace an authenticated
/oic/d.di check made after a handshake.

Motivated by the multiple-responders-per-IP case in mbillow/localthings#540.