From 0b7e9057daceab33b13238f4dea90976b5d2074d Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sat, 2 Feb 2002 17:20:54 +0100 Subject: Introduced 'svdrphosts.conf' --- svdrp.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'svdrp.c') diff --git a/svdrp.c b/svdrp.c index eba409bb..08da0667 100644 --- a/svdrp.c +++ b/svdrp.c @@ -10,7 +10,7 @@ * and interact with the Video Disk Recorder - or write a full featured * graphical interface that sits on top of an SVDRP connection. * - * $Id: svdrp.c 1.29 2002/02/02 13:33:57 kls Exp $ + * $Id: svdrp.c 1.30 2002/02/02 15:59:18 kls Exp $ */ #include "svdrp.h" @@ -101,8 +101,16 @@ int cSocket::Accept(void) struct sockaddr_in clientname; uint size = sizeof(clientname); int newsock = accept(sock, (struct sockaddr *)&clientname, &size); - if (newsock > 0) - isyslog(LOG_INFO, "connect from %s, port %hd", inet_ntoa(clientname.sin_addr), ntohs(clientname.sin_port)); + if (newsock > 0) { + bool accepted = SVDRPhosts.Acceptable(clientname.sin_addr.s_addr); + if (!accepted) { + const char *s = "Access denied!\n"; + write(newsock, s, strlen(s)); + close(newsock); + newsock = -1; + } + isyslog(LOG_INFO, "connect from %s, port %hd - %s", inet_ntoa(clientname.sin_addr), ntohs(clientname.sin_port), accepted ? "accepted" : "DENIED"); + } else if (errno != EINTR && errno != EAGAIN) LOG_ERROR; return newsock; -- cgit v1.2.3