summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/include/proto.h2
-rw-r--r--source3/rpc_server/srv_netlog.c13
-rwxr-xr-xsource3/script/makeyodldocs.sh10
-rw-r--r--source3/web/cgi.c4
-rw-r--r--source3/web/swat.c8
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();
}