static void _ipmipower_setup (void) { int i; struct rlimit rlim; /* Make best effort to increase file descriptor limit, if it fails * for any reason, don't worry about it, its no big deal. */ if (getrlimit (RLIMIT_NOFILE, &rlim) == 0) { rlim.rlim_cur = rlim.rlim_max; setrlimit (RLIMIT_NOFILE,&rlim); } if (ipmi_rmcpplus_init () < 0) { if (errno == EPERM) IPMIPOWER_ERROR (("ipmi_rmcpplus_init: incompatible crypto library")); else IPMIPOWER_ERROR (("ipmi_rmcpplus_init: %s", strerror (errno))); exit (EXIT_FAILURE); } /* Create TTY bufs */ if (!(ttyin = cbuf_create (IPMIPOWER_MIN_TTY_BUF, IPMIPOWER_MAX_TTY_BUF))) { IPMIPOWER_ERROR (("cbuf_create: %s", strerror (errno))); exit (EXIT_FAILURE); } cbuf_opt_set (ttyin, CBUF_OPT_OVERWRITE, CBUF_WRAP_MANY); if (!(ttyout = cbuf_create (IPMIPOWER_MIN_TTY_BUF, IPMIPOWER_MAX_TTY_BUF))) { IPMIPOWER_ERROR (("cbuf_create: %s", strerror (errno))); exit (EXIT_FAILURE); } cbuf_opt_set (ttyout, CBUF_OPT_OVERWRITE, CBUF_WRAP_MANY); for (i = 0; i < IPMIPOWER_MSG_TYPE_NUM_ENTRIES; i++) { if (!(output_hostrange[i] = hostlist_create (NULL))) { IPMIPOWER_ERROR (("hostlist_create: %s", strerror (errno))); exit (EXIT_FAILURE); } } memset (output_counts, '\0', sizeof (output_counts)); }
cbuf_t Cbuf_create(int minsize, int maxsize) { cbuf_t c; if (!(c = cbuf_create(minsize, maxsize))) ierr_exit("Cbuf_create: %s", strerror(errno)); cbuf_opt_set(c, CBUF_OPT_OVERWRITE, CBUF_WRAP_MANY); return c; }
static int zio_init_buffer (zio_t *zio) { assert (zio != NULL); assert (zio->magic == ZIO_MAGIC); assert (zio->buf == NULL); if (!(zio->buf = cbuf_create (64, 1638400))) return (-1); cbuf_opt_set (zio->buf, CBUF_OPT_OVERWRITE, CBUF_NO_DROP); return (0); }