diff options
Diffstat (limited to 'sshd.c')
-rw-r--r-- | sshd.c | 25 |
1 files changed, 25 insertions, 0 deletions
@@ -130,6 +130,13 @@ | |||
130 | #include <Security/AuthSession.h> | 130 | #include <Security/AuthSession.h> |
131 | #endif | 131 | #endif |
132 | 132 | ||
133 | #ifdef LIBWRAP | ||
134 | #include <tcpd.h> | ||
135 | #include <syslog.h> | ||
136 | int allow_severity; | ||
137 | int deny_severity; | ||
138 | #endif /* LIBWRAP */ | ||
139 | |||
133 | #ifndef O_NOCTTY | 140 | #ifndef O_NOCTTY |
134 | #define O_NOCTTY 0 | 141 | #define O_NOCTTY 0 |
135 | #endif | 142 | #endif |
@@ -2145,6 +2152,24 @@ main(int ac, char **av) | |||
2145 | #ifdef SSH_AUDIT_EVENTS | 2152 | #ifdef SSH_AUDIT_EVENTS |
2146 | audit_connection_from(remote_ip, remote_port); | 2153 | audit_connection_from(remote_ip, remote_port); |
2147 | #endif | 2154 | #endif |
2155 | #ifdef LIBWRAP | ||
2156 | allow_severity = options.log_facility|LOG_INFO; | ||
2157 | deny_severity = options.log_facility|LOG_WARNING; | ||
2158 | /* Check whether logins are denied from this host. */ | ||
2159 | if (packet_connection_is_on_socket()) { | ||
2160 | struct request_info req; | ||
2161 | |||
2162 | request_init(&req, RQ_DAEMON, __progname, RQ_FILE, sock_in, 0); | ||
2163 | fromhost(&req); | ||
2164 | |||
2165 | if (!hosts_access(&req)) { | ||
2166 | debug("Connection refused by tcp wrapper"); | ||
2167 | refuse(&req); | ||
2168 | /* NOTREACHED */ | ||
2169 | fatal("libwrap refuse returns"); | ||
2170 | } | ||
2171 | } | ||
2172 | #endif /* LIBWRAP */ | ||
2148 | 2173 | ||
2149 | /* Log the connection. */ | 2174 | /* Log the connection. */ |
2150 | laddr = get_local_ipaddr(sock_in); | 2175 | laddr = get_local_ipaddr(sock_in); |