E-MailRelay

- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

gverifierfactory.cpp
Go to the documentation of this file.
1 //
2 // Copyright (C) 2001-2018 Graeme Walker <graeme_walker@users.sourceforge.net>
3 //
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
16 // ===
17 //
18 // gverifierfactory.cpp
19 //
20
21 #include "gdef.h"
22 #include "gsmtp.h"
23 #include "gfactoryparser.h"
24 #include "gexception.h"
25 #include "gverifierfactory.h"
26 #include "ginternalverifier.h"
27 #include "gexecutableverifier.h"
28 #include "gnetworkverifier.h"
29
30 std::string GSmtp::VerifierFactory::check( const std::string & identifier )
31 {
32 return FactoryParser::check( identifier , false ) ;
33 }
34
35 GSmtp::Verifier * GSmtp::VerifierFactory::newVerifier( GNet::ExceptionHandler & exception_handler ,
36 const std::string & identifier , unsigned int timeout , bool compatible )
37 {
38 FactoryParser::Result p = FactoryParser::parse( identifier , false ) ;
39 if( p.first.empty() || p.first == "exit" )
40 {
41 return new InternalVerifier ;
42 }
43 else if( p.first == "net" )
44 {
45 return new NetworkVerifier( exception_handler , p.second , timeout , timeout , compatible ) ;
46 }
47 else
48 {
49 return new ExecutableVerifier( exception_handler , G::Path(p.second) , compatible ) ;
50 }
51 }
52
53 /// \file gverifierfactory.cpp
GSmtp::ExecutableVerifier
A Verifier that runs an executable.
Definition: gexecutableverifier.h:38
GSmtp::InternalVerifier
The standard internal Verifier that accepts all mailbox names.
Definition: ginternalverifier.h:39
gnetworkverifier.h
gexecutableverifier.h
GSmtp::NetworkVerifier
A Verifier that talks to a remote verifier over the network.
Definition: gnetworkverifier.h:39
GSmtp::FactoryParser::Result
Result tuple for GSmtp::FactoryParser::parse().
Definition: gfactoryparser.h:41
GSmtp::VerifierFactory::newVerifier
static Verifier * newVerifier(GNet::ExceptionHandler &, const std::string &identifier, unsigned int timeout, bool compatible)
Returns a Verifier on the heap.
Definition: gverifierfactory.cpp:35
GSmtp::FactoryParser::check
static std::string check(const std::string &identifier, bool allow_spam)
Parses and checks an identifier.
Definition: gfactoryparser.cpp:63
gfactoryparser.h
GSmtp::Verifier
An asynchronous interface that verifies recipient 'to' addresses.
Definition: gverifier.h:43
GNet::ExceptionHandler
An abstract interface for handling exceptions thrown out of event-loop callbacks (socket events...
Definition: gexceptionhandler.h:44
ginternalverifier.h
GSmtp::FactoryParser::parse
static Result parse(const std::string &identifier, bool allow_spam)
Parses an identifier like "/usr/bin/foo" or "net:127.0.0.1:99" returning the type and the specificati...
Definition: gfactoryparser.cpp:30
gexception.h
gverifierfactory.h
gsmtp.h
G::Path
A Path object represents a file system path.
Definition: gpath.h:72
GSmtp::VerifierFactory::check
static std::string check(const std::string &identifier)
Checks an identifier.
Definition: gverifierfactory.cpp:30