[PATCH 0/5 v4] Split CIFS_SessSetup()

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

 



I am investigating the possibility of adding support for gss-proxy in the
cifs client module. As part of that investigation, I was looking at the
CIFS_SessSetup() function. This is a long function which handles multiple auths
using if conditions and switch statements. The code struction makes it
difficult to modify or add support for new authentication mechanisms.

The proposal is to split the various authentication code into its own separate
functions. This increases the lines of code but will simplify maintenance and
addition of new auth methods.

The short term goal is to add gss-proxy support for kerberos authentication.
This will require to and fro communication with the gss-proxy module over a
unix socket.

Further long term goals are 
1) Add support for NTLMSSP using SPNEGO,
2) Allow clients to negotiate which authentication mechanism to use using SPNEGO.

V2:
- Ensure that sess_data allocated on intermediate patches are freed.
- Remove ifdef-endif blocks from the switch statement in CIFS_SessSetup().

V3:
- Fix whitespace errors in some patches.
- Change sess_establish_session to return errors. Call this function only in
  case of successful establish session calls to the server.
- Delete an incorrect comment in case of rawntlmssp authentication.
- Delete an if statement before kfree(ntlmssp) in rawntlmssp authentication.

v4:
- reordered elements of struct sess_data as asked by jlayton
- Use free_rsp_buf() to clean buffer.
- Clean up the rawntlmssp case further and break the calls into separate
  functions.

Sachin Prabhu (5):
  cifs: replace code with free_rsp_buf()
  cifs: Split lanman auth from CIFS_SessSetup()
  cifs: Split ntlm and ntlmv2 authentication methods off
    CIFS_SessSetup()
  cifs: Split Kerberos authentication off CIFS_SessSetup()
  cifs: Separate rawntlmssp auth from CIFS_SessSetup()

 fs/cifs/cifsproto.h |    1 +
 fs/cifs/cifssmb.c   |   20 +-
 fs/cifs/misc.c      |    9 +
 fs/cifs/sess.c      | 1192 ++++++++++++++++++++++++++++++++++++---------------
 fs/cifs/smb2pdu.c   |   10 -
 5 files changed, 854 insertions(+), 378 deletions(-)

-- 
1.9.3

--
To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux