E-MailRelay
gpop_enabled.cpp
Go to the documentation of this file.
1//
2// Copyright (C) 2001-2024 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/// \file gpop_enabled.cpp
19///
20
21#include "gdef.h"
22#include "gpop.h"
23#include "gsecrets.h"
24
25bool GPop::enabled() noexcept
26{
27 return true ;
28}
29
30std::unique_ptr<GPop::Store> GPop::newStore( const G::Path & spool_dir , const Store::Config & config )
31{
32 return std::make_unique<Store>( spool_dir , config ) ;
33}
34
35std::unique_ptr<GAuth::SaslServerSecrets> GPop::newSecrets( const std::string & path )
36{
37 return GAuth::Secrets::newServerSecrets( path , "pop-server" ) ;
38}
39
40std::unique_ptr<GPop::Server> GPop::newServer( GNet::EventState es , Store & store ,
41 const GAuth::SaslServerSecrets & secrets , const Server::Config & config )
42{
43 return std::make_unique<Server>( es , store , secrets , config ) ;
44}
45
46void GPop::report( const Server * server , const std::string & group )
47{
48 if( server )
49 server->report( group ) ;
50}
An interface used by GAuth::SaslServer to obtain authentication secrets.
static std::unique_ptr< SaslServerSecrets > newServerSecrets(const std::string &spec, const std::string &log_name)
Factory function for server secrets.
Definition: gsecrets.cpp:72
A lightweight object containing an ExceptionHandler pointer, optional ExceptionSource pointer and opt...
Definition: geventstate.h:131
A Path object represents a file system path.
Definition: gpath.h:82
std::unique_ptr< GAuth::SaslServerSecrets > newSecrets(const std::string &path)
Creates a new SaslServerSecrets for newStore().
std::unique_ptr< Store > newStore(const G::Path &spool_dir, const Store::Config &)
Creates a new Pop::Store.
std::unique_ptr< Server > newServer(GNet::EventState, Store &, const GAuth::SaslServerSecrets &, const Server::Config &)
Creates a new server.
bool enabled() noexcept
Returns true if pop code is built in.
void report(const Server *, const std::string &group={})
Calls GPop::Server::report().