client.c revision e10d8b1291090c26b9ef499637e6e632485ca5be
/* Copyright (c) 2009-2010 Dovecot authors, see the included COPYING file */
#include "lib.h"
#include "array.h"
#include "base64.h"
#include "str.h"
#include "llist.h"
#include "istream.h"
#include "ostream.h"
#include "hostpid.h"
#include "master-service.h"
#include "master-service-settings.h"
#include "mail-namespace.h"
#include "mail-storage.h"
#include "mail-storage-service.h"
#include "main.h"
#include "lda-settings.h"
#include "lmtp-settings.h"
#include "lmtp-proxy.h"
#include "commands.h"
#include "client.h"
#include <unistd.h>
#define CLIENT_MAX_INPUT_SIZE 4096
unsigned int clients_count = 0;
{
"Disconnected for inactivity");
}
{
args = "";
} else {
args++;
}
return 0;
}
{
case -2:
/* buffer full */
"Disconnected: Input buffer full");
return -1;
case -1:
/* disconnected */
return -1;
case 0:
/* nothing new read */
return 0;
default:
/* something was read */
return 0;
}
}
{
const char *line;
int ret;
T_BEGIN {
} T_END;
if (ret < 0)
break;
}
}
{
if (client_input_read(client) < 0)
return;
}
{
struct mail_namespace *raw_ns;
struct mail_namespace_settings raw_ns_set;
const char *error;
void **sets;
}
{
struct mail_storage_service_input input;
const char *error;
&error) < 0)
}
{
}
{
const char *addr;
addr = "local";
return addr;
}
{
}
const struct master_service_connection *conn)
{
/* always use nonblocking I/O */
return client;
}
const char *reason)
{
i_error("close(client in) failed: %m");
i_error("close(client out) failed: %m");
}
}
{
t_strdup_printf("Connection closed: %m");
}
const char *reason)
{
if (client->disconnected)
return;
else
}
{
struct mail_recipient *rcpt;
}
i_error("close(mail data fd) failed: %m");
}
}
{
T_BEGIN {
} T_END;
}
void clients_destroy(void)
{
"Shutting down");
}
}