From e1e4b37ac785da3829f4326722c34a473a17ade5 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Tue, 2 Sep 1997 22:21:38 +0000 Subject: reply.c: Removed unused variables. Caught by gcc -Wall -Werror server.c: Fix for old DOS clients not understanding ERRbaddirectory - map to ERRbadpath. util.c: Fix for systems with no LOG_DAEMON facility. Jeremy (jallison@whistle.com) (This used to be commit dadb1ffb4ca5222c0b62d785cd714d65cae328e8) --- source3/smbd/reply.c | 5 +---- source3/smbd/server.c | 31 ++++++++++++++++++++++++++++--- 2 files changed, 29 insertions(+), 7 deletions(-) (limited to 'source3/smbd') diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c index 8e304a77df..58b509ecec 100644 --- a/source3/smbd/reply.c +++ b/source3/smbd/reply.c @@ -269,11 +269,8 @@ int reply_tcon_and_X(char *inbuf,char *outbuf,int length,int bufsize) else { char *fsname = "NTFS"; - int devlen = strlen(devicename)+1; - int fslen = strlen(fsname)+1; - int len = devlen + fslen + 1; - char *p; + set_message(outbuf,3,3,True); p = smb_buf(outbuf); diff --git a/source3/smbd/server.c b/source3/smbd/server.c index 93724a9861..50f3214919 100644 --- a/source3/smbd/server.c +++ b/source3/smbd/server.c @@ -1978,6 +1978,18 @@ struct {0,0,0} }; +/* Mapping for old clients. */ + +struct +{ + int new_smb_error; + int old_smb_error; + int protocol_level; +} old_client_errmap[] = +{ + {ERRbaddirectory, ERRbadpath, (int)PROTOCOL_NT1}, + {0,0,0} +}; /**************************************************************************** create an error packet from errno @@ -1998,17 +2010,30 @@ int unix_error_packet(char *inbuf,char *outbuf,int def_class,uint32 def_code,int else { while (unix_smb_errmap[i].smbclass != 0) - { - if (unix_smb_errmap[i].unixerror == errno) + { + if (unix_smb_errmap[i].unixerror == errno) { eclass = unix_smb_errmap[i].smbclass; ecode = unix_smb_errmap[i].smbcode; break; } i++; - } + } } + /* Make sure we don't return error codes that old + clients don't understand. */ + + for(i = 0; old_client_errmap[i].new_smb_error != 0; i++) + { + if((Protocol < old_client_errmap[i].protocol_level) && + (old_client_errmap[i].new_smb_error == ecode)) + { + ecode = old_client_errmap[i].old_smb_error; + break; + } + } + return(error_packet(inbuf,outbuf,eclass,ecode,line)); } -- cgit