From 4582de6afc3ee984d9b6cffd7bc06bb23300f693 Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Wed, 27 Mar 2013 20:56:17 +0100 Subject: [PATCH] changes --- ChildProt | Bin 0 -> 18304 bytes ChildProt.cpp | 52 ++++++++------------------------------ ChildProt.hpp | 16 ++++++++++++ Makefile | 2 +- PostfixPolicyProtocol.cpp | 46 +++++++++++++++++++++++++++++++++ PostfixPolicyProtocol.hpp | 28 ++++++++++++++++++++ children.sqlite | Bin 0 -> 4096 bytes 7 files changed, 102 insertions(+), 42 deletions(-) create mode 100755 ChildProt create mode 100644 ChildProt.hpp create mode 100644 PostfixPolicyProtocol.cpp create mode 100644 PostfixPolicyProtocol.hpp create mode 100644 children.sqlite diff --git a/ChildProt b/ChildProt new file mode 100755 index 0000000000000000000000000000000000000000..eea1a049a96c7e3980938f2b50abf53eb04e5e45 GIT binary patch literal 18304 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 literal 0 HcmV?d00001 diff --git a/ChildProt.cpp b/ChildProt.cpp index f10669e..4e9a801 100644 --- a/ChildProt.cpp +++ b/ChildProt.cpp @@ -4,55 +4,25 @@ #include #include "Database.hpp" +#include "PostfixPolicyProtocol.hpp" +#include "ChildProt.hpp" + using namespace std; -class InvalidAddressTuple {}; - -class AddressTuple { -public : - AddressTuple(); - const string& getSender() const { return sender; } - const string& getRecipient() const { return recipient; } -private: - string sender; - string recipient; -}; - -AddressTuple::AddressTuple() { - sender = ""; - recipient = ""; - - while (1) { - string buffer; - getline(cin, buffer); - if (0 == buffer.length()) - break; - string::size_type equalsIdx = buffer.find('='); - if (string::npos != equalsIdx) { - string key = buffer.substr(0, equalsIdx); - string value = buffer.substr(equalsIdx+1); - if ("sender" == key) - sender = value; - if ("recipient" ==key) - recipient = value; - } - } - - if ((0 == sender.length()) || (0 == recipient.length())) - throw InvalidAddressTuple(); -} int main() { string result; - try { - AddressTuple addressTuple; - cerr << addressTuple.getSender() << endl; - cerr << addressTuple.getRecipient() << endl; + PostfixPolicyProtocol postfixPolicyProtocol; - DatabaseHandle databaseHandle("/etc/postfix/children.sqlite"); + try { + postfixPolicyProtocol.processInput(); + cerr << postfixPolicyProtocol.getSender() << endl; + cerr << postfixPolicyProtocol.getRecipient() << endl; + + DatabaseHandle databaseHandle(DATABASE_FILE); // SELECT id, delegate FROM child_v WHERE address = '%s' @@ -65,5 +35,5 @@ int main() { result = "OK"; } - cout << "action=" << result << endl << endl; + postfixPolicyProtocol.sendResult(result); } diff --git a/ChildProt.hpp b/ChildProt.hpp new file mode 100644 index 0000000..1c80b21 --- /dev/null +++ b/ChildProt.hpp @@ -0,0 +1,16 @@ +/* + * ChildProt.hpp + * + * Created on: 27.03.2013 + * Author: wn + */ + +#ifndef CHILDPROT_HPP_ +#define CHILDPROT_HPP_ + +#include + +const std::string DATABASE_FILE = "children.sqlite"; + + +#endif /* CHILDPROT_HPP_ */ diff --git a/Makefile b/Makefile index 0b89c68..8d32534 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ CXXFLAGS = -O2 -g -Wall -fmessage-length=0 -OBJS = Database.o ChildProt.o +OBJS = Database.o PostfixPolicyProtocol.o ChildProt.o LIBS = -lsqlite3 diff --git a/PostfixPolicyProtocol.cpp b/PostfixPolicyProtocol.cpp new file mode 100644 index 0000000..d67924e --- /dev/null +++ b/PostfixPolicyProtocol.cpp @@ -0,0 +1,46 @@ +/* + * PostfixPolicyProtocol.cpp + * + * Created on: 27.03.2013 + * Author: wn + */ + +#include +#include "PostfixPolicyProtocol.hpp" + +using namespace std; + + +PostfixPolicyProtocol::PostfixPolicyProtocol() { + sender = ""; + recipient = ""; + } + +void PostfixPolicyProtocol::processInput() { + while (1) { + string buffer; + getline(cin, buffer); + if (0 == buffer.length()) + break; + string::size_type equalsIdx = buffer.find('='); + if (string::npos != equalsIdx) { + string key = buffer.substr(0, equalsIdx); + string value = buffer.substr(equalsIdx+1); + if ("sender" == key) + sender = value; + if ("recipient" ==key) + recipient = value; + } + } + + if ((0 == sender.length()) || (0 == recipient.length())) + throw InvalidAddressTuple(); +} + +void PostfixPolicyProtocol::sendResult(string const& result) { + cout << "action=" << result << endl << endl; + +} + + + diff --git a/PostfixPolicyProtocol.hpp b/PostfixPolicyProtocol.hpp new file mode 100644 index 0000000..34d3d96 --- /dev/null +++ b/PostfixPolicyProtocol.hpp @@ -0,0 +1,28 @@ +/* + * PostfixPolicyProtocol.hpp + * + * Created on: 27.03.2013 + * Author: wn + */ + +#ifndef POSTFIX_POLICY_PROTOCOL_HPP_ +#define POSTFIX_POLICY_PROTOCOL_HPP_ + +#include + +class InvalidAddressTuple {}; + +class PostfixPolicyProtocol { +public : + PostfixPolicyProtocol(); + void processInput(); + void sendResult(std::string const& result); + const std::string& getSender() const { return sender; } + const std::string& getRecipient() const { return recipient; } +private: + std::string sender; + std::string recipient; +}; + + +#endif /* POSTFIX_POLICY_PROTOCOL_HPP_ */ diff --git a/children.sqlite b/children.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..4782cc5d5e548982b84f86c53c84f99d0085eb81 GIT binary patch literal 4096 zcmeHK&2G~`5cckxhM)ETw6rL+U8#pQYLYfW6-X$;A#!O&Tfm7Zs!m^Q>-)5a(Ncw0^c}rirS-gHQWjD;XF)N!%Pj^^5ZdJl*Yil(Y`B;iKiTq)a=p{>Ml!Gb9vi_ z2iJ8%c_>Fjwa2`)oD8*!Fc@&LCe?#uabecX#UJ)g4R$otlN1jV7#HVc@5zC6c9kK znP~Cwh{Nx-5QY0g0t*uamC(?ZgPEGl`2ra6h{Yvffq-|%_wttSHfwdirN#7v<}`GM m9I{!!Tr;lpxR$4(E9CGvIt6`U5o^M)@c{fzK_gg11NAr89a~)h literal 0 HcmV?d00001