libsmb/cliconnect.c rpc_client/cli_login.c smbd/reply.c: codepage fixes from Tim.
Jeremy.
esac
else
echo "$ac_t""no" 1>&6
+ cat >> confdefs.h <<\EOF
+#define HAVE_NO_ACLS 1
+EOF
+
fi
:
else
cat > conftest.$ac_ext <<EOF
-#line 11586 "configure"
+#line 11590 "configure"
#include "confdefs.h"
#include "${srcdir-.}/tests/summary.c"
EOF
-if { (eval echo configure:11590: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:11594: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
echo "configure OK";
else
;;
esac ],
AC_MSG_RESULT(no)
+ AC_DEFINE(HAVE_NO_ACLS)
)
echo "checking configure summary"
char *lm_chal_resp, char *nt_chal_resp,
NET_ID_INFO_CTR *ctr, NET_USER_INFO_3 *user_info3)
{
+ fstring dos_wksta_name, dos_username, dos_domain;
DEBUG(5,("cli_nt_login_network: %d\n", __LINE__));
/* indicate a "network" login */
ctr->switch_value = NET_LOGON_TYPE;
+ fstrcpy(dos_wksta_name, cli->clnt_name_slash);
+ unix_to_dos(dos_wksta_name, True);
+
+ fstrcpy(dos_username, username);
+ unix_to_dos(dos_username, True);
+
+ fstrcpy(dos_domain, domain);
+ unix_to_dos(dos_domain, True);
+
/* Create the structure needed for SAM logon. */
- init_id_info2(&ctr->auth.id2, domain, 0, smb_userid_low, 0,
- username, dos_to_unix(cli->clnt_name_slash, False),
+ init_id_info2(&ctr->auth.id2, dos_domain, 0, smb_userid_low, 0,
+ dos_username, dos_wksta_name,
(uchar *)lm_chal, (uchar *)lm_chal_resp,
(uchar *)nt_chal_resp);
result |= lp_force_create_mode(SNUM(conn));
}
}
+
+ DEBUG(3,("unix_mode(%s) returning 0%o\n",fname,(int)result ));
return(result);
}
canon_ace **ppfile_ace, canon_ace **ppdir_ace,
uint32 security_info_sent, SEC_DESC *psd)
{
+#if !defined(HAVE_NO_ACLS)
extern DOM_SID global_sid_World;
- SEC_ACL *dacl = psd->dacl;
BOOL all_aces_are_inherit_only = (fsp->is_directory ? True : False);
canon_ace *file_ace = NULL;
canon_ace *dir_ace = NULL;
canon_ace *current_ace = NULL;
enum SID_NAME_USE sid_type;
int i;
+#endif /* HAVE_NO_ACLS */
+ SEC_ACL *dacl = psd->dacl;
*ppfile_ace = NULL;
*ppdir_ace = NULL;
if(!(security_info_sent & DACL_SECURITY_INFORMATION) || !dacl)
return True;
+#if defined(HAVE_NO_ACLS)
+
+ /* No point in doing this if we have no ACL support. */
+ return False;
+
+#else /* HAVE_NO_ACLS */
+
/*
* Now go through the DACL and create the canon_ace lists.
*/
*ppfile_ace = file_ace;
*ppdir_ace = dir_ace;
return True;
+
+#endif /* HAVE_NO_ACLS */
}
/****************************************************************************
* ACLs on directories.
*/
- psa->flags &= ~(SEC_ACE_FLAG_OBJECT_INHERIT|SEC_ACE_FLAG_CONTAINER_INHERIT);
+ psa->flags &= ~(SEC_ACE_FLAG_OBJECT_INHERIT|SEC_ACE_FLAG_CONTAINER_INHERIT|SEC_ACE_FLAG_INHERITED_ACE);
if(psa->flags != 0) {
DEBUG(1,("unpack_posix_permissions: unable to set ACE flags (%x).\n",
* If we cannot set using POSIX ACLs we fall back to checking if we need to chmod.
*/
- if(!acl_set_support && (sbuf.st_mode != perms)) {
+ if(!acl_set_support && posix_perms && (sbuf.st_mode != perms)) {
free_canon_ace_list(file_ace_list);
free_canon_ace_list(dir_ace_list);
fstrcpy(user,p);
p = skip_string(p,1);
/*
- * Incoming user is in DOS codepage format. Convert
+ * Incoming user and domain are in DOS codepage format. Convert
* to UNIX.
*/
dos_to_unix(user,True);
domain = p;
-
+ dos_to_unix(domain, True);
DEBUG(3,("Domain=[%s] NativeOS=[%s] NativeLanMan=[%s]\n",
domain,skip_string(p,1),skip_string(p,2)));
}
-
DEBUG(3,("sesssetupX:name=[%s]\n",user));
/* If name ends in $ then I think it's asking about whether a */