/* Copyright (c) 2013-2018 Dovecot authors, see the included COPYING file */
#include "lib.h"
#include "llist.h"
#include "istream.h"
#include "ostream.h"
#include "strescape.h"
#include "master-service.h"
#include "replicator-queue.h"
#include "notify-connection.h"
#include <unistd.h>
#define NOTIFY_CLIENT_PROTOCOL_MINOR_VERSION 0
struct notify_connection {
int refcount;
int fd;
};
struct notify_sync_request {
unsigned int id;
};
{
}
static int
{
const char *const *args;
unsigned int id;
/* U \t <username> \t <priority> [\t <sync id>] */
return -1;
}
return -1;
}
return -1;
}
if (priority != REPLICATION_PRIORITY_SYNC)
return -1;
} else {
}
return 0;
}
{
const char *line;
int ret;
case -2:
i_error("BUG: Client connection sent too much data");
return;
case -1:
return;
}
if (!conn->version_received) {
return;
i_error("Notify client not compatible with this server "
"(mixed old and new binaries?)");
return;
}
}
T_BEGIN {
} T_END;
if (ret < 0) {
break;
}
}
}
struct notify_connection *
{
return conn;
}
{
return;
i_error("close(notify connection) failed: %m");
}
{
}
{
return;
}
void notify_connections_destroy_all(void)
{
while (connections != NULL)
}