summaryrefslogtreecommitdiff
path: root/svr-main.c
diff options
context:
space:
mode:
authorMatt Johnston <matt@ucc.asn.au>2004-08-23 05:27:34 +0000
committerMatt Johnston <matt@ucc.asn.au>2004-08-23 05:27:34 +0000
commit3673679f4c64829b6de1698463cbf00b7985bbc5 (patch)
treef1be04a5b36d076ae3ab624cc17335dea3fd2350 /svr-main.c
parent51148a3f999ec70211cf334ebc140da5074e9e1d (diff)
downloaddropbear-3673679f4c64829b6de1698463cbf00b7985bbc5.tar.gz
Change the way we load keys/ports so we don't print error messages into our
socket.
Diffstat (limited to 'svr-main.c')
-rw-r--r--svr-main.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/svr-main.c b/svr-main.c
index eb7e3df..55c4106 100644
--- a/svr-main.c
+++ b/svr-main.c
@@ -139,6 +139,10 @@ void main_noinetd() {
commonsetup();
+ /* Now we can setup the hostkeys - needs to be after logging is on,
+ * otherwise we might end up blatting error messages to the socket */
+ loadhostkeys();
+
/* should be done after syslog is working */
if (svr_opts.forkbg) {
dropbear_log(LOG_INFO, "Running in background");
@@ -358,21 +362,23 @@ static void commonsetup() {
static int listensockets(int *sock, int sockcount, int *maxfd) {
unsigned int i;
- char portstring[NI_MAXSERV];
char* errstring = NULL;
unsigned int sockpos = 0;
int nsock;
+ TRACE(("listensockets: %d to try\n", svr_opts.portcount));
+
for (i = 0; i < svr_opts.portcount; i++) {
- snprintf(portstring, sizeof(portstring), "%d", svr_opts.ports[i]);
- nsock = dropbear_listen(NULL, portstring, &sock[sockpos],
+ TRACE(("listening on '%s'", svr_opts.ports[i]));
+
+ nsock = dropbear_listen(NULL, svr_opts.ports[i], &sock[sockpos],
sockcount - sockpos,
&errstring, maxfd);
if (nsock < 0) {
- dropbear_log(LOG_WARNING, "Failed listening on port %s: %s",
- portstring, errstring);
+ dropbear_log(LOG_WARNING, "Failed listening on '%s': %s",
+ svr_opts.ports[i], errstring);
m_free(errstring);
continue;
}