From ecec41025f35ea8957dd3b59caeb3f4dfee37821 Mon Sep 17 00:00:00 2001
From: geneticdrift <geneticdrift@iotide.com>
Date: Wed, 27 Jun 2012 09:26:05 +0200
Subject: [PATCH] Documentation for commands searchadd, searchaddpl, and for
 tcp keepalive config options

---
 NEWS                |  1 +
 doc/mpd.conf.5      | 15 +++++++++++++++
 doc/mpdconf.example | 29 +++++++++++++++++++++++++++++
 doc/protocol.xml    | 45 +++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 90 insertions(+)

diff --git a/NEWS b/NEWS
index ec8f167cd..6bcdc061e 100644
--- a/NEWS
+++ b/NEWS
@@ -6,6 +6,7 @@ ver 0.17 (2011/??/??)
   - new command "config" dumps location of music directory
   - add range parameter to command "load"
   - print extra "playlist" object for embedded CUE sheets
+  - new commands "searchadd", "searchaddpl"
 * input:
   - cdio_paranoia: new input plugin to play audio CDs
   - curl: enable CURLOPT_NETRC
diff --git a/doc/mpd.conf.5 b/doc/mpd.conf.5
index bd890228b..d15d0fdab 100644
--- a/doc/mpd.conf.5
+++ b/doc/mpd.conf.5
@@ -487,6 +487,21 @@ This specifies a URL associated with the stream.
 .TP
 .B genre <genre>
 This specifies the genre(s) of the stream.
+.SH OPTIONAL TCP KEEPALIVE PARAMETERS
+.TP
+.B tcp_keep_alive <yes or no>
+Enable tcp keepalive on new client connections. (default is "no")
+.TP
+.B tcp_keep_alive_idle <seconds>
+Time in seconds since the last communication on the connection and before
+the keepalive probing is started. (default is 7200 seconds)
+.TP
+.B tcp_keep_alive_interval <seconds>
+Interval in seconds between keepalive probes, once a probe started. (default is 75 seconds)
+.TP
+.B tcp_keep_alive_count <number of times>
+Number of failed probes before the connection is pronounced dead and
+the connection is closed. (default is 9 times)
 .SH FILES
 .TP
 .BI ~/.mpdconf
diff --git a/doc/mpdconf.example b/doc/mpdconf.example
index 1aa9cf1dc..0045d31ab 100644
--- a/doc/mpdconf.example
+++ b/doc/mpdconf.example
@@ -372,6 +372,35 @@ input {
 #
 ###############################################################################
 
+# Client TCP keep alive #######################################################
+#
+# For clients connected by TCP on supported platforms.
+# Allows detection of dangling connections due to clients disappearing from
+# the network without closing their connections.
+#
+# This is not usually necessary but can be useful in cases such as wifi connectected
+# clients that go in and out of network range or turn off wifi without closing their
+# connections. Combined with low max_connections this can soon cause clients to not
+# be able to connect.
+#
+#
+# Enable tcp keepalive on new client connections (default is "no")
+#
+#tcp_keep_alive "no"
+#
+# Time in seconds since the last communication on the connection and before
+# the keepalive probing is started. (default is 7200 seconds)
+#tcp_keep_alive_idle "7200"
+#
+# Interval in seconds between keepalive probes, once a probe started.
+# (default is 75 seconds)
+#tcp_keep_alive_interval "75"
+#
+# Number of failed probes before the connection is pronounced dead and
+# the connection is closed. (default is 9 times)
+#tcp_keep_alive_count "9"
+#
+###############################################################################
 
 # Character Encoding ##########################################################
 #
diff --git a/doc/protocol.xml b/doc/protocol.xml
index 56ff33b1e..a054c22bd 100644
--- a/doc/protocol.xml
+++ b/doc/protocol.xml
@@ -1581,6 +1581,51 @@ OK
             </para>
           </listitem>
         </varlistentry>
+        <varlistentry id="command_searchadd">
+          <term>
+            <cmdsynopsis>
+              <command>searchadd</command>
+              <arg choice="req"><replaceable>TYPE</replaceable></arg>
+              <arg choice="req"><replaceable>WHAT</replaceable></arg>
+              <arg choice="opt"><replaceable>...</replaceable></arg>
+            </cmdsynopsis>
+          </term>
+          <listitem>
+            <para>
+              Searches for any song that contains <varname>WHAT</varname>
+              in tag <varname>TYPE</varname> and adds them to current playlist.
+            </para>
+            <para>
+              Parameters have the same meaning as for <command>find</command>,
+              except that search is not case sensitive.
+            </para>
+          </listitem>
+        </varlistentry>
+        <varlistentry id="command_searchaddpl">
+          <term>
+            <cmdsynopsis>
+              <command>searchaddpl</command>
+              <arg choice="req"><replaceable>NAME</replaceable></arg>
+              <arg choice="req"><replaceable>TYPE</replaceable></arg>
+              <arg choice="req"><replaceable>WHAT</replaceable></arg>
+              <arg choice="opt"><replaceable>...</replaceable></arg>
+            </cmdsynopsis>
+          </term>
+          <listitem>
+            <para>
+              Searches for any song that contains <varname>WHAT</varname>
+              in tag <varname>TYPE</varname> and adds them to the playlist
+              named <varname>NAME</varname>.
+            </para>
+            <para>
+              If a playlist by that name doesn't exist it is created.
+            </para>
+            <para>
+              Parameters have the same meaning as for <command>find</command>,
+              except that search is not case sensitive.
+            </para>
+          </listitem>
+        </varlistentry>
         <varlistentry id="command_update">
           <term>
             <cmdsynopsis>