Catch errors.

This commit is contained in:
Nicolás Ortega Froysa 2017-09-25 13:01:13 +02:00
parent b4544a79fe
commit 18ca002ef6
No known key found for this signature in database
GPG Key ID: FEC70E3BAE2E69BF
2 changed files with 35 additions and 5 deletions

View File

@ -44,7 +44,6 @@ struct user {
struct message { struct message {
const char *msg; ///< The text message. const char *msg; ///< The text message.
time_t sent; ///< The time it was sent. time_t sent; ///< The time it was sent.
time_t received; ///< The time it was received.
struct user from; ///< Info on the peer who sent the message. struct user from; ///< Info on the peer who sent the message.
}; };
@ -53,8 +52,11 @@ struct message {
* number will be used. * number will be used.
* *
* @param port The port for the node to listen on. * @param port The port for the node to listen on.
*
* @return 1 upon success, 0 upon failure. Use NeoComm_get_last_error for a
* text description of the error.
*/ */
void NeoComm_init(const unsigned short port); int NeoComm_init(const unsigned short port);
/** /**
* @brief Deinitialize the local node. * @brief Deinitialize the local node.
@ -129,6 +131,17 @@ struct message *NeoComm_get_next_message(const char *channel_name);
*/ */
void NeoComm_free_message(struct message *msg); void NeoComm_free_message(struct message *msg);
/**
* @brief Send a message to a channel.
*
* @param channel_name Name of the channel to send the message to.
* @param message A message to send to the channel.
*
* @return 1 upon success, 0 upon failure. Use NeoComm_get_last_error for a
* text description of the error.
*/
int NeoComm_send_message(const char *channel_name, const char *message);
/** /**
* @brief Get the last error that occurred in text. * @brief Get the last error that occurred in text.
* *

View File

@ -24,18 +24,35 @@
#include <opendht.h> #include <opendht.h>
#include <string> #include <string>
#include <fstream> #include <fstream>
#include <stdexcept>
extern "C" {
#include <gnutls/gnutls.h>
}
#define DEFAULT_PORT 1335 #define DEFAULT_PORT 1335
dht::DhtRunner node; dht::DhtRunner node;
void NeoComm_init(const unsigned short port) { int NeoComm_init(const unsigned short port) {
node.run((port == 0 ? DEFAULT_PORT : port), #ifdef WOE32
dht::crypto::generateIdentity(), true); gnutls_global_init();
#endif //WOE32
try {
node.run((port == 0 ? DEFAULT_PORT : port),
dht::crypto::generateIdentity(), true);
} catch(const std::exception &e) {
add_error(e.what());
return 0;
}
return 1;
} }
void NeoComm_deinit() { void NeoComm_deinit() {
node.join(); node.join();
#ifdef WOE32
gnutls_global_deinit();
#endif //WOE32
} }
int NeoComm_connect(const char *address, const unsigned short port) { int NeoComm_connect(const char *address, const unsigned short port) {