1
0
mirror of https://github.com/samba-team/samba.git synced 2025-11-20 08:23:50 +03:00

r4777: added a smb_composite_sesssetup() async composite function. This

encapsulates all the different session setup methods, including the
multi-pass spnego code.

I have hooked this into all the places that previously used the
RAW_SESSSETUP_GENERIC method, and have removed the old
RAW_SESSSETUP_GENERIC code from clisession.c and clitree.c. A nice
side effect is that these two modules are now very simple again, back
to being "raw" session setup handling, which was what was originally
intended.

I have also used this to replace the session setup code in the
smb_composite_connect() code, and used that to build a very simple
replacement for smbcli_tree_full_connection().

As a result, smbclient, smbtorture and all our other SMB connection
code now goes via these composite async functions. That should give
them a good workout!
This commit is contained in:
Andrew Tridgell
2005-01-16 11:15:08 +00:00
committed by Gerald (Jerry) Carter
parent 70860779ae
commit 080d0518bc
15 changed files with 516 additions and 644 deletions

View File

@@ -201,31 +201,10 @@ union smb_tcon {
};
enum smb_sesssetup_level {RAW_SESSSETUP_GENERIC, RAW_SESSSETUP_OLD, RAW_SESSSETUP_NT1, RAW_SESSSETUP_SPNEGO};
enum smb_sesssetup_level {RAW_SESSSETUP_OLD, RAW_SESSSETUP_NT1, RAW_SESSSETUP_SPNEGO};
/* union used in session_setup call */
union smb_sesssetup {
/* generic interface - used for auto selecting based on negotiated
protocol options */
struct {
enum smb_sesssetup_level level;
struct {
uint32_t sesskey;
uint32_t capabilities;
const char *password;
const char *user;
const char *domain;
} in;
struct {
uint16_t vuid;
char *os;
char *lanman;
char *domain;
} out;
} generic;
/* the pre-NT1 interface */
struct {
enum smb_sesssetup_level level;