Re: [PATCH] SMB user/password caching across shares



Alexander Larsson wrote:
I commited this to get it into todays release (we're even more frozen
after that).

I committed a fix to the initial_authenication code today. My revised patch didn't use the open connection cache unless there was a user name specified in the URI, obviously not a good situation.

> However, i still think the same issue i listed above
exists:

1. access smb://server/share1
   enter username user1, password1
2. access smb://server/share2
   last user/password fails, we ask for a new, log in and save
   this as the default user/password for this share
3. the same process that did 1 does more i/o to it, needing to
   start a new connection. Since it doesn't specify a user the lookup
   in initial_authentication fails, and we fall back to using the
   default user, which is not the same as for the other active
   connection to server/share1.

I'm not sure I understand. Perhaps my commit today addresses your concerns. But in any case here's a rough outline of what occurs at the various steps above (leaving aside gnome-keyring for a moment):

1. access smb://server/share1
    - No cached credentials found for 'server/share1' or 'server/'
    - User prompted
    - Successful Access
    - Credentials are cached for 'server/share1' and 'server/'
    - Open connection cached for 'server/share1/user1'

2. access smb://server/share2
    - No cached credentials found for 'server/share2'
    - Cached credentials for 'server/' found: 'user1'.
    - No open connection found for 'server/share2/user1'.
    - Login fails for 'user1'
    - Prompt user for new login: user2.
    - Successful Access with 'user2'
    - Credentials are cached for 'server/share2' and 'server/'
    - Open connection cached for 'server/share2/user2'

3a. second access smb://server/share1 (using open connection cache)
    - Cached credentials found for 'server/share1': 'user1'
    - Cached open connection found for 'server/share1/user1'
    - Successful use of cached connection.
    - Credentials are cached for 'server/share1' and 'server/'
    - Open connection cached for 'server/share1/user1'

3b. third access smb://server/share1 (somehow not using
    connection cache)
    - Cached credentials found for 'server/share1': 'user1'
    - Cached open connection not found for 'server/share1/user1'
    - Successful Access with 'user1'
    - Credentials are cached for 'server/share1' and 'server/'
    - Open connection cached for 'server/share1/user1'

Cheers,
Nate




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]