diff options
author | Luke Leighton <lkcl@samba.org> | 1997-11-09 17:30:10 +0000 |
---|---|---|
committer | Luke Leighton <lkcl@samba.org> | 1997-11-09 17:30:10 +0000 |
commit | e357d9106895b165bfa3f8331b9f186004c9a6cd (patch) | |
tree | 52e18b1e8f0770f89d157c6766745ed201df11a6 /source3/include | |
parent | a81dd62af0321e0c78f81ea79605dade3e563f7a (diff) | |
download | samba-e357d9106895b165bfa3f8331b9f186004c9a6cd.tar.gz samba-e357d9106895b165bfa3f8331b9f186004c9a6cd.tar.bz2 samba-e357d9106895b165bfa3f8331b9f186004c9a6cd.zip |
attempting to mark up 32 bit error codes, needed for NT domains.
separated out smb server-mode password validation into a separate file.
added called and calling netbios names to client gen state: referenced
section in rfc1002.txt.
created workstation trust account checking code in ntclient.c
there might be a bug in reply_session_setup_andX. i indented and added { }
around single-line if statements: the lm password checking code now doesn't
look right (around the GUEST_SESSSETUP bits). *no code semantics have been
changed by the indentation process*.
(This used to be commit f27966957fa7f16d337a4a58719239d036deab4c)
Diffstat (limited to 'source3/include')
-rw-r--r-- | source3/include/proto.h | 41 | ||||
-rw-r--r-- | source3/include/smb.h | 50 |
2 files changed, 73 insertions, 18 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h index 98c671ea86..cffa297413 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -61,13 +61,14 @@ BOOL cli_unlock(struct cli_state *cli, int fnum, uint32 offset, uint32 len, int int cli_read(struct cli_state *cli, int fnum, char *buf, uint32 offset, uint16 size); int cli_write(struct cli_state *cli, int fnum, char *buf, uint32 offset, uint16 size); BOOL cli_negprot(struct cli_state *cli); -BOOL cli_session_request(struct cli_state *cli, char *host, int name_type, - char *myname); +BOOL cli_session_request(struct cli_state *cli, + char *called_host_name , int called_name_type, + char calling_netbios_name[16], int calling_name_type); BOOL cli_connect(struct cli_state *cli, char *host, struct in_addr *ip); BOOL cli_initialise(struct cli_state *cli); void cli_shutdown(struct cli_state *cli); char *cli_errstr(struct cli_state *cli); -void cli_error(struct cli_state *cli, int *eclass, int *num); +BOOL cli_error(struct cli_state *cli, uint8 *eclass, uint32 *num); void cli_sockopt(struct cli_state *cli, char *options); int cli_setpid(struct cli_state *cli, int pid); @@ -627,9 +628,16 @@ void sync_browse_lists(struct subnet_record *d, struct work_record *work, /*The following definitions come from ntclient.c */ -BOOL do_nt_login(char *desthost, char *myhostname, +BOOL wksta_trust_account_check(struct in_addr dest_ip, char *dest_host, + char *myhostname, char *domain); +BOOL do_nt_login(struct in_addr dest_ip, char *dest_host, + char *myhostname, int Client, int cnum); +/*The following definitions come from nterr.c */ + +char *get_nt_error_msg(uint16 nt_code); + /*The following definitions come from params.c */ BOOL pm_process( char *FileName, @@ -654,11 +662,6 @@ BOOL user_ok(char *user,int snum); BOOL authorise_login(int snum,char *user,char *password, int pwlen, BOOL *guest,BOOL *force,uint16 vuid); BOOL check_hosts_equiv(char *user); -struct cli_state *server_client(void); -struct cli_state *server_cryptkey(void); -BOOL server_validate(char *user, char *domain, - char *pass, int passlen, - char *ntpass, int ntpasslen); /*The following definitions come from pcap.c */ @@ -692,6 +695,18 @@ void status_printjob(int cnum,int snum,int jobid,int status); int printjob_encode(int snum, int job); void printjob_decode(int jobid, int *snum, int *job); +/*The following definitions come from pwd_validate.c */ + +BOOL server_connect_init(struct cli_state *clnt, char my_netbios_name[16], + struct in_addr dest_ip, char *desthost); +BOOL server_cryptkey(struct cli_state *clnt, char my_netbios_name[16]); +BOOL server_validate2(struct cli_state *clnt, char *user, char *domain, + char *pass, int passlen, + char *ntpass, int ntpasslen); +BOOL server_validate(struct cli_state *clnt, char *user, char *domain, + char *pass, int passlen, + char *ntpass, int ntpasslen); + /*The following definitions come from quotas.c */ BOOL disk_quotas(char *path, int *bsize, int *dfree, int *dsize); @@ -1029,6 +1044,7 @@ char* wks_io_r_unknown_0(BOOL io, WKS_R_UNKNOWN_0 *r_u, char *q, char *base, int /*The following definitions come from server.c */ +struct cli_state *pwd_server_connection(void); void *dflt_sig(void); void killkids(void); mode_t unix_mode(int cnum,int dosmode); @@ -1096,10 +1112,11 @@ void cred_hash2(unsigned char *out,unsigned char *in,unsigned char *key); /*The following definitions come from smbencrypt.c */ -void SMBencrypt(uchar *passwd, uchar *c8, uchar *p24); +void SMBencrypt(uchar *passwd, uchar *c8, uchar p24[24]); void E_md4hash(uchar *passwd, uchar *p16); -void SMBNTencrypt(uchar *passwd, uchar *c8, uchar *p24); -void nt_lm_owf_gen(char *pwd, char *nt_p16, char *p16); +void SMBOWFencrypt(char passwd[16], uchar *c8, uchar p24[24]); +void SMBNTencrypt(uchar *passwd, uchar *c8, uchar p24[24]); +void nt_lm_owf_gen(char *pwd, char nt_p16[16], char p16[16]); /*The following definitions come from smberr.c */ diff --git a/source3/include/smb.h b/source3/include/smb.h index afa9e3d9b9..687f14b9ca 100644 --- a/source3/include/smb.h +++ b/source3/include/smb.h @@ -1363,9 +1363,13 @@ struct cli_state { int protocol; int sec_mode; int error; - int privilages; + int privileges; fstring eff_name; - fstring desthost; + + fstring full_dest_host_name; + char called_netbios_name[16]; + char calling_netbios_name[16]; + char cryptkey[8]; uint32 sesskey; int serverzone; @@ -2020,6 +2024,15 @@ char *Strstr(char *s, char *p); #define BROWSER_CONSTANT 0xaa55 +/* NT Flags2 bits - cifs6.txt section 3.1.2 */ + +#define FLAGS2_LONG_PATH_COMPONENTS 0x0001 +#define FLAGS2_EXTENDED_ATTRIBUTES 0x0002 +#define FLAGS2_DFS_PATHNAMES 0x1000 +#define FLAGS2_READ_PERMIT_NO_EXECUTE 0x2000 +#define FLAGS2_32_BIT_ERROR_CODES 0x4000 +#define FLAGS2_UNICODE_STRINGS 0x8000 + /* Capabilities. see ftp.microsoft.com/developr/drg/cifs/cifs/cifs4.txt */ #define CAP_RAW_MODE 0x0001 @@ -2037,14 +2050,39 @@ char *Strstr(char *s, char *p); /* protocol types. It assumes that higher protocols include lower protocols as subsets */ -enum protocol_types {PROTOCOL_NONE,PROTOCOL_CORE,PROTOCOL_COREPLUS,PROTOCOL_LANMAN1,PROTOCOL_LANMAN2,PROTOCOL_NT1}; +enum protocol_types +{ + PROTOCOL_NONE, + PROTOCOL_CORE, + PROTOCOL_COREPLUS, + PROTOCOL_LANMAN1, + PROTOCOL_LANMAN2, + PROTOCOL_NT1 +}; /* security levels */ -enum security_types {SEC_SHARE,SEC_USER,SEC_SERVER}; +enum security_types +{ + SEC_SHARE, + SEC_USER, + SEC_SERVER +}; + +/* bit-masks for security mode. see cifs6.txt Negprot 4.1.1 server response */ +#define USE_USER_LEVEL_SECURITY 1 +#define USE_CHALLENGE_RESPONSE 2 /* printing types */ -enum printing_types {PRINT_BSD,PRINT_SYSV,PRINT_AIX,PRINT_HPUX, - PRINT_QNX,PRINT_PLP,PRINT_LPRNG}; +enum printing_types +{ + PRINT_BSD, + PRINT_SYSV, + PRINT_AIX, + PRINT_HPUX, + PRINT_QNX, + PRINT_PLP, + PRINT_LPRNG +}; /* Remote architectures we know about. */ enum remote_arch_types {RA_UNKNOWN, RA_WFWG, RA_OS2, RA_WIN95, RA_WINNT, RA_SAMBA}; |