On Sat, 2009-09-26 at 22:25 +0100, Patrick Ohly wrote:
This could be the problem; without storing the next nonce,
authentication will always fail.
The next nonce is indeed not saved. I'm not exactly sure how this is
supposed to work. What I see is this:
TSyError Session_SaveNonce( CContext sContext, cAppCharP nonce )
{
TSyError err= DB_NotFound;
SessionContext* sc= SeC( sContext );
DEBUG_DB ( sc->fCB, MyDB, Se_SN, "%d '%s'", sc,nonce );
if (sc->fDev) { sc->fDev->fToken= nonce;
err= sc->fDevList.SaveDB( true, sc->fCB ); // save it
} // if
return err;
} /* Session_SaveNonce */
It gets called, but sc->fDevList.SaveDB() doesn't do anything because
sc->fDevList.fChanged is false. Is there some kind of UpdateField() or
UpdateFields() call missing which updates the fDev entry in fDevList
before calling SaveDB?
There is such a call in Session_SaveDeviceInfo(), but that function is
never called.
I tried disabling password checking via
<plugin_sessionauth>no</plugin_sessionauth>
<requestedauth>none</requestedauth>
<requiredauth>none</requiredauth>
<autononce>yes</autononce>
but then I still get an authentication error:
* [2009-09-28 15:48:30.315] getAuthNonce: current auth nonce='L>3UZ!!!'
* [2009-09-28 15:48:30.315] Authorization failed (invalid credentials)
sending 401 + chal
* [2009-09-28 15:48:30.315] Challenge for next auth: AuthType=(null),
Nonce='RSTL?"!!', binary allowed
Where do I find the implementation of
<requestedauth>none</requestedauth>?
--
Best Regards, Patrick Ohly
The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.