Author: cazfi
Date: Sat Jun 25 22:56:53 2016
New Revision: 33025

URL: http://svn.gna.org/viewcvs/freeciv?rev=33025&view=rev
Log:
Added server commandline option --keep for supporting persistent
metaconnections from the commandline.

See patch #7314

Modified:
    trunk/doc/man/freeciv-server.6.in
    trunk/server/civserver.c
    trunk/server/srv_main.c
    trunk/server/srv_main.h

Modified: trunk/doc/man/freeciv-server.6.in
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/doc/man/freeciv-server.6.in?rev=33025&r1=33024&r2=33025&view=diff
==============================================================================
--- trunk/doc/man/freeciv-server.6.in   (original)
+++ trunk/doc/man/freeciv-server.6.in   Sat Jun 25 22:56:53 2016
@@ -23,6 +23,7 @@
 [ \-f|\-\-file \fIfilename\fP ] \
 [ \-h|\-\-help ] \
 [ \-i|\-\-identity \fIaddress\fP ] \
+[ \-k|\-\-keep ] \
 [ \-l|\-\-log \fIfilename\fP ] \
 [ \-M|\-\-Metaserver \fIaddress\fP ] \
 [ \-m|\-\-meta ] \
@@ -188,6 +189,12 @@
 metaserver is used. You may specify an alternate metaserver with the \fI\-M\fP
 option.
 .TP
+.BI "\-k, \-\-keep"
+Usually freeciv server stops sending updates to the metaserver, when there's
+problems on the connection once. With this option it keeps on trying to send
+further updates even after it has failed to send updated status once.
+This option implies \fI\-m\fP option.
+.TP
 .BI "\-N, \-\-Newusers"
 Allow new users to login and be registered in the players base if 
authentication
 is enabled.

Modified: trunk/server/civserver.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/server/civserver.c?rev=33025&r1=33024&r2=33025&view=diff
==============================================================================
--- trunk/server/civserver.c    (original)
+++ trunk/server/civserver.c    Sat Jun 25 22:56:53 2016
@@ -223,6 +223,10 @@
 #endif /* FREECIV_NDEBUG */
     } else if ((option = get_option_malloc("--Ranklog", argv, &inx, argc))) {
       srvarg.ranklog_filename = option; /* Never freed. */
+    } else if (is_option("--keep", argv[inx])) {
+      srvarg.metaconnection_persistent = TRUE;
+      /* Implies --meta */
+      srvarg.metaserver_no_send = FALSE;
     } else if (is_option("--nometa", argv[inx])) {
       fc_fprintf(stderr, _("Warning: the %s option is obsolete.  "
                            "Use -m to enable the metaserver.\n"), argv[inx]);
@@ -399,6 +403,8 @@
                 _("type TYPE"),
                 _("Set TYPE as server type in metaserver"));
 #endif /* FREECIV_WEB */
+    cmdhelp_add(help, "k", "keep",
+                _("Keep updating game information on metaserver even if has 
failed in the past")),
     cmdhelp_add(help, "p",
                 /* TRANS: "port" is exactly what user must type, do not 
translate. */
                 _("port PORT"),

Modified: trunk/server/srv_main.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/server/srv_main.c?rev=33025&r1=33024&r2=33025&view=diff
==============================================================================
--- trunk/server/srv_main.c     (original)
+++ trunk/server/srv_main.c     Sat Jun 25 22:56:53 2016
@@ -240,6 +240,7 @@
 
   srvarg.metaserver_no_send = DEFAULT_META_SERVER_NO_SEND;
   sz_strlcpy(srvarg.metaserver_addr, DEFAULT_META_SERVER_ADDR);
+  srvarg.metaconnection_persistent = FALSE;
   srvarg.identity_name[0] = '\0';
   srvarg.serverid[0] = '\0';
 
@@ -2743,7 +2744,7 @@
   if (!(srvarg.metaserver_no_send)) {
     log_normal(_("Sending info to metaserver <%s>."), meta_addr_port());
     /* Open socket for meta server */
-    if (!server_open_meta(FALSE)
+    if (!server_open_meta(srvarg.metaconnection_persistent)
         || !send_server_info_to_metaserver(META_INFO)) {
       con_write(C_FAIL, _("Not starting without explicitly requested 
metaserver connection."));
       exit(EXIT_FAILURE);

Modified: trunk/server/srv_main.h
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/server/srv_main.h?rev=33025&r1=33024&r2=33025&view=diff
==============================================================================
--- trunk/server/srv_main.h     (original)
+++ trunk/server/srv_main.h     Sat Jun 25 22:56:53 2016
@@ -1,4 +1,4 @@
-/**********************************************************************
+/***********************************************************************
  Freeciv - Copyright (C) 1996 - A Kjeldberg, L Gregersen, P Unold
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -27,6 +27,7 @@
   /* metaserver information */
   bool metaserver_no_send;
   char metaserver_addr[256];
+  bool metaconnection_persistent;
   char identity_name[256];
   unsigned short int metaserver_port;
   /* address this server is to listen on (NULL => INADDR_ANY) */


_______________________________________________
Freeciv-commits mailing list
Freeciv-commits@gna.org
https://mail.gna.org/listinfo/freeciv-commits

Reply via email to