<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://familien-hartvig.dk/wiki/index.php?action=history&amp;feed=atom&amp;title=Kissdx_administration_control_command_02</id>
	<title>Kissdx administration control command 02 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://familien-hartvig.dk/wiki/index.php?action=history&amp;feed=atom&amp;title=Kissdx_administration_control_command_02"/>
	<link rel="alternate" type="text/html" href="http://familien-hartvig.dk/wiki/index.php?title=Kissdx_administration_control_command_02&amp;action=history"/>
	<updated>2026-06-16T23:19:04Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.15</generator>
	<entry>
		<id>http://familien-hartvig.dk/wiki/index.php?title=Kissdx_administration_control_command_02&amp;diff=792&amp;oldid=prev</id>
		<title>Lars: Created page with &quot;Feature #51 kissdx remote administration - view config feature  This feature is requested : http://www.vidartysse.net/BUGS/view_bug.php?bug_id=51 New command-line options for ...&quot;</title>
		<link rel="alternate" type="text/html" href="http://familien-hartvig.dk/wiki/index.php?title=Kissdx_administration_control_command_02&amp;diff=792&amp;oldid=prev"/>
		<updated>2012-03-03T15:18:59Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Feature #51 kissdx remote administration - view config feature  This feature is requested : http://www.vidartysse.net/BUGS/view_bug.php?bug_id=51 New command-line options for ...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Feature #51 kissdx remote administration - view config feature&lt;br /&gt;
&lt;br /&gt;
This feature is requested : http://www.vidartysse.net/BUGS/view_bug.php?bug_id=51 New command-line options for managing a running kissdx server from the same computer, or even from a remote host. Management functions include&lt;br /&gt;
&lt;br /&gt;
   * STOP = Stop kissdx at the enf of current file playback&lt;br /&gt;
   * FORCESTOP = Stop kissdx whatever any streaming occurs&lt;br /&gt;
   * RELOAD_CONFIG = re-read the configuration file to pick up changes.&lt;br /&gt;
   * GET_TXT_CONFIG =  Get current configuration loaded in memory&lt;br /&gt;
&lt;br /&gt;
[edit]&lt;br /&gt;
Context&lt;br /&gt;
&lt;br /&gt;
The context is a running system on which, you just connect. What config file has been used ? what directory is currently streamed ?&lt;br /&gt;
&lt;br /&gt;
Using a 'ps -aux|grep kiss' does not give an 100% sure information, because a local modification of kissdx.conf may have occured since last usage.&lt;br /&gt;
&lt;br /&gt;
kissdx looks at startup a set of config file. How to know if kissd.conf or kissdx.conf has been used ?&lt;br /&gt;
[edit]&lt;br /&gt;
Expectation&lt;br /&gt;
&lt;br /&gt;
Using another instance of kissdx to send a &amp;quot;GET_TXT_CONFIG&amp;quot; message.&lt;br /&gt;
kissdx server receiving this command should answer with a set of &amp;quot;Text&amp;quot; oriented information.&lt;br /&gt;
Future feature may be &amp;quot;GET_KML_CONFIG&amp;quot; to return a KML orientied information.&lt;br /&gt;
[edit]&lt;br /&gt;
Code analysis&lt;br /&gt;
&lt;br /&gt;
config.c already contains a function to display config at startup time in console mode.&lt;br /&gt;
&lt;br /&gt;
void show_current_config_Verbose(const config_settings_t *config_p)&lt;br /&gt;
&lt;br /&gt;
The objective is to display content of *config pointer.&lt;br /&gt;
&lt;br /&gt;
First step is to duplicate the section of 30 lines of log() to be send_config()&lt;br /&gt;
&lt;br /&gt;
cons: double maintenance effort&lt;br /&gt;
ex: log(&amp;quot;kissdx %s is now using the following config:&amp;quot;, KISSD_VERSION);&lt;br /&gt;
&lt;br /&gt;
Second step may be a function returning an XML flow and a function to render it according text, html,kml ... kissdx release incorporating libxml2 may help managing this orientation&lt;br /&gt;
[edit]&lt;br /&gt;
LIST_VIDEO for kissdx in client mode&lt;br /&gt;
&lt;br /&gt;
During development, it become mandatory to create a simulator to avoid the usage of KiSS player (already in use by my kids) A new administration command : LIST_VIDEO send a PCLINK-TCP:8000 command LIST VIDEO and display the result&lt;br /&gt;
&lt;br /&gt;
olivier@ubuntudev:~/eclipse/workspace2/kissdx$ ./kissdx -s LIST_VIDEO -m 10.39.10.1&lt;br /&gt;
Admin command requested   : LIST_VIDEO&lt;br /&gt;
kissdx Administration Client with command [LIST_VIDEO][10]&lt;br /&gt;
LIST_VIDEO= [Déja joué|Déja joué|1|]&lt;br /&gt;
LIST_VIDEO= [{kissdx-DIR}_local_dvdrom|{kissdx-DIR}_local_dvdrom|1|]&lt;br /&gt;
LIST_VIDEO= [DVD_Image|DVD_Image|1|]&lt;br /&gt;
LIST_VIDEO= [home_linux|home_linux|1|]&lt;br /&gt;
LIST_VIDEO= [Qmultimedia|Qmultimedia|1|]&lt;br /&gt;
LIST_VIDEO= [test|test|1|]&lt;br /&gt;
LIST_VIDEO= [win_dvdrip|win_dvdrip|1|]&lt;br /&gt;
LIST_VIDEO= [Indestructible.mac.xvid.divx.avi|/home/olivier/Shared_Kiss/Video/Indestructible.mac.xvid.divx.avi|0|]&lt;br /&gt;
LIST_VIDEO= [Madonna_HungUp.mpg|/home/olivier/Shared_Kiss/Video/Madonna_HungUp.mpg|0|]&lt;br /&gt;
LIST_VIDEO= [EOL]&lt;br /&gt;
&lt;br /&gt;
[edit]&lt;br /&gt;
GET_TXT_CONFIG : kissdx admin command&lt;br /&gt;
&lt;br /&gt;
kissdx client mode ===&amp;gt; PCLINK://IP:8008 &amp;quot;GET_TXT_CONFIG ||\n&amp;quot;&lt;br /&gt;
kissdx.c: main()        parse command line, detect Send options with GET_TXT_CONFIG&lt;br /&gt;
=&amp;gt; cmdclient.c: get_txt_config()             * Specific behaviour is : send string and print response&lt;br /&gt;
 ==&amp;gt; cmdclient.c: deliver_tcp_cmd()            -Generic function sending 'only' a string and return the socket created&lt;br /&gt;
 while !eof(?) print result of read(socket)    -print response&lt;br /&gt;
kissdx.h: which constant definition ?  &lt;br /&gt;
&lt;br /&gt;
kissdx server mode ===&amp;gt; PCLINK://IP      &amp;quot;Text structured content of 'config' object&amp;quot;&lt;br /&gt;
kissdx.c: dodaemon()                         * Accept ADMCMD request GET_TXT_CONFIG&lt;br /&gt;
=&amp;gt; cmdserver.c: handle_admin_command_gettxtconfig()&lt;br /&gt;
 ==&amp;gt; cmdserver.c: send_txt_config()            -Create a text view of C structure 'config' &lt;br /&gt;
  ===&amp;gt; connection.c: send_converted_line()     -Insert a ending &amp;quot;\n&amp;quot; (0x0A ?) and translate if needed&lt;br /&gt;
&lt;br /&gt;
TODO : Each config line should be structured as PCLINK LIST_VIDEO response are&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[edit]&lt;br /&gt;
Synopsis of PCLINK protocol&lt;br /&gt;
&lt;br /&gt;
Kiss Player   =&amp;gt; PcLink Server (request ) : &amp;quot;Param1|Param2|Param3|\n&amp;quot;&lt;br /&gt;
PcLink Server =&amp;gt; Kiss Player   (response) : &amp;quot;Param1|Param2|Param3|\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Sample&lt;br /&gt;
PcLink request  : &amp;quot;LIST VIDEO ||\n\r\n\r&amp;quot;&lt;br /&gt;
PcLink response : &amp;quot;Movie.avi| /VIDEO/Movie.avi|0|\nEOL\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
LIST VIDEO - Request&lt;br /&gt;
Root listing request         = &amp;quot;LIST VIDEO ||\n&amp;quot;&lt;br /&gt;
Subdirectory listing request = &amp;quot;LIST VIDEO |home_linux/eclipse/workspace2|\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
LIST VIDEO - Response same for &amp;quot;LIST PICTURE&amp;quot; or &amp;quot;LIST AUDIO&amp;quot;&lt;br /&gt;
An end user movie (last entry in a tree)  = Movie.avi|/home/media/video/Movie.avi|0|\n&lt;br /&gt;
A directory browsable                     = kids_video|kids_video|1|\n&lt;br /&gt;
&lt;br /&gt;
Others&lt;br /&gt;
ACTION 2 /home/media/image/Hidden feature.jpg|\n&lt;br /&gt;
=&amp;gt; 200&lt;br /&gt;
SIZE /home/media/image/Hidden feature.jpg|\n&lt;br /&gt;
=&amp;gt; 000000000033898&lt;br /&gt;
GET /home/media/image/picture.jpg| 0 4096 |oqmzybpxxxxx|\n&lt;br /&gt;
GET /home/media/image/picture.jpg| 12288 4096 |oqmzybpxxxxx|\n&lt;br /&gt;
GET fullpath| start_position size_to_send|playerId|\n&lt;br /&gt;
=&amp;gt; Read 71 bytes&lt;br /&gt;
&lt;br /&gt;
Admin command GET_TXT_CONFIG protocol&lt;br /&gt;
Global   config request    = &amp;quot;GET_TXT_CONFIG ||\n&amp;quot;&lt;br /&gt;
Specific config request    = &amp;quot;GET_TXT_CONFIG |configuration_parameter_name|\n&amp;quot;&lt;br /&gt;
- &lt;br /&gt;
Global   config response   = (multiple line) of specific response&lt;br /&gt;
Specific config response   = Parameter_name|parameter_value_inTxtFormat|comment|\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[edit]&lt;br /&gt;
System Trace [KiSS player] &amp;lt;=&amp;gt; [kissdx] (Wireshark trace)&lt;br /&gt;
&lt;br /&gt;
    =&amp;gt; ARE_YOU_KISS_PCLINK_SERVER? =&amp;gt; (UDP:8000) &lt;br /&gt;
&lt;br /&gt;
0020   .. .. .. .. .. .. .. .. .. .. 41 52 45 5f 59 4f  .....@.#..ARE_YO&lt;br /&gt;
0030   55 5f 4b 49 53 53 5f 50 43 4c 49 4e 4b 5f 53 45  U_KISS_PCLINK_SE&lt;br /&gt;
0040   52 56 45 52 3f                                   RVER?&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;= Hostname and kissdx version &lt;br /&gt;
&lt;br /&gt;
0020   .. .. .. .. .. .. .. .. .. .. 75 62 75 6e 74 75  ...@...;..ubuntu&lt;br /&gt;
0030   64 65 76 2e 68 6f 6d 65 2e 66 72 20 2d 20 6b 69  dev.home.fr - ki&lt;br /&gt;
0040   73 73 64 78 20 76 30 2e 31 33 2d 78 78 2c 32 30  ssdx v0.13-xx,20&lt;br /&gt;
0050   30 37 2d 30 33 2d 78 78 20 28 4f 4b 29           07-03-xx (OK)&lt;br /&gt;
&lt;br /&gt;
    =&amp;gt; LIST VIDEO || (17 bytes TCP) &lt;br /&gt;
&lt;br /&gt;
0040   .. .. 4c 49 53 54 20 56 49 44 45 4f 20 7c 7c 0d  ..LIST VIDEO ||.&lt;br /&gt;
0050   0a 0d 0a                                         ...&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;= Directory listing &lt;br /&gt;
&lt;br /&gt;
Déja joué (recently used) (27 bytes TCP)&lt;br /&gt;
0040   .. .. 44 c3 a9 6a 61 20 6a 6f 75 c3 a9 7c 44 c3  ,.D..ja jou..|D.&lt;br /&gt;
0050   a9 6a 61 20 6a 6f 75 c3 a9 7c 31 7c 0a           .ja jou..|1|.&lt;br /&gt;
&lt;br /&gt;
Directory first entry (55 bytes TCP)&lt;br /&gt;
0040   .. .. 7b 6b 69 73 73 64 78 2d 44 49 52 7d 5f 6c  ,.{kissdx-DIR}_l&lt;br /&gt;
0050   6f 63 61 6c 5f 64 76 64 72 6f 6d 7c 7b 6b 69 73  ocal_dvdrom|{kis&lt;br /&gt;
0060   73 64 78 2d 44 49 52 7d 5f 6c 6f 63 61 6c 5f 64  sdx-DIR}_local_d&lt;br /&gt;
0070   76 64 72 6f 6d 7c 31 7c 0a                       vdrom|1|.&lt;br /&gt;
... &lt;br /&gt;
Two before last entry ...(27 bytes TCP)&lt;br /&gt;
0040   .. .. 51 6d 75 6c 74 69 6d 65 64 69 61 7c 51 6d  ,.Qmultimedia|Qm&lt;br /&gt;
0050   75 6c 74 69 6d 65 64 69 61 7c 31 7c 0a           ultimedia|1|.&lt;br /&gt;
&lt;br /&gt;
One before last entry ...(25 bytes TCP)&lt;br /&gt;
0040   .. .. 77 69 6e 5f 64 76 64 72 69 70 7c 77 69 6e  ,.win_dvdrip|win&lt;br /&gt;
0050   5f 64 76 64 72 69 70 7c 31 7c 0a                 _dvdrip|1|.&lt;br /&gt;
&lt;br /&gt;
Directory last entry (178 bytes TCP)&lt;br /&gt;
0040   .. .. 49 6e 64 65 73 74 72 75 63 74 69 62 6c 65  ,.Indestructible&lt;br /&gt;
0050   2e 6d 61 63 2e 78 76 69 64 2e 64 69 76 78 2e 61  .mac.xvid.divx.a&lt;br /&gt;
0060   76 69 7c 2f 68 6f 6d 65 2f 6f 6c 69 76 69 65 72  vi|/home/olivier&lt;br /&gt;
0070   2f 53 68 61 72 65 64 5f 4b 69 73 73 2f 56 69 64  /Shared_Kiss/Vid&lt;br /&gt;
0080   65 6f 2f 49 6e 64 65 73 74 72 75 63 74 69 62 6c  eo/Indestructibl&lt;br /&gt;
0090   65 2e 6d 61 63 2e 78 76 69 64 2e 64 69 76 78 2e  e.mac.xvid.divx.&lt;br /&gt;
00a0   61 76 69 7c 30 7c 0a 4d 61 64 6f 6e 6e 61 5f 48  avi|0|.Madonna_H&lt;br /&gt;
00b0   75 6e 67 55 70 2e 6d 70 67 7c 2f 68 6f 6d 65 2f  ungUp.mpg|/home/&lt;br /&gt;
00c0   6f 6c 69 76 69 65 72 2f 53 68 61 72 65 64 5f 4b  olivier/Shared_K&lt;br /&gt;
00d0   69 73 73 2f 56 69 64 65 6f 2f 4d 61 64 6f 6e 6e  iss/Video/Madonn&lt;br /&gt;
00e0   61 5f 48 75 6e 67 55 70 2e 6d 70 67 7c 30 7c 0a  a_HungUp.mpg|0|.&lt;br /&gt;
00f0   45 4f 4c 0a                                      EOL.&lt;br /&gt;
&lt;br /&gt;
Close connection exchange (ACK-FIN)&lt;br /&gt;
&lt;br /&gt;
* Full conversation (ASCII)&lt;br /&gt;
LIST VIDEO ||&lt;br /&gt;
&lt;br /&gt;
D..ja jou..|D..ja jou..|1|&lt;br /&gt;
{kissdx-DIR}_local_dvdrom|{kissdx-DIR}_local_dvdrom|1|&lt;br /&gt;
DVD_Image|DVD_Image|1|&lt;br /&gt;
home_linux|home_linux|1|&lt;br /&gt;
Qmultimedia|Qmultimedia|1|&lt;br /&gt;
test|test|1|&lt;br /&gt;
win_dvdrip|win_dvdrip|1|&lt;br /&gt;
Indestructible.mac.xvid.divx.avi|/home/olivier/Shared_Kiss/Video/Indestructible.mac.xvid.divx.avi|0|&lt;br /&gt;
Madonna_HungUp.mpg|/home/olivier/Shared_Kiss/Video/Madonna_HungUp.mpg|0|&lt;br /&gt;
EOL&lt;br /&gt;
&lt;br /&gt;
* Full conversation (HEX)&lt;br /&gt;
00000000  4c 49 53 54 20 56 49 44  45 4f 20 7c 7c 0d 0a 0d LIST VID EO ||...&lt;br /&gt;
00000010  0a                                               .&lt;br /&gt;
00000000  44 c3 a9 6a 61 20 6a 6f  75 c3 a9 7c 44 c3 a9 6a D..ja jo u..|D..j&lt;br /&gt;
00000010  61 20 6a 6f 75 c3 a9 7c  31 7c 0a                a jou..| 1|.&lt;br /&gt;
0000001B  7b 6b 69 73 73 64 78 2d  44 49 52 7d 5f 6c 6f 63 {kissdx- DIR}_loc&lt;br /&gt;
0000002B  61 6c 5f 64 76 64 72 6f  6d 7c 7b 6b 69 73 73 64 al_dvdro m|{kissd&lt;br /&gt;
0000003B  78 2d 44 49 52 7d 5f 6c  6f 63 61 6c 5f 64 76 64 x-DIR}_l ocal_dvd&lt;br /&gt;
0000004B  72 6f 6d 7c 31 7c 0a                             rom|1|.&lt;br /&gt;
00000052  44 56 44 5f 49 6d 61 67  65 7c 44 56 44 5f 49 6d DVD_Imag e|DVD_Im&lt;br /&gt;
00000062  61 67 65 7c 31 7c 0a                             age|1|.&lt;br /&gt;
00000069  68 6f 6d 65 5f 6c 69 6e  75 78 7c 68 6f 6d 65 5f home_lin ux|home_&lt;br /&gt;
00000079  6c 69 6e 75 78 7c 31 7c  0a                      linux|1| .&lt;br /&gt;
00000082  51 6d 75 6c 74 69 6d 65  64 69 61 7c 51 6d 75 6c Qmultime dia|Qmul&lt;br /&gt;
00000092  74 69 6d 65 64 69 61 7c  31 7c 0a                timedia| 1|.&lt;br /&gt;
0000009D  74 65 73 74 7c 74 65 73  74 7c 31 7c 0a          test|tes t|1|.&lt;br /&gt;
000000AA  77 69 6e 5f 64 76 64 72  69 70 7c 77 69 6e 5f 64 win_dvdr ip|win_d&lt;br /&gt;
000000BA  76 64 72 69 70 7c 31 7c  0a                      vdrip|1| .&lt;br /&gt;
000000C3  49 6e 64 65 73 74 72 75  63 74 69 62 6c 65 2e 6d Indestru ctible.m&lt;br /&gt;
000000D3  61 63 2e 78 76 69 64 2e  64 69 76 78 2e 61 76 69 ac.xvid. divx.avi&lt;br /&gt;
000000E3  7c 2f 68 6f 6d 65 2f 6f  6c 69 76 69 65 72 2f 53 |/home/o livier/S&lt;br /&gt;
000000F3  68 61 72 65 64 5f 4b 69  73 73 2f 56 69 64 65 6f hared_Ki ss/Video&lt;br /&gt;
00000103  2f 49 6e 64 65 73 74 72  75 63 74 69 62 6c 65 2e /Indestr uctible.&lt;br /&gt;
00000113  6d 61 63 2e 78 76 69 64  2e 64 69 76 78 2e 61 76 mac.xvid .divx.av&lt;br /&gt;
00000123  69 7c 30 7c 0a 4d 61 64  6f 6e 6e 61 5f 48 75 6e i|0|.Mad onna_Hun&lt;br /&gt;
00000133  67 55 70 2e 6d 70 67 7c  2f 68 6f 6d 65 2f 6f 6c gUp.mpg| /home/ol&lt;br /&gt;
00000143  69 76 69 65 72 2f 53 68  61 72 65 64 5f 4b 69 73 ivier/Sh ared_Kis&lt;br /&gt;
00000153  73 2f 56 69 64 65 6f 2f  4d 61 64 6f 6e 6e 61 5f s/Video/ Madonna_&lt;br /&gt;
00000163  48 75 6e 67 55 70 2e 6d  70 67 7c 30 7c 0a 45 4f HungUp.m pg|0|.EO&lt;br /&gt;
00000173  4c 0a                                            L.&lt;br /&gt;
&lt;br /&gt;
Retrieved from &amp;quot;http://www.famille-kahn.com/kissdxmanual/Kissdx_develop_manual:_Admin_GET_CONFIG&amp;quot;&lt;/div&gt;</summary>
		<author><name>Lars</name></author>
		
	</entry>
</feed>