<?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_Server_Signature</id>
	<title>Kissdx Server Signature - 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_Server_Signature"/>
	<link rel="alternate" type="text/html" href="http://familien-hartvig.dk/wiki/index.php?title=Kissdx_Server_Signature&amp;action=history"/>
	<updated>2026-06-16T23:27:51Z</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_Server_Signature&amp;diff=793&amp;oldid=prev</id>
		<title>Lars: Created page with &quot;Server signature [edit] Directive ServerSignature  Goal    : KiSS player needs before connecting to a pclink server (kissdx) to broadcast an &quot;ARE_YOU_KISS_PCLINK_SERVER?&quot;     ...&quot;</title>
		<link rel="alternate" type="text/html" href="http://familien-hartvig.dk/wiki/index.php?title=Kissdx_Server_Signature&amp;diff=793&amp;oldid=prev"/>
		<updated>2012-03-03T15:19:51Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Server signature [edit] Directive ServerSignature  Goal    : KiSS player needs before connecting to a pclink server (kissdx) to broadcast an &amp;quot;ARE_YOU_KISS_PCLINK_SERVER?&amp;quot;     ...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Server signature&lt;br /&gt;
[edit]&lt;br /&gt;
Directive ServerSignature&lt;br /&gt;
&lt;br /&gt;
Goal    : KiSS player needs before connecting to a pclink server (kissdx) to broadcast an &amp;quot;ARE_YOU_KISS_PCLINK_SERVER?&amp;quot;&lt;br /&gt;
          and all server should answer its name. KiSS player displays this list and enables user to choose the winner.&lt;br /&gt;
          For network configuration of multiple pclink server, it's enable an easy way to select a server.&lt;br /&gt;
          For exemple: 3 NLSU server hosting movies in range : [A-H]  [I-M]  [N-Z] &lt;br /&gt;
          Basic feature of displaying hostname is not so convenient.&lt;br /&gt;
&lt;br /&gt;
Syntaxe : ServerSignature = (mixed of free text and reserved keyword)&lt;br /&gt;
&lt;br /&gt;
   {ShortHostName}        = Short hostname (ex: debian2)&lt;br /&gt;
   {FullHostName}         = Full described hostname (ex: debian2.homeip.net)&lt;br /&gt;
   {Version}              = Version of kissdx currently running (vX.XX-XX)&lt;br /&gt;
   {VersionDate}          = Date of this version (yyyy-mm-dd)&lt;br /&gt;
   {ConfigReloadStatus}   = PC-Link server research results in reloading configuration&lt;br /&gt;
                            Reparsing kissdx.conf may trigger a (OK) status or failed (conf!)&lt;br /&gt;
                            If failed, the last correct configuration is kept in memory.&lt;br /&gt;
 &lt;br /&gt;
Default : {Name} - kissdx {Version},{VersionDate}{ConfigReloadStatus}&lt;br /&gt;
Exemple : debian2.homeip.net - kissdx v0.13-xx,2007-03-xx(OK)&lt;br /&gt;
&lt;br /&gt;
[edit]&lt;br /&gt;
Interaction &amp;quot;ServerSignature &amp;amp; ConfigAutoLoad&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Directive 'configautoload' enable not to reload configuration on reception of UDP broadcast If serversignature include 'ConfigReloadStatus' and 'configautoload' is disable (no), any UDP broadcast reception does not reload the configuration file and the serversignature information send back to KiSS player does ignore the 'ConfigReloadStatus' information&lt;br /&gt;
&lt;br /&gt;
Log information (/var/log/syslog) track an &amp;quot;Identity request&amp;quot; and response to the players&lt;br /&gt;
&lt;br /&gt;
... Extract of log (not verbose)...&lt;br /&gt;
... Extract of log verbose ...&lt;br /&gt;
&lt;br /&gt;
[edit]&lt;br /&gt;
kissdx code impact&lt;br /&gt;
&lt;br /&gt;
Which part of kissdx code is to be modified and in which way ...&lt;br /&gt;
&lt;br /&gt;
    Global synopsis of ServerSignature &lt;br /&gt;
&lt;br /&gt;
= Current state in 0.13.10a&lt;br /&gt;
kissdx.c_main() : command line option analysis, then parse_config (read kissdx.conf), start udp listener, start daemon&lt;br /&gt;
&lt;br /&gt;
= Proposition&lt;br /&gt;
* parse_config() should isolate the configuration of serversignature, do a minimalist check&lt;br /&gt;
  if configuration of ServerSignature is accepted, then parse_config return OK and stores info&lt;br /&gt;
* udp_responder() may not calculate for each request the correct answer to send back&lt;br /&gt;
* do_daemon()     may calculate once the correct answer and store it in 'config' object&lt;br /&gt;
* config.h: typedef struct config_settings_s ...&lt;br /&gt;
* config.c: config_settings_t config;	// Holds the current config settings as read from kissdx.conf&lt;br /&gt;
&lt;br /&gt;
    Code modification &lt;br /&gt;
&lt;br /&gt;
kissdx.conf&lt;br /&gt;
Insert section with ServerSignature&lt;br /&gt;
kissdx.c&lt;br /&gt;
Extend dodaemon() and udp_responder()&lt;br /&gt;
The existing function string_substitute(haystack, needle, substitute, haystack_size) in utils.c&lt;br /&gt;
should be used for substituting values for the {keywords} in the signature template.&lt;br /&gt;
config.c&lt;br /&gt;
Parse .conf and detect ServerSignature, default value is set. unkown command is interpreted as free text&lt;br /&gt;
An empty value for ServerSignature is the only fatal error that will return error=1 &lt;br /&gt;
and display already existing message &amp;quot;Error(s) in the configuration file prevent kissdx from using the file.&amp;quot;&lt;br /&gt;
config.h&lt;br /&gt;
Adapt config_settings_t structure to include &amp;quot;char	serversignature[255];&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[edit]&lt;br /&gt;
Unit test use case&lt;br /&gt;
&lt;br /&gt;
01 serversignature =               (none information following the equal sign)&lt;br /&gt;
02 serversignature = [A-H] films   (targeted usage for end user)&lt;br /&gt;
03 #serversignature =              (comment the line in configuration file)&lt;br /&gt;
04 serversignature = Uppercase {FULLHOSTNAME}    (specification is case sensitive)&lt;br /&gt;
05 serversignature = {UnkownValue}&lt;br /&gt;
06 serversignature = A too long line with too much information xxxxxxxxxxxxx yyyyyyyyyyyyyyyy zzzzzzzzzzzzzzz&lt;br /&gt;
07 serversignature = multiple instance of {ShortHostName}-{Version}/{ShortHostName}-{Version}/{ShortHostName}-{Version}&lt;br /&gt;
08 ServerSignature = Use an upper first letter for directive name&lt;br /&gt;
&lt;br /&gt;
kissdx behaviours to unit test&lt;br /&gt;
&lt;br /&gt;
01 test passed (KiSS player needs something to display in server found list)&lt;br /&gt;
Conf Fatal : Invalid line in config file: [serversignature =]. Expected [Option] = [Value]&lt;br /&gt;
Error(s) in the configuration file prevent kissdx from using the file.&lt;br /&gt;
&lt;br /&gt;
02 test passed, configuration accepted&lt;br /&gt;
03 test passed, default value is selected&lt;br /&gt;
{ShortHostName} - kissdx {Version},{VersionDate} {ConfigReloadStatus}&lt;br /&gt;
serversignature = ubuntugsi - kissdx v0.13.1x,2007-09-01 {ConfigReloadStatus}&lt;br /&gt;
&lt;br /&gt;
04 test passed, wrong settings are not interpreted, and do not create errors&lt;br /&gt;
serversignature = {FULLHOSTNAME}&lt;br /&gt;
&lt;br /&gt;
05 test passed, same behaviours as test 04&lt;br /&gt;
06 test passed, KiSS player trucate line and finish with '...'&lt;br /&gt;
07 test passed, multi keywords are supported&lt;br /&gt;
08 test passed, directive name in configuration file are not case sensitive&lt;br /&gt;
&lt;br /&gt;
Retrieved from &amp;quot;http://www.famille-kahn.com/kissdxmanual/Kissdx_develop_manual:_Server_signature&amp;quot;&lt;/div&gt;</summary>
		<author><name>Lars</name></author>
		
	</entry>
</feed>