diff options
Diffstat (limited to 'source3')
-rw-r--r-- | source3/libsmb/clientgen.c | 4 | ||||
-rw-r--r-- | source3/param/loadparm.c | 33 | ||||
-rw-r--r-- | source3/smbd/oplock.c | 6 | ||||
-rw-r--r-- | source3/smbd/server.c | 4 |
4 files changed, 35 insertions, 12 deletions
diff --git a/source3/libsmb/clientgen.c b/source3/libsmb/clientgen.c index d77c58e00a..0892714b39 100644 --- a/source3/libsmb/clientgen.c +++ b/source3/libsmb/clientgen.c @@ -1888,8 +1888,8 @@ BOOL cli_establish_connection(struct cli_state *cli, else { /* attempt encrypted session */ - char nt_sess_pwd[24]; - char lm_sess_pwd[24]; + unsigned char nt_sess_pwd[24]; + unsigned char lm_sess_pwd[24]; /* creates (storing a copy of) and then obtains a 24 byte password OWF */ pwd_make_lm_nt_owf(&(cli->pwd), cli->cryptkey); diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c index 05ed6484ac..5cba2c95d5 100644 --- a/source3/param/loadparm.c +++ b/source3/param/loadparm.c @@ -915,10 +915,10 @@ static void init_globals(void) Globals.bDNSproxy = True; /* - * smbd will check after starting to see if this value - * should be set to "true" or not. + * smbd will check at runtime to see if this value + * will really be used or not. */ - lp_set_kernel_oplocks(False); + Globals.bKernelOplocks = True; /* * This must be done last as it checks the value in @@ -1163,7 +1163,6 @@ FN_GLOBAL_BOOL(lp_passwd_chat_debug,&Globals.bPasswdChatDebug) FN_GLOBAL_BOOL(lp_ole_locking_compat,&Globals.bOleLockingCompat) FN_GLOBAL_BOOL(lp_nt_smb_support,&Globals.bNTSmbSupport) FN_GLOBAL_BOOL(lp_stat_cache,&Globals.bStatCache) -FN_GLOBAL_BOOL(lp_kernel_oplocks,&Globals.bKernelOplocks) FN_GLOBAL_INTEGER(lp_os_level,&Globals.os_level) FN_GLOBAL_INTEGER(lp_max_ttl,&Globals.max_ttl) @@ -2668,10 +2667,32 @@ void lp_set_name_resolve_order(char *new_order) } /*********************************************************** - Set the real value of kernel oplocks (called by smbd). + Set the flag that says if kernel oplocks are available + (called by smbd). ************************************************************/ +static BOOL kernel_oplocks_available = False; + void lp_set_kernel_oplocks(BOOL val) { - Globals.bKernelOplocks = val; + /* + * Only set this to True if kerenl + * oplocks are really available and were + * turned on in the smb.conf file. + */ + + if(Globals.bKernelOplocks && val) + kernel_oplocks_available = True; + else + kernel_oplocks_available = False; +} + +/*********************************************************** + Return True if kernel oplocks are available and were turned + on in smb.conf. +************************************************************/ + +BOOL lp_kernel_oplocks(void) +{ + return kernel_oplocks_available; } diff --git a/source3/smbd/oplock.c b/source3/smbd/oplock.c index d5c06312f5..c5a19df0e9 100644 --- a/source3/smbd/oplock.c +++ b/source3/smbd/oplock.c @@ -1077,9 +1077,11 @@ Disabling kernel oplock support.\n", strerror(errno) )); oplock_pipe_write = pfd[1]; close(fd); - DEBUG(3,("check_kernel_oplocks: Kernel oplocks enabled.\n")); - lp_set_kernel_oplocks(True); + + DEBUG(3,("check_kernel_oplocks: Kernel oplocks available and set to %s.\n", + lp_kernel_oplocks() ? "True" : "False" )); + } #endif /* HAVE_KERNEL_OPLOCKS */ } diff --git a/source3/smbd/server.c b/source3/smbd/server.c index fb97cf8380..62f2bcea9f 100644 --- a/source3/smbd/server.c +++ b/source3/smbd/server.c @@ -626,11 +626,11 @@ static void usage(char *pname) exit(1); } - init_structs(); - if (!reload_services(False)) return(-1); + init_structs(); + #ifdef WITH_SSL { extern BOOL sslEnabled; |