diff options
-rw-r--r-- | source3/include/proto.h | 2 | ||||
-rw-r--r-- | source3/rpc_server/srv_netlog.c | 13 | ||||
-rwxr-xr-x | source3/script/makeyodldocs.sh | 10 | ||||
-rw-r--r-- | source3/web/cgi.c | 4 | ||||
-rw-r--r-- | source3/web/swat.c | 8 |
5 files changed, 23 insertions, 14 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h index cce55a47cd..6bb801b633 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -2629,6 +2629,8 @@ int smbw_stat(const char *fname, struct stat *st); void cgi_load_variables(FILE *f1); char *cgi_variable(char *name); +BOOL is_root(void); +char *get_user_name(void); void cgi_setup(char *rootdir, int auth_required); char *cgi_baseurl(void); char *cgi_pathinfo(void); diff --git a/source3/rpc_server/srv_netlog.c b/source3/rpc_server/srv_netlog.c index de3eaf9bd9..f93d09b3ba 100644 --- a/source3/rpc_server/srv_netlog.c +++ b/source3/rpc_server/srv_netlog.c @@ -544,8 +544,7 @@ static uint32 net_login_interactive(NET_ID_INFO_1 *id1, net_login_network: *************************************************************************/ static uint32 net_login_network(NET_ID_INFO_2 *id2, - struct smb_passwd *smb_pass, - user_struct *vuser) + struct smb_passwd *smb_pass) { DEBUG(5,("net_login_network: lm_len: %d nt_len: %d\n", id2->hdr_lm_chal_resp.str_str_len, @@ -674,15 +673,17 @@ static void api_net_sam_logon( uint16 vuid, smb_pass = getsmbpwnam(samlogon_user); unbecome_root(True); - if (smb_pass == NULL) + if (smb_pass->acct_ctrl & ACB_PWNOTREQ) + status = 0; + else if (smb_pass == NULL) status = 0xC0000000 | NT_STATUS_NO_SUCH_USER; else if (smb_pass->acct_ctrl & ACB_DISABLED) status = 0xC0000000 | NT_STATUS_ACCOUNT_DISABLED; } - /* validate password. */ + /* Validate password - if required. */ - if (status == 0) + if ((status == 0) && !(smb_pass->acct_ctrl & ACB_PWNOTREQ)) { switch (q_l.sam_id.logon_level) { @@ -695,7 +696,7 @@ static void api_net_sam_logon( uint16 vuid, case NET_LOGON_TYPE: { /* network login. lm challenge and 24 byte responses */ - status = net_login_network(&q_l.sam_id.ctr->auth.id2, smb_pass, vuser); + status = net_login_network(&q_l.sam_id.ctr->auth.id2, smb_pass); break; } } diff --git a/source3/script/makeyodldocs.sh b/source3/script/makeyodldocs.sh index 16a905c6e1..c943224fe5 100755 --- a/source3/script/makeyodldocs.sh +++ b/source3/script/makeyodldocs.sh @@ -67,7 +67,7 @@ do ;; *) # -# Non man-page YODL docs - just make html. +# Non man-page YODL docs - just make html and text. # echo $d rm -f $bn.html @@ -78,6 +78,14 @@ do fi cp $bn.html ../htmldocs || echo "Cannot create $YODLDIR/../htmldocs/$bn.html" rm -f $bn.html + rm -f $bn.txt + yodl2txt $d + if [ ! -f $bn.txt ]; then + echo "Failed to make text page for $d" + exit 1 + fi + cp $bn.txt ../textdocs || echo "Cannot create $YODLDIR/../textdocs/$bn.txt" + rm -f $bn.txt ;; esac done diff --git a/source3/web/cgi.c b/source3/web/cgi.c index a11abe074e..86366d1083 100644 --- a/source3/web/cgi.c +++ b/source3/web/cgi.c @@ -321,7 +321,7 @@ static int cgi_handle_authorization(char *line) /*************************************************************************** is this root? ***************************************************************************/ -BOOL is_root() +BOOL is_root(void) { if ((C_user) && (strcmp(C_user,"root") == 0)) { return( True); @@ -333,7 +333,7 @@ BOOL is_root() /*************************************************************************** return a ptr to the users name ***************************************************************************/ -char * get_user_name() +char *get_user_name(void) { return(C_user); } diff --git a/source3/web/swat.c b/source3/web/swat.c index 81dca8fc04..da032e077d 100644 --- a/source3/web/swat.c +++ b/source3/web/swat.c @@ -621,7 +621,6 @@ static BOOL talk_to_smbpasswd(char *old, char *new) int to_child = fd1[1]; int from_child = fd2[0]; int wstat; - pid_t wpid; close(fd1[0]); /* parent doesn't need input side of pipe fd1 */ close(fd2[1]); /* parent doesn't need output side of pipe fd2 */ @@ -661,7 +660,7 @@ static BOOL talk_to_smbpasswd(char *old, char *new) /* * Wait for smbpasswd to finish */ - if ((wpid = sys_waitpid(pid, &wstat, 0)) < 0) { + if (sys_waitpid(pid, &wstat, 0) < 0) { printf("<p> problem waiting"); } @@ -919,9 +918,8 @@ static void chg_passwd(void) ****************************************************************************/ static void passwd_page(void) { - char *s, *new_name; + char *new_name; int i; - extern char * get_user_name(); printf("<H2>Password Manager</H2>\n"); @@ -962,7 +960,7 @@ static void passwd_page(void) * If we don't have user information then there's nothing to do. It's probably * the first time through this code. */ - if (s = cgi_variable(user)) { + if (cgi_variable(user)) { chg_passwd(); } |