from samba import ntacls
from samba.auth import system_session
+from samba.auth_util import system_session_unix
from samba.dcerpc import security
from samba.tests import env_loadparm
from samba.tests.smbd_base import SmbdBaseTests
# As well as checking that unlink works, this removes the
# fake xattrs from the dev/inode based DB
- smbd.unlink(filepath, self.service)
+ smbd.unlink(filepath, system_session_unix(), self.service)
self.assertFalse(os.path.isfile(filepath))
def test_compare_getntacl(self):
self.samdb = SamDB(lp=self.lp, session_info=auth.system_session())
def tearDown(self):
- smbd.unlink(self.tempf)
+ smbd.unlink(self.tempf, self.get_session_info())
os.unlink(os.path.join(self.tempdir, "xattr.tdb"))
super(PosixAclMappingTests, self).tearDown()
{
const char * const kwnames[] = {
"fname",
+ "session_info",
"service",
NULL
};
connection_struct *conn;
int ret;
struct smb_filename *smb_fname = NULL;
+ PyObject *py_session = Py_None;
+ struct auth_session_info *session_info = NULL;
char *fname, *service = NULL;
TALLOC_CTX *frame;
frame = talloc_stackframe();
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|z",
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "sO|z",
discard_const_p(char *, kwnames),
&fname,
+ &py_session ,
&service)) {
TALLOC_FREE(frame);
return NULL;
}
- conn = get_conn_tos(service, NULL);
+ if (!py_check_dcerpc_type(py_session,
+ "samba.dcerpc.auth",
+ "session_info")) {
+ TALLOC_FREE(frame);
+ return NULL;
+ }
+ session_info = pytalloc_get_type(py_session,
+ struct auth_session_info);
+ if (session_info == NULL) {
+ PyErr_Format(PyExc_TypeError,
+ "Expected auth_session_info for session_info argument got %s",
+ pytalloc_get_name(py_session));
+ TALLOC_FREE(frame);
+ return NULL;
+ }
+
+ conn = get_conn_tos(service, session_info);
if (!conn) {
TALLOC_FREE(frame);
return NULL;