]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
log denied webserver connections 1644/head
authorKees Monshouwer <mind04@monshouwer.org>
Tue, 29 Jul 2014 13:01:55 +0000 (15:01 +0200)
committermind04 <mind04@monshouwer.org>
Tue, 29 Jul 2014 13:07:39 +0000 (15:07 +0200)
pdns/sstuff.hh
pdns/webserver.cc

index 03bcafc1d9387c81ab281a33eaf27903c543bc67..0db6030fe031a3aa73c5c4ad471e0364852fda0a 100644 (file)
@@ -78,12 +78,17 @@ public:
     return new Socket(s);
   }
 
+  //! Get remote address
+  bool getRemote(ComboAddress &remote) {
+    socklen_t remotelen=sizeof(remote);
+    return (getpeername(d_socket, (struct sockaddr *)&remote, &remotelen) >= 0);
+  }
+
   //! Check remote address aganst netmaskgroup ng
   bool acl(NetmaskGroup &ng)
   {
     ComboAddress remote;
-    socklen_t remotelen=sizeof(remote);
-    if(getpeername(d_socket, (struct sockaddr *)&remote, &remotelen) >= 0)
+    if (getRemote(remote))
       return ng.match((ComboAddress *) &remote);
 
     return false;
index 48b7d662f3ba4d240c4471c08ceacf13bdacf25a..a55cc7d38b14cb108e151f899cf0cc50aa07eaa2 100644 (file)
@@ -299,6 +299,9 @@ void WebServer::go()
       if (data->client->acl(acl)) {
         pthread_create(&tid, 0, &WebServerConnectionThreadStart, (void *)data);
       } else {
+        ComboAddress remote;
+        if (data->client->getRemote(remote))
+          L<<Logger::Error<<"Webserver closing socket: remote ("<< remote.toString() <<") does not match 'webserver-allow-from'"<<endl;
         delete data->client; // close socket
         delete data;
       }