- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

gexecutableverifier.h
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 // ===
20
21 #ifndef G_SMTP_EXECUTABLE_VERIFIER_H
22 #define G_SMTP_EXECUTABLE_VERIFIER_H
23
24 #include "gdef.h"
25 #include "gsmtp.h"
26 #include "gverifier.h"
27 #include "gexecutable.h"
28 #include <string>
29
31 namespace GSmtp
32 {
33 class ExecutableVerifier ;
34 }
35
39 class GSmtp::ExecutableVerifier : public GSmtp::Verifier
40 {
41 public:
42 explicit ExecutableVerifier( const G::Executable & ) ;
44
45 virtual void verify( const std::string & rcpt_to_parameter ,
46 const std::string & mail_from_parameter , const GNet::Address & client_ip ,
47 const std::string & auth_mechanism , const std::string & auth_extra ) ;
49
50 virtual G::Signal2<std::string,VerifierStatus> & doneSignal() ;
52
53 virtual void reset() ;
55
56 private:
57 ExecutableVerifier( const ExecutableVerifier & ) ; // not implemented
58 void operator=( const ExecutableVerifier & ) ; // not implemented
59 VerifierStatus verifyExternal( const std::string & ,
60 const std::string & , const std::string & , const std::string & , const std::string & ,
61 const GNet::Address & , const std::string & , const std::string & ) const ;
62
63 private:
64 G::Executable m_exe ;
65 G::Signal2<std::string,VerifierStatus> m_done_signal ;
66 } ;
67
68 #endif
G::Signal2
Part of the slot/signal system.
Definition: gslot.h:286
GSmtp
SMTP and message-store classes.
GSmtp::ExecutableVerifier
A Verifier that runs an executable.
Definition: gexecutableverifier.h:39
GSmtp::ExecutableVerifier::verify
virtual void verify(const std::string &rcpt_to_parameter, const std::string &mail_from_parameter, const GNet::Address &client_ip, const std::string &auth_mechanism, const std::string &auth_extra)
Final override from GSmtp::Verifier.
Definition: gexecutableverifier.cpp:39
G::Executable
A structure representing an external program, holding a path and a set of arguments.
Definition: gexecutable.h:43
GNet::Address
The Address class encapsulates an IP transport address.
Definition: gaddress.h:48
gexecutable.h
gverifier.h
GSmtp::Verifier
An asynchronous interface that verifies recipient 'to' addresses.
Definition: gverifier.h:44
GSmtp::ExecutableVerifier::ExecutableVerifier
ExecutableVerifier(const G::Executable &)
Constructor.
Definition: gexecutableverifier.cpp:34
GSmtp::VerifierStatus
A structure returned by GSmtp::Verifier to describe the status of a rcpt-to recipient.
Definition: gverifierstatus.h:51
gsmtp.h
GSmtp::ExecutableVerifier::reset
virtual void reset()
Final override from GSmtp::Verifier.
Definition: gexecutableverifier.cpp:114
GSmtp::ExecutableVerifier::doneSignal
virtual G::Signal2< std::string, VerifierStatus > & doneSignal()
Final override from GSmtp::Verifier.
Definition: gexecutableverifier.cpp:109