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;
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;
}