S_DONE
done = S_DONE|C_DONE;
if (do_server && !(done & S_DONE)) {
done |= S_DONE;
if ((done & S_DONE) && (done & C_DONE))