Пример #1
0
/* This function is blocking and it writes from the socket exactly 'count'
 * number of bytes
 */
int ipc_write(int fd, void *buf, size_t count)
{
    int rc;
 
    if ((rc = bio_write(fd, buf, count)))
	rg_error_f(LERR, "%d: failed write() %m", fd);
    return rc;
}
Пример #2
0
void rg_error_register(int sequence, rg_error_level_t level,
    rg_error_func_t func, void *data)
{
    rg_error_notify_t **n, *next;
    check_inited();
    for (n = &rg_error_notify; *n && (*n)->sequence<=sequence; n = &(*n)->next);
    next = *n;
    if (!(*n = (rg_error_notify_t *)malloc(sizeof(**n))))
    {
	rg_error_f(LEXIT, "failed malloc");
	return;
    }
    memset(*n, 0, sizeof(**n));
    (*n)->func = func;
    (*n)->data = data;
    (*n)->level = level;
    (*n)->sequence = sequence;
    (*n)->next = next;
}