154 static void nbbio_event(
int event,
void *context)
156 const char *myname =
"nbbio_event";
168 msg_panic(
"%s: socket fd=%d: read buffer is full",
171 msg_panic(
"%s: socket fd=%d: bad pending read count %ld",
178 msg_info(
"%s: read %ld on %s fd=%d",
179 myname, (
long) count, np->
label, np->
fd);
180 }
else if (count == 0) {
183 msg_info(
"%s: read EOF on %s fd=%d",
187 msg_warn(
"%s: read() returns EAGAIN on readable descriptor",
204 msg_panic(
"%s: socket fd=%d: empty write buffer", myname, np->
fd);
206 msg_panic(
"%s: socket fd=%d: bad pending write count %ld",
215 msg_warn(
"%s: write() returns EAGAIN on writable descriptor",
238 msg_info(
"%s: %s timeout on %s fd=%d",
243 msg_panic(
"%s: unknown event %d", myname, event);
258 const char *myname =
"nbbio_enable_read";
264 msg_panic(
"%s: socket fd=%d is enabled for %s",
267 msg_panic(
"%s: socket fd=%d: bad timeout %d",
268 myname, np->
fd, timeout);
270 msg_panic(
"%s: socket fd=%d: read buffer is full",
285 const char *myname =
"nbbio_enable_write";
291 msg_panic(
"%s: socket fd=%d is enabled for %s",
294 msg_panic(
"%s: socket fd=%d bad timeout %d",
295 myname, np->
fd, timeout);
297 msg_panic(
"%s: socket fd=%d: empty write buffer",
337 msg_panic(
"nbbio_create: bad file descriptor: %d", fd);
339 msg_panic(
"nbbio_create: bad buffer size: %ld", (
long) bufsize);
366 (void) close(np->
fd);
void event_enable_read(int fd, EVENT_NOTIFY_RDWR_FN callback, void *context)
char * mystrdup(const char *str)
#define NBBIO_MASK_ACTIVE
NORETURN msg_panic(const char *fmt,...)
void nbbio_slumber(NBBIO *np, int timeout)
#define NBBIO_FLAG_TIMEOUT
void event_enable_write(int fd, EVENT_NOTIFY_RDWR_FN callback, void *context)
void nbbio_enable_read(NBBIO *np, int timeout)
#define NBBIO_OP_NAME(np)
void msg_warn(const char *fmt,...)
void nbbio_free(NBBIO *np)
void nbbio_enable_write(NBBIO *np, int timeout)
time_t event_request_timer(EVENT_NOTIFY_TIME_FN callback, void *context, int delay)
NBBIO * nbbio_create(int fd, ssize_t bufsize, const char *label, NBBIO_ACTION action, void *context)
void event_disable_readwrite(int fd)
void(* NBBIO_ACTION)(int, void *)
int event_cancel_timer(EVENT_NOTIFY_TIME_FN callback, void *context)
void nbbio_disable_readwrite(NBBIO *np)
void * mymalloc(ssize_t len)
void msg_info(const char *fmt,...)