diff options
| author | Joel Klinghed <the_jk@yahoo.com> | 2015-06-09 00:21:45 +0200 |
|---|---|---|
| committer | Joel Klinghed <the_jk@yahoo.com> | 2015-06-09 00:21:45 +0200 |
| commit | 8f01c9a51e32891b862489e4082d2c20aa1fc883 (patch) | |
| tree | c8f21cb9768c0853da6f68decae316c1f9c7a2f5 /src/test_sender.cc | |
| parent | 913cfd1c7ef7a145036a8416d4ea815cb5cdb601 (diff) | |
Improve sender and sender_client
1) Add sockguard in sockutils.hh to help with closing sockets
2) Make sender fork in background
3) Make sender_client start a sender if needed (and sender_bin specified in config)
Diffstat (limited to 'src/test_sender.cc')
| -rw-r--r-- | src/test_sender.cc | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/test_sender.cc b/src/test_sender.cc new file mode 100644 index 0000000..6622ed1 --- /dev/null +++ b/src/test_sender.cc @@ -0,0 +1,41 @@ +#include "common.hh" + +#include <cstdlib> +#include <cstring> +#include <iostream> + +#include "config.hh" +#include "sender_client.hh" + +using namespace stuff; + +int main(int argc, char** argv) { + class StdError : public SenderClient::Error { + public: + StdError() { + } + void error(const std::string& message) override { + std::cerr << message << std::endl; + } + void error(const std::string& message, int error) override { + std::cerr << message << ": " << strerror(error) << std::endl; + } + }; + + if (argc != 4) { + std::cerr << "Usage: `test_sender CONFIG CHANNEL MESSAGE`" << std::endl; + return EXIT_FAILURE; + } + auto config = Config::create(); + if (!config->load(argv[1])) { + std::cerr << "Error loading config: " << argv[1] << std::endl; + return EXIT_FAILURE; + } + auto error = std::make_shared<StdError>(); + auto client = SenderClient::create(config.get(), error); + if (!client) { + return EXIT_FAILURE; + } + client->send(argv[2], argv[3]); + return EXIT_SUCCESS; +} |
