*/
#define SMTP_MESSAGE_SIZE 65528
-#define DEBUG_SMTP GNUNET_NO
+#define DEBUG_SMTP GNUNET_EXTRA_LOGGING
#define FILTER_STRING_SIZE 64
} EmailAddress;
+GNUNET_NETWORK_STRUCT_BEGIN
+
/**
* Encapsulation of a GNUnet message in the SMTP mail body (before
* base64 encoding).
GNUNET_PeerIdentity sender;
} SMTPMessage;
+GNUNET_NETWORK_STRUCT_END
/* *********** globals ************* */
/** ******************** Base64 encoding ***********/
#define FILLCHAR '='
-static char *cvt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- "abcdefghijklmnopqrstuvwxyz" "0123456789+/";
+static char *cvt =
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "abcdefghijklmnopqrstuvwxyz" "0123456789+/";
/**
* Encode into Base64.
(*output)[ret++] = '\n'; \
}
ret = 0;
- opt = GNUNET_malloc (2 + (((len * 4 / 3) + 8) * (MAX_CHAR_PER_LINE + 2)) /
- MAX_CHAR_PER_LINE);
+ opt =
+ GNUNET_malloc (2 +
+ (((len * 4 / 3) + 8) * (MAX_CHAR_PER_LINE +
+ 2)) / MAX_CHAR_PER_LINE);
/* message must start with \r\n for libesmtp */
*output = opt;
opt[0] = '\r';
if (ntohs (mp->header.size) != size)
{
GNUNET_GE_LOG (ectx,
- GNUNET_GE_WARNING | GNUNET_GE_BULK |
- GNUNET_GE_USER,
- _
- ("Received malformed message via %s. Ignored.\n"),
+ GNUNET_GE_WARNING | GNUNET_GE_BULK | GNUNET_GE_USER,
+ _("Received malformed message via %s. Ignored.\n"),
"SMTP");
#if DEBUG_SMTP
GNUNET_GE_LOG (ectx,
- GNUNET_GE_DEBUG | GNUNET_GE_REQUEST |
- GNUNET_GE_USER,
- "Size returned by base64=%d, in the msg=%d.\n",
- size, ntohl (mp->size));
+ GNUNET_GE_DEBUG | GNUNET_GE_REQUEST | GNUNET_GE_USER,
+ "Size returned by base64=%d, in the msg=%d.\n", size,
+ ntohl (mp->size));
#endif
GNUNET_free (out);
goto END;
coreMP->tsession = NULL;
coreMP->sender = mp->sender;
#if DEBUG_SMTP
- GNUNET_GE_LOG (ectx,
- GNUNET_GE_DEBUG | GNUNET_GE_REQUEST | GNUNET_GE_USER,
+ GNUNET_GE_LOG (ectx, GNUNET_GE_DEBUG | GNUNET_GE_REQUEST | GNUNET_GE_USER,
"SMTP message passed to the core.\n");
#endif
}
END:
#if DEBUG_SMTP
- GNUNET_GE_LOG (ectx,
- GNUNET_GE_DEBUG | GNUNET_GE_REQUEST | GNUNET_GE_USER,
+ GNUNET_GE_LOG (ectx, GNUNET_GE_DEBUG | GNUNET_GE_REQUEST | GNUNET_GE_USER,
"SMTP message processed.\n");
#endif
if (fdes != NULL)
maddr = (const EmailAddress *) &hello[1];
if ((ntohs (hello->header.size) !=
sizeof (GNUNET_MessageHello) + ntohs (hello->senderAddressSize)) ||
- (maddr->senderAddress[ntohs (hello->senderAddressSize) - 1 -
- FILTER_STRING_SIZE] != '\0'))
+ (maddr->senderAddress
+ [ntohs (hello->senderAddressSize) - 1 - FILTER_STRING_SIZE] != '\0'))
{
GNUNET_GE_BREAK (ectx, 0);
return GNUNET_SYSERR; /* obviously invalid */
EmailAddress *haddr;
int i;
- GNUNET_GC_get_configuration_value_string (coreAPI->cfg,
- "SMTP", "FILTER",
+ GNUNET_GC_get_configuration_value_string (coreAPI->cfg, "SMTP", "FILTER",
"X-mailer: GNUnet", &filter);
if (NULL == strstr (filter, ": "))
{
- GNUNET_GE_LOG (ectx,
- GNUNET_GE_WARNING | GNUNET_GE_BULK | GNUNET_GE_USER,
+ GNUNET_GE_LOG (ectx, GNUNET_GE_WARNING | GNUNET_GE_BULK | GNUNET_GE_USER,
_("SMTP filter string to invalid, lacks ': '\n"));
GNUNET_free (filter);
return NULL;
if (strlen (filter) > FILTER_STRING_SIZE)
{
filter[FILTER_STRING_SIZE] = '\0';
- GNUNET_GE_LOG (ectx,
- GNUNET_GE_WARNING | GNUNET_GE_BULK | GNUNET_GE_USER,
+ GNUNET_GE_LOG (ectx, GNUNET_GE_WARNING | GNUNET_GE_BULK | GNUNET_GE_USER,
_("SMTP filter string to long, capped to `%s'\n"), filter);
}
i = (strlen (email) + 8) & (~7); /* make multiple of 8 */
* @return GNUNET_SYSERR on error, GNUNET_OK on success
*/
static int
-api_send (GNUNET_TSession * tsession,
- const void *msg, const unsigned int size, int important)
+api_send (GNUNET_TSession * tsession, const void *msg, const unsigned int size,
+ int important)
{
const GNUNET_MessageHello *hello;
const EmailAddress *haddr;
{
GNUNET_GE_LOG (ectx,
GNUNET_GE_ERROR | GNUNET_GE_ADMIN | GNUNET_GE_USER |
- GNUNET_GE_IMMEDIATE,
- _("SMTP: `%s' failed: %s.\n"),
- "smtp_create_session",
- smtp_strerror (smtp_errno (), ebuf, EBUF_LEN));
+ GNUNET_GE_IMMEDIATE, _("SMTP: `%s' failed: %s.\n"),
+ "smtp_create_session", smtp_strerror (smtp_errno (), ebuf,
+ EBUF_LEN));
GNUNET_mutex_unlock (lock);
return GNUNET_SYSERR;
}
{
GNUNET_GE_LOG (ectx,
GNUNET_GE_ERROR | GNUNET_GE_ADMIN | GNUNET_GE_USER |
- GNUNET_GE_IMMEDIATE,
- _("SMTP: `%s' failed: %s.\n"),
- "smtp_set_server",
- smtp_strerror (smtp_errno (), ebuf, EBUF_LEN));
+ GNUNET_GE_IMMEDIATE, _("SMTP: `%s' failed: %s.\n"),
+ "smtp_set_server", smtp_strerror (smtp_errno (), ebuf,
+ EBUF_LEN));
smtp_destroy_session (session);
GNUNET_mutex_unlock (lock);
return GNUNET_SYSERR;
{
GNUNET_GE_LOG (ectx,
GNUNET_GE_WARNING | GNUNET_GE_ADMIN | GNUNET_GE_USER |
- GNUNET_GE_BULK,
- _("SMTP: `%s' failed: %s.\n"),
- "smtp_add_message",
- smtp_strerror (smtp_errno (), ebuf, EBUF_LEN));
+ GNUNET_GE_BULK, _("SMTP: `%s' failed: %s.\n"),
+ "smtp_add_message", smtp_strerror (smtp_errno (), ebuf,
+ EBUF_LEN));
smtp_destroy_session (session);
GNUNET_mutex_unlock (lock);
return GNUNET_SYSERR;
{
GNUNET_GE_LOG (ectx,
GNUNET_GE_WARNING | GNUNET_GE_ADMIN | GNUNET_GE_USER |
- GNUNET_GE_BULK,
- _("SMTP: `%s' failed: %s.\n"),
- "smtp_set_header",
- smtp_strerror (smtp_errno (), ebuf, EBUF_LEN));
+ GNUNET_GE_BULK, _("SMTP: `%s' failed: %s.\n"),
+ "smtp_set_header", smtp_strerror (smtp_errno (), ebuf,
+ EBUF_LEN));
smtp_destroy_session (session);
GNUNET_mutex_unlock (lock);
GNUNET_free (filter);
{
GNUNET_GE_LOG (ectx,
GNUNET_GE_WARNING | GNUNET_GE_ADMIN | GNUNET_GE_USER |
- GNUNET_GE_BULK,
- _("SMTP: `%s' failed: %s.\n"),
- "smtp_size_set_estimate",
- smtp_strerror (smtp_errno (), ebuf, EBUF_LEN));
+ GNUNET_GE_BULK, _("SMTP: `%s' failed: %s.\n"),
+ "smtp_size_set_estimate", smtp_strerror (smtp_errno (), ebuf,
+ EBUF_LEN));
}
if (0 == smtp_set_messagecb (message, &get_message, &gm_cls))
{
GNUNET_GE_LOG (ectx,
GNUNET_GE_WARNING | GNUNET_GE_ADMIN | GNUNET_GE_USER |
- GNUNET_GE_BULK,
- _("SMTP: `%s' failed: %s.\n"),
- "smtp_set_messagecb",
- smtp_strerror (smtp_errno (), ebuf, EBUF_LEN));
+ GNUNET_GE_BULK, _("SMTP: `%s' failed: %s.\n"),
+ "smtp_set_messagecb", smtp_strerror (smtp_errno (), ebuf,
+ EBUF_LEN));
smtp_destroy_session (session);
GNUNET_mutex_unlock (lock);
GNUNET_free (gm_cls.ebody);
{
GNUNET_GE_LOG (ectx,
GNUNET_GE_WARNING | GNUNET_GE_ADMIN | GNUNET_GE_USER |
- GNUNET_GE_BULK,
- _("SMTP: `%s' failed: %s.\n"),
- "smtp_add_recipient",
- smtp_strerror (smtp_errno (), ebuf, EBUF_LEN));
+ GNUNET_GE_BULK, _("SMTP: `%s' failed: %s.\n"),
+ "smtp_add_recipient", smtp_strerror (smtp_errno (), ebuf,
+ EBUF_LEN));
smtp_destroy_session (session);
GNUNET_mutex_unlock (lock);
return GNUNET_SYSERR;
{
GNUNET_GE_LOG (ectx,
GNUNET_GE_WARNING | GNUNET_GE_ADMIN | GNUNET_GE_USER |
- GNUNET_GE_BULK,
- _("SMTP: `%s' failed: %s.\n"),
- "smtp_start_session",
- smtp_strerror (smtp_errno (), ebuf, EBUF_LEN));
+ GNUNET_GE_BULK, _("SMTP: `%s' failed: %s.\n"),
+ "smtp_start_session", smtp_strerror (smtp_errno (), ebuf,
+ EBUF_LEN));
smtp_destroy_session (session);
GNUNET_mutex_unlock (lock);
GNUNET_free (gm_cls.ebody);
* @return GNUNET_OK on success, GNUNET_SYSERR if the operation failed
*/
static int
-api_connect (const GNUNET_MessageHello * hello,
- GNUNET_TSession ** tsessionPtr, int may_reuse)
+api_connect (const GNUNET_MessageHello * hello, GNUNET_TSession ** tsessionPtr,
+ int may_reuse)
{
GNUNET_TSession *tsession;
if (dispatchThread == NULL)
{
GNUNET_GE_DIE_STRERROR (ectx,
- GNUNET_GE_ADMIN | GNUNET_GE_BULK |
- GNUNET_GE_FATAL, "pthread_create");
+ GNUNET_GE_ADMIN | GNUNET_GE_BULK | GNUNET_GE_FATAL,
+ "pthread_create");
return GNUNET_SYSERR;
}
return GNUNET_OK;
* Convert SMTP hello to an IP address (always fails).
*/
static int
-api_hello_to_address (const GNUNET_MessageHello * hello,
- void **sa, unsigned int *sa_len)
+api_hello_to_address (const GNUNET_MessageHello * hello, void **sa,
+ unsigned int *sa_len)
{
return GNUNET_SYSERR;
}
* frequency limits to SMTP in the future!).
*/
static int
-api_test_would_try (GNUNET_TSession * tsession, const unsigned int size,
+api_test_would_try (GNUNET_TSession * tsession, unsigned int size,
int important)
{
return GNUNET_OK; /* we always try... */
* returns the smtp transport API.
*/
GNUNET_TransportAPI *
-inittransport_smtp (GNUNET_CoreAPIForTransport * core)
+inittransport_smtp (struct GNUNET_CoreAPIForTransport * core)
{
-
-
unsigned long long mtu;
struct sigaction sa;
ectx = core->ectx;
if (!GNUNET_GC_have_configuration_value (coreAPI->cfg, "SMTP", "EMAIL"))
{
- GNUNET_GE_LOG (ectx,
- GNUNET_GE_ERROR | GNUNET_GE_BULK | GNUNET_GE_USER,
+ GNUNET_GE_LOG (ectx, GNUNET_GE_ERROR | GNUNET_GE_BULK | GNUNET_GE_USER,
_
("No email-address specified, can not start SMTP transport.\n"));
return NULL;
}
- GNUNET_GC_get_configuration_value_number (coreAPI->cfg,
- "SMTP",
- "MTU",
- 1200,
+ GNUNET_GC_get_configuration_value_number (coreAPI->cfg, "SMTP", "MTU", 1200,
SMTP_MESSAGE_SIZE,
SMTP_MESSAGE_SIZE, &mtu);
- GNUNET_GC_get_configuration_value_number (coreAPI->cfg,
- "SMTP",
- "RATELIMIT",
+ GNUNET_GC_get_configuration_value_number (coreAPI->cfg, "SMTP", "RATELIMIT",
0, 0, 1024 * 1024, &rate_limit);
stats = coreAPI->service_request ("stats");
if (stats != NULL)
{
- stat_bytesReceived
- = stats->create (gettext_noop ("# bytes received via SMTP"));
+ stat_bytesReceived =
+ stats->create (gettext_noop ("# bytes received via SMTP"));
stat_bytesSent = stats->create (gettext_noop ("# bytes sent via SMTP"));
- stat_bytesDropped
- = stats->create (gettext_noop ("# bytes dropped by SMTP (outgoing)"));
+ stat_bytesDropped =
+ stats->create (gettext_noop ("# bytes dropped by SMTP (outgoing)"));
}
- GNUNET_GC_get_configuration_value_filename (coreAPI->cfg,
- "SMTP",
- "PIPE",
+ GNUNET_GC_get_configuration_value_filename (coreAPI->cfg, "SMTP", "PIPE",
GNUNET_DEFAULT_DAEMON_VAR_DIRECTORY
"/smtp-pipe", &pipename);
UNLINK (pipename);
if (0 != mkfifo (pipename, S_IWUSR | S_IRUSR | S_IWGRP | S_IWOTH))
{
GNUNET_GE_LOG_STRERROR (ectx,
- GNUNET_GE_ADMIN | GNUNET_GE_BULK |
- GNUNET_GE_FATAL, "mkfifo");
+ GNUNET_GE_ADMIN | GNUNET_GE_BULK | GNUNET_GE_FATAL,
+ "mkfifo");
GNUNET_free (pipename);
coreAPI->service_release (stats);
stats = NULL;
GNUNET_GE_LOG_STRERROR (ectx,
GNUNET_GE_ADMIN | GNUNET_GE_BULK |
GNUNET_GE_WARNING, "chmod");
- GNUNET_GC_get_configuration_value_string (coreAPI->cfg,
- "SMTP", "EMAIL", NULL, &email);
+ GNUNET_GC_get_configuration_value_string (coreAPI->cfg, "SMTP", "EMAIL", NULL,
+ &email);
lock = GNUNET_mutex_create (GNUNET_NO);
- GNUNET_GC_get_configuration_value_string (coreAPI->cfg,
- "SMTP",
- "SERVER",
+ GNUNET_GC_get_configuration_value_string (coreAPI->cfg, "SMTP", "SERVER",
"localhost:25", &smtp_server_name);
sa.sa_handler = SIG_IGN;
sigemptyset (&sa.sa_mask);