$Log$
+ Revision 622.3 2004/06/24 20:33:37 ajc
+ * Bumped internal version number to 6.23
+ * Added "Server IP address" to config (server, client, docs)
+
Revision 622.2 2004/06/24 15:26:33 ajc
* Updated the ig_tcp_server() function to allow binding to a single IP
address. This is not yet used by anything.
Fri Jul 10 1998 Art Cancro <ajc@uncensored.citadel.org>
* Initial CVS import
-
/*
* Text description of this software
*/
-#define CITADEL "Citadel/UX 6.22"
+#define CITADEL "Citadel/UX 6.23"
/*
* REV_LEVEL is the current version number (multiplied by 100 to avoid having
* usually more strict because you're not really supposed to dump/load and
* upgrade at the same time.
*/
-#define REV_LEVEL 622 /* This version */
+#define REV_LEVEL 623 /* This version */
#define REV_MIN 591 /* Oldest compatible database */
#define EXPORT_REV_MIN 615 /* Oldest compatible export files */
char c_niu_2[15]; /* (not in use) */
int c_setup_level; /* what rev level we've setup to */
int c_maxsessions; /* maximum concurrent sessions */
- char c_niu_3[20]; /* (not in use) */
+ char c_ip_addr[20]; /* IP address to listen on */
int c_port_number; /* Cit listener port (usually 504) */
int c_ipgm_secret; /* Internal program authentication */
struct ExpirePolicy c_ep; /* System default msg expire policy */
cprintf("\n");
cprintf("\n");
#endif
+ cprintf("%s\n", config.c_ip_addr);
cprintf("000\n");
}
sizeof config.c_ldap_bind_pw);
break;
#endif
+ case 37:
+ safestrncpy(config.c_ip_addr, buf,
+ sizeof config.c_ip_addr);
}
++a;
}
void do_system_configuration(CtdlIPC *ipc)
{
-#define NUM_CONFIGS 37
+#define NUM_CONFIGS 38
char buf[SIZ];
char sc[NUM_CONFIGS][SIZ];
strprompt("Minimum number of worker threads", &sc[21][0], 3);
strprompt("Maximum number of worker threads", &sc[22][0], 3);
+ strprompt("Server IP address (0.0.0.0 for 'any')", &sc[37][0], 15);
strprompt("POP3 server port (-1 to disable)", &sc[23][0], 5);
strprompt("IMAP server port (-1 to disable)", &sc[27][0], 5);
strprompt("SMTP server port (-1 to disable)", &sc[24][0], 5);
return;
}
else {
- newfcn->msock = ig_tcp_server(NULL, tcp_port,
+ newfcn->msock = ig_tcp_server(config.c_ip_addr,
+ tcp_port,
config.c_maxsessions);
snprintf(message, sizeof message, "TCP port %d: ", tcp_port);
}
config.c_ldap_port = 389;
}
+ if (CitControl.version < 623) {
+ strcpy(config.c_ip_addr, "0.0.0.0");
+ }
+
put_config();
}
#endif
-#define MAXSETUP 3 /* How many setup questions to ask */
+#define MAXSETUP 4 /* How many setup questions to ask */
#define UI_TEXT 0 /* Default setup type -- text only */
#define UI_SILENT 3 /* Silent running, for use in scripts */
"Citadel Home Directory",
"System Administrator",
"Citadel User ID",
+ "Server IP address",
"Server port number",
};
"user ID. Please specify that user ID here. You may specify either a\n"
"user name or a numeric UID.\n",
+"Specify the IP address on which your server will run. If you leave this\n"
+"blank, or if you specify 0.0.0.0, Citadel will listen on all addresses.\n"
+"You can usually skip this unless you're running multiple instances of\n"
+"Citadel on the same computer.\n",
+
"Specify the TCP port number on which your server will run. Normally, this\n"
"will be port 504, which is the official port assigned by the IANA for\n"
"Citadel servers. You'll only need to specify a different port number if\n"
break;
case 3:
+ set_str_val(curr, &config.c_ip_addr);
+ break;
+
+ case 4:
set_int_val(curr, &config.c_port_number);
break;
document, but we will briefly cover the methodology employed by Citadel/UX.
Citadel/UX offers Citadel BBS service using TCP/IP. It does so via a
-multithreaded server listening on a TCP port. Older (4.xx) versions employed
-an inetd-based server.
+multithreaded server listening on a TCP port. Local connections may also
+be made using the same protocol using Unix domain sockets.
The port number officially assigned to Citadel by the IANA is 504/tcp. Since
our session layer assumes a clean, reliable, sequenced connection, the use
35. LDAP Base DN
36. LDAP Bind DN
37. Password for LDAP Bind DN
+ 38. Server IP address to listen on (or "0.0.0.0" for all addresses)
CONF also accepts two additional commands: GETSYS and PUTSYS followed by an
arbitrary MIME type (such as application/x-citadel-internet-config) which