gverifierfactory_exec_enabled.cpp
Go to the documentation of this file.
1 //
2 // Copyright (C) 2001-2013 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_exec_enabled.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 & address )
31 {
32  return FactoryParser::check( address , "net" ) ;
33 }
34 
35 GSmtp::Verifier * GSmtp::VerifierFactory::newVerifier( const std::string & address , unsigned int timeout )
36 {
37  Pair p = FactoryParser::parse( address , "net" ) ;
38  if( p.first.empty() || p.first == "exit" )
39  {
40  return new InternalVerifier ;
41  }
42  else if( p.first == "net" )
43  {
44  return new NetworkVerifier( p.second , timeout , timeout ) ;
45  }
46  else
47  {
48  return new ExecutableVerifier( G::Executable(p.second) ) ;
49  }
50 }
51 
A Verifier that runs an executable.
The standard internal Verifier.
A structure representing an external program, holding a path and a set of arguments.
Definition: gexecutable.h:43
A Verifier that talks to a remote verifier over the network.
An asynchronous interface that verifies recipient 'to' addresses.
Definition: gverifier.h:44
static std::string check(const std::string &address)
Checks an address.
static std::pair< std::string, std::string > parse(const std::string &address, const std::string &)
Parses an identifier.
static std::string check(const std::string &address, const std::string &)
Parses and checks an identifier.
static Verifier * newVerifier(const std::string &address, unsigned int timeout)
Returns a Verifier on the heap.