Hallvard B Furuseth wrote:
Howard Chu writes:
But the caller doesn't know that.  What it knows is that
ber_get_next() returned LBER_DEFAULT.
And that's all that matters.

As long as the try-again error code isn't spurious, which is what I
don't know when/how can happen.  Though hopefully the caller will get
another error when it tries again.

It does mean the caller can log the wrong error code though.  In
particular after a non-error return.

What are you talking about, re: spurious error codes? System calls only set errno when they fail. System calls return -1 when they fail. sb_rdahead_read() doesn't set errno either... That's why we have to zero errno out before doing the read, to make sure a stale error code from some previous op isn't hanging around - because read() *won't* touch it when it returns success.

If the caller doesn't see one of the
try-again error codes, then the connection is dropped.

--
  -- Howard Chu
  CTO, Symas Corp.           http://www.symas.com
  Director, Highland Sun     http://highlandsun.com/hyc/
  Chief Architect, OpenLDAP  http://www.openldap.org/project/

Reply via email to