Added a default for auth.fail, and now call it instead of accept() on failures, so the user's application has some idea of what might have failed. Also, added additional error strings, instead of 'null' for several errors.