master.c revision 66251e6ab31e5cc153fe5cae608e416dacafe9cd
/* Copyright (C) 2002 Timo Sirainen */
#include "common.h"
#include "ioloop.h"
#include "network.h"
#include "fdpass.h"
#include "master.h"
typedef struct _WaitingRequest WaitingRequest;
struct _WaitingRequest {
int id;
void *user_data;
};
static unsigned int master_pos;
static char master_buf[sizeof(MasterReply)];
{
*next_request = req;
}
{
i_error("Master sent us unrequested reply for id %d",
return;
}
i_fatal("Master sent invalid id for reply "
}
next_request = &requests;
}
unsigned char cookie[AUTH_COOKIE_SIZE],
{
else
i_fatal("fd_send() failed: %m");
}
{
int ret;
sizeof(master_buf) - master_pos);
if (ret < 0) {
/* master died, kill ourself too */
return;
}
master_pos += ret;
if (master_pos < sizeof(master_buf))
return;
/* reply is now read */
master_pos = 0;
}
void master_init(void)
{
next_request = &requests;
master_pos = 0;
}
void master_deinit(void)
{
}
}