**Type**
: Connection type - HTSP or HTTP.
-**IP Address**
-: The IP address of the device.
+**Client Address**
+: The IP address of the client device.
+
+**Client Port**
+: The port of the client device.
+
+**Client Data Ports**
+: The data port(s) used by the client device.
**Username**
: The username used to access tvheadend (a blank cell indicates no username was supplied).
**Started**
: Date the connection started - YYYY-MM-DD HH:MM:SS.
+
+**Streaming**
+: The number of active streams.
+
+**Server Address**
+: The address used to connect to the server. This is usually the IP of your device running Tvheadend.
+
+**Proxy Address**
+: The IP address of the proxy the client is connecting through (if known).
## Items
**Sweep/Clean Icon **
-: Clear all "Uncorrected Blocks", "BER", etc stats.
+: Clear all "Uncorrected Blocks", "BER", etc stats.
**Input**
: Device used to receive the stream.
: Number of subscriptions using the stream.
**Weight**
-: Stream weighting.
+: Stream weighting.
+
+**PID list**
+: Input source Program Identification (PIDs) numbers in use.
**Bandwidth**
: Total stream input bandwidth.
: [Packet Error Ratio](https://en.wikipedia.org/wiki/Bit_error_rate#Packet_error_ratio)
**Uncorrected Blocks**
-: Number of uncorrected blocks. A value higher than 0 can indicate a
+: Number of uncorrected blocks. A value higher than 0 can indicate a
weak signal or interference, note that some devices can send a false value.
**Transport Errors**
-: Number of transport streams errors. A fast increasing value here can
-indicate signal issues. Device drivers can sometimes send garbage data at
-the beginning of a stream, as long as the value doesn't increase at a fast
+: Number of transport streams errors. A fast increasing value here can
+indicate signal issues. Device drivers can sometimes send garbage data at
+the beginning of a stream, as long as the value doesn't increase at a fast
pace and you have no playback issues, there is nothing to worry about.
**Continuity Errors**
: Continuity Count Error. Number of stream errors, a high value here can indicate a signal problem.
**SNR**
-: Signal (To) Noise Ratio. [The level of a desired signal to the level of background noise](https://en.wikipedia.org/wiki/Signal-to-noise_ratio),
-note that not all devices supply correct signal information,
+: Signal (To) Noise Ratio. [The level of a desired signal to the level of background noise](https://en.wikipedia.org/wiki/Signal-to-noise_ratio),
+note that not all devices supply correct signal information,
the value here can sometimes be ambiguous.
**Signal Strength**
-: The signal strength as reported by the device, note that not all devices
+: The signal strength as reported by the device, note that not all devices
supply correct signal information, the value here can sometimes be ambiguous
: Hostname/IP address using the subscription.
**Username**
-: Username using the subscription - a blank cell indicates the
+: Username using the subscription - a blank cell indicates the
subscriber didn't supply a username.
**Title**
-: Title of the application using the subscription - you will sometimes
-see "epggrab" here, this is an internal subscription used by tvheadend
+: Title of the application using the subscription - you will sometimes
+see "epggrab" here, this is an internal subscription used by Tvheadend
to grab EPG data.
**Channel**
-: The name of the [channel](class/channel) the subscription is using -
+: The name of the [channel](class/channel) the subscription is using -
if the subscription is streaming a service/mux this cell will be blank.
+**Service**
+: The service used by the subscription.
+
**Profile**
: The name of the [profile](class/profile) the subscription is using.
Idle | The subscription is idling, waiting for the subscriber.
Testing | Tvheadend is testing the requested stream to see if it's available - if a subscription stays in this state too long it may indicate a signal issue.
+**PID list**
+: Input source Program Identification (PIDs) numbers in use by the subscription.
+
**Descramble**
: The CAID used to descramble the stream.
--- /dev/null
+:
+
+Option | Description
+------------|-------------
+Enable | Enable persistent authentication.
+Reset | Revoke the code and generate a new one.
--- /dev/null
+This code may be used instead of/along side the password to access playlists/streams.
+
+Method | Example
+-------------------------------------------|------------------------------------
+HTTP authentication (digest/plain) | ```http://ip:9981/playlist/auth``` or ```http://user:pass@ip:9981/playlist/auth```
+Authcode only | ```http://ip:9981/playlist/auth?auth={authcode}```
+Channel 'play' streams | ```http://ip:9981/play/stream/channelname/CHANNELNAME?auth={authcode}```
}
CLASS_DOC(passwd)
+PROP_DOC(auth)
+PROP_DOC(authcode)
const idclass_t passwd_entry_class = {
.ic_class = "passwd",
.id = "auth",
.name = N_("Persistent authentication"),
.desc = N_("Manage persistent authentication for HTTP streaming."),
+ .doc = prop_doc_auth,
.list = passwd_entry_class_auth_enum,
.get = passwd_entry_class_auth_get,
.set = passwd_entry_class_auth_set,
.type = PT_STR,
.id = "authcode",
.name = N_("Persistent authentication code"),
- .desc = N_("The code which may be used for the HTTP streaming."),
+ .desc = N_("The code which may be used for HTTP streaming."),
+ .doc = prop_doc_authcode,
.off = offsetof(passwd_entry_t, pw_auth),
.opts = PO_RDONLY,
},