Esempio n. 1
0
int iobuffer_fill (iobuffer_ref b)
{
  if (b->isk)
  {
    register int r = iobufferk_fill(&b->x.k) ;
    if (r >= 0 || errno != ENOSYS || !iobuffer_salvage(b)) return r ;
  }
  return iobufferu_fill(&b->x.u) ;
}
int iobuffer_fill (iobuffer_ref b)
{
  if (b->isk)
  {
    register int r = iobufferk_fill(&b->x.k) ;
    if ((r < 0) && (errno == ENOSYS) && iobuffer_salvage(b)) goto user ;
    return r ;
  }
 user:
  return iobufferu_fill(&b->x.u) ;
}
Esempio n. 3
0
int iobuffer_ufromk (iobufferu *u, iobufferk *k)
{
  int in = u->b[0].fd ;
  u->b[0].fd = k->p[0] ;
  while (k->n)
  {
    register int r = iobufferu_fill(u) ;
    if (r <= 0) goto err ;
    k->n -= r ;
  }
  u->b[0].fd = in ;
  return 1 ;

 err:
  u->b[0].fd = in ;
  return 0 ;
}