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);
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,
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)
{
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;
}
}
;;
*)
#
-# Non man-page YODL docs - just make html.
+# Non man-page YODL docs - just make html and text.
#
echo $d
rm -f $bn.html
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
/***************************************************************************
is this root?
***************************************************************************/
-BOOL is_root()
+BOOL is_root(void)
{
if ((C_user) && (strcmp(C_user,"root") == 0)) {
return( True);
/***************************************************************************
return a ptr to the users name
***************************************************************************/
-char * get_user_name()
+char *get_user_name(void)
{
return(C_user);
}
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 */
/*
* Wait for smbpasswd to finish
*/
- if ((wpid = sys_waitpid(pid, &wstat, 0)) < 0) {
+ if (sys_waitpid(pid, &wstat, 0) < 0) {
printf("<p> problem waiting");
}
****************************************************************************/
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");
* 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();
}