104 static void clnt_stream_event(
int unused_event,
void *context)
113 msg_panic(
"clnt_stream_event: stream is closed");
115 clnt_stream_close(clnt_stream);
120 static void clnt_stream_ttl_event(
int event,
void *context)
135 clnt_stream_event(event, context);
140 static void clnt_stream_open(
CLNT_STREAM *clnt_stream)
147 msg_panic(
"clnt_stream_open: stream is open");
162 (
void *) clnt_stream);
171 static void clnt_stream_close(
CLNT_STREAM *clnt_stream)
178 msg_panic(
"clnt_stream_close: stream is closed");
201 clnt_stream_close(clnt_stream);
214 if (clnt_stream->
vstream == 0) {
215 clnt_stream_open(clnt_stream);
217 clnt_stream_close(clnt_stream);
218 clnt_stream_open(clnt_stream);
229 int timeout,
int ttl)
238 clnt_stream->
timeout = timeout;
239 clnt_stream->
ttl = ttl;
242 return (clnt_stream);
250 clnt_stream_close(clnt_stream);
253 myfree((
void *) clnt_stream);
void event_enable_read(int fd, EVENT_NOTIFY_RDWR_FN callback, void *context)
VSTREAM * mail_connect_wait(const char *class, const char *name)
char * mystrdup(const char *str)
VSTREAM * clnt_stream_access(CLNT_STREAM *clnt_stream)
NORETURN msg_panic(const char *fmt,...)
int vstream_fclose(VSTREAM *stream)
CLNT_STREAM * clnt_stream_create(const char *class, const char *service, int timeout, int ttl)
time_t event_request_timer(EVENT_NOTIFY_TIME_FN callback, void *context, int delay)
#define vstream_fileno(vp)
void clnt_stream_recover(CLNT_STREAM *clnt_stream)
void event_disable_readwrite(int fd)
void clnt_stream_free(CLNT_STREAM *clnt_stream)
int event_cancel_timer(EVENT_NOTIFY_TIME_FN callback, void *context)
int close_on_exec(int fd, int on)
void * mymalloc(ssize_t len)
void msg_info(const char *fmt,...)