bzero (new, sizeof (rspamd_io_dispatcher_t));
new->pool = memory_pool_new (memory_pool_get_size ());
- new->tv = memory_pool_alloc (new->pool, sizeof (struct timeval));
- memcpy (new->tv, tv, sizeof (struct timeval));
+ if (tv != NULL) {
+ new->tv = memory_pool_alloc (new->pool, sizeof (struct timeval));
+ memcpy (new->tv, tv, sizeof (struct timeval));
+ }
+ else {
+ new->tv = NULL;
+ }
+ new->nchars = 0;
new->policy = policy;
new->read_callback = read_cb;
new->write_callback = write_cb;
{
f_str_t *tmp;
- if (d->policy != policy || d->nchars != nchars) {
+ if (d->policy != policy) {
d->policy = policy;
d->nchars = nchars ? nchars : BUFSIZ;
/* Resize input buffer if needed */
GMimeStream *stream;
stream = g_mime_stream_mem_new_with_buffer (task->msg->begin, task->msg->len);
+ msg_debug ("process_message: construct mime parser from string length %ld", (long int)task->msg->len);
/* create a new parser object to parse the stream */
parser = g_mime_parser_new_with_stream (stream);