<URL: http://bugs.freeciv.org/Ticket/Display.html?id=40755 >
2009/4/7 Marko Lindqvist <[email protected]>:
>
> Server can have several dns names, and sometimes you want to
> communicate some other than one returned by hostname() to metaserver.
> Attached patch adds commandline parameter to set used server name
> manually.
> Since this can also work around some dns problems some users are
> reporting, I plan to commit this to S2_1 too.
S2_1 version
- ML
diff -Nurd -X.diff_ignore freeciv/server/civserver.c freeciv/server/civserver.c
--- freeciv/server/civserver.c 2007-11-27 20:36:02.000000000 +0200
+++ freeciv/server/civserver.c 2009-04-13 10:38:00.000000000 +0300
@@ -134,13 +134,17 @@
fc_fprintf(stderr, _("Warning: the %s option is obsolete. "
"Use -m to enable the metaserver.\n"), argv[inx]);
showhelp = TRUE;
- } else if (is_option("--meta", argv[inx]))
+ } else if (is_option("--meta", argv[inx])) {
srvarg.metaserver_no_send = FALSE;
- else if ((option = get_option_malloc("--Metaserver",
+ } else if ((option = get_option_malloc("--Metaserver",
argv, &inx, argc))) {
sz_strlcpy(srvarg.metaserver_addr, option);
free(option);
srvarg.metaserver_no_send = FALSE; /* --Metaserver implies --meta */
+ } else if ((option = get_option_malloc("--identity",
+ argv, &inx, argc))) {
+ sz_strlcpy(srvarg.metaserver_name, option);
+ free(option);
} else if ((option = get_option_malloc("--port", argv, &inx, argc))) {
if (sscanf(option, "%d", &srvarg.port) != 1) {
showhelp = TRUE;
@@ -223,6 +227,7 @@
fc_fprintf(stderr, _(" -f, --file FILE\tLoad saved game FILE\n"));
fc_fprintf(stderr,
_(" -h, --help\t\tPrint a summary of the options\n"));
+ fc_fprintf(stderr, _(" -i, --identity ADDR\tBe known as ADDR at metaserver\n"));
fc_fprintf(stderr, _(" -l, --log FILE\tUse FILE as logfile\n"));
fc_fprintf(stderr, _(" -m, --meta\t\tNotify metaserver and "
"send server's info\n"));
diff -Nurd -X.diff_ignore freeciv/server/meta.c freeciv/server/meta.c
--- freeciv/server/meta.c 2008-03-09 20:44:59.000000000 +0200
+++ freeciv/server/meta.c 2009-04-13 10:38:00.000000000 +0300
@@ -241,7 +241,9 @@
}
/* get hostname */
- if (my_gethostname(host, sizeof(host)) != 0) {
+ if (srvarg.metaserver_name[0] != '\0') {
+ sz_strlcpy(host, srvarg.metaserver_name);
+ } else if (my_gethostname(host, sizeof(host)) != 0) {
sz_strlcpy(host, "unknown");
}
diff -Nurd -X.diff_ignore freeciv/server/srv_main.c freeciv/server/srv_main.c
--- freeciv/server/srv_main.c 2009-02-16 19:35:02.000000000 +0200
+++ freeciv/server/srv_main.c 2009-04-13 10:38:00.000000000 +0300
@@ -172,6 +172,7 @@
srvarg.metaserver_no_send = DEFAULT_META_SERVER_NO_SEND;
sz_strlcpy(srvarg.metaserver_addr, DEFAULT_META_SERVER_ADDR);
+ srvarg.metaserver_name[0] = '\0';
srvarg.bind_addr = NULL;
srvarg.port = DEFAULT_SOCK_PORT;
diff -Nurd -X.diff_ignore freeciv/server/srv_main.h freeciv/server/srv_main.h
--- freeciv/server/srv_main.h 2008-03-09 20:44:59.000000000 +0200
+++ freeciv/server/srv_main.h 2009-04-13 10:38:00.000000000 +0300
@@ -25,6 +25,7 @@
/* metaserver information */
bool metaserver_no_send;
char metaserver_addr[256];
+ char metaserver_name[256];
unsigned short int metaserver_port;
/* address this server is to listen on (NULL => INADDR_ANY) */
char *bind_addr;
_______________________________________________
Freeciv-dev mailing list
[email protected]
https://mail.gna.org/listinfo/freeciv-dev