// \file PostfixIntegrate.hpp // // Copyright (C) 2011 ARM Research Labs, LLC. // See www.armresearch.com for the copyright terms. // // This file defines the PostfixIntegrate interface. // // $Id$ // /////////////////////////////////////////////////////////////////////////////////////////////////// #ifndef PostfixIntegratehpp_included #define PostfixIntegratehpp_included #include "MtaIntegrate.hpp" /// Class to manage the SNFMilter integration with postfix. // // This class implements the MtaIntegrate interface for postfix. // ////////////////////////////////////////////////////////////////////////////////////////////////////////// class PostfixIntegrate : public MtaIntegrate { public: virtual void SetOperatingSystem(std::string OperatingSystemType); virtual void Integrate(FileBackup *SaveFile); virtual void Unintegrate(FileBackup *SaveFile); // Return the default chroot configuration of Postfix. // // \returns true if the default configuration is for postfix to // run chrooted, false otherwise. // bool DefaultIsChrooted(); private: virtual bool MtaIsRunningDetected(); virtual bool ReloadMta(); virtual bool IsIntegrated(); bool MtaConfigurationIsChrooted(); /// Postfix main.cf file path. std::string PostfixMainCfPath; /// Postfix master.cf file path. std::string PostfixMasterCfPath; /// Value of smtpd_milters keyword. std::string PostfixSocketSpec; /// Command to determine whether postfix is running. std::string MtaIsRunningCommand; /// Command to reload postfix. std::string ReloadMtaCommand; /// True if postfix runs chrooted by default. bool PostfixDefaultIsChrooted; /// Command to add the postfix user to the snfuser group. std::string AddPostfixToSnfuserGroupCommand; }; #endif