wait = no
user = root
server = /usr/sbin/in.telnetd
- server_args = -h -L /opt/nethack/nethack.dtype.org/dgamelaunch -q /etc/dgamelaunch.conf
+ server_args = -h -L /opt/nethack/nethack.dtype.org/dgamelaunch -q -f /etc/dgamelaunch.conf
rlimit_cpu = 3600
bind = 64.71.163.206
}
A classic inetd line would look like this:
-telnet stream tcp nowait root.root /usr/sbin/tcpd /usr/sbin/in.telnetd -h -L /usr/sbin/dgamelaunch -q /etc/dgamelaunch.conf
+telnet stream tcp nowait root.root /usr/sbin/tcpd /usr/sbin/in.telnetd -h -L /usr/sbin/dgamelaunch -q -f /etc/dgamelaunch.conf
In both cases, the -L specifies an alternate login program (telnetlogin is
invoked by default) and -h prevents revealing of a login banner (for
to standard login are used), so it's necessary to start a shell script from
it. Some other telnetds do not support anything like this at all.
+The -f option, followed by a filename, specifies the path to the config file
+to use for dgamelaunch.
+
For dgamelaunch, the -q option will silence errors pertaining to the server
configuration. This is recommended for use within inetd to prevent spamming
the clients, but when testing and setting up we strongly suggest you leave it
unsigned int len;
int c;
- while ((c = getopt(argc, argv, "qh:p")) != -1)
+ while ((c = getopt(argc, argv, "qh:p:f:")) != -1)
{
switch (c)
{
case 'q':
silent = 1; break;
+ case 'f':
+ if (config)
+ {
+ if (!silent)
+ fprintf(stderr, "warning: using %s\n", argv[optind]);
+ free(config);
+ }
+
+ config = strdup(optarg);
+ break;
+
default:
break; /*ignore */
}
}
- if (optind < argc)
- {
- while (optind < argc)
- {
- if (config)
- {
- if (!silent)
- fprintf(stderr, "warning: using %s\n", argv[optind]);
- free(config);
- }
- config = strdup(argv[optind]);
- optind++;
- }
- }
-
create_config();
/* signal handlers */