[SCM] Samba Shared Repository - branch master updated
Richard Sharpe
sharpe at samba.org
Sun Apr 1 17:44:04 MDT 2012
The branch, master has been updated
via 2c322ca Fix some of the issues that Jelmer identified in my first patch. This might be changed again, especially when I figure out how to return the file as an object.
from 36101d3 Add an open and close method to samba.smb.SMB so we can open and close files. Also, fix up some documentation.
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 2c322ca95a7dc4fb8396b475d115f31837316267
Author: Richard Sharpe <realrichardsharpe at gmail.com>
Date: Sun Apr 1 13:14:49 2012 -0700
Fix some of the issues that Jelmer identified in my first patch. This might be
changed again, especially when I figure out how to return the file as an
object.
Autobuild-User: Richard Sharpe <sharpe at samba.org>
Autobuild-Date: Mon Apr 2 01:43:44 CEST 2012 on sn-devel-104
-----------------------------------------------------------------------
Summary of changes:
source4/libcli/pysmb.c | 28 ++++++++++++----------------
1 files changed, 12 insertions(+), 16 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source4/libcli/pysmb.c b/source4/libcli/pysmb.c
index a0021b9..3f2efe9 100644
--- a/source4/libcli/pysmb.c
+++ b/source4/libcli/pysmb.c
@@ -437,13 +437,15 @@ static PyObject *py_open_file(pytalloc_Object *self, PyObject *args, PyObject *k
union smb_open io;
struct smb_private_data *spdata;
const char *filename;
- uint32_t access_mask = 0;
- uint32_t share_access = 0;
- uint32_t open_disposition = 0;
+ uint32_t access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
+ uint32_t share_access = NTCREATEX_SHARE_ACCESS_READ |
+ NTCREATEX_SHARE_ACCESS_WRITE;
+ uint32_t open_disposition = NTCREATEX_DISP_OPEN;
uint32_t create_options = 0;
+ TALLOC_CTX *mem_ctx;
int fnum;
- if (!PyArg_ParseTuple(args, "si|iii:open_file",
+ if (!PyArg_ParseTuple(args, "s|iiii:open_file",
&filename,
&access_mask,
&share_access,
@@ -452,20 +454,12 @@ static PyObject *py_open_file(pytalloc_Object *self, PyObject *args, PyObject *k
return NULL;
}
- if (!access_mask)
- access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
-
- if (!share_access)
- share_access = NTCREATEX_SHARE_ACCESS_READ |
- NTCREATEX_SHARE_ACCESS_WRITE;
-
- if (!open_disposition)
- open_disposition = NTCREATEX_DISP_OPEN;
-
ZERO_STRUCT(io);
spdata = self->ptr;
+ mem_ctx = talloc_new(NULL);
+
io.generic.level = RAW_OPEN_NTCREATEX;
io.ntcreatex.in.root_fid.fnum = 0;
io.ntcreatex.in.flags = 0;
@@ -479,7 +473,9 @@ static PyObject *py_open_file(pytalloc_Object *self, PyObject *args, PyObject *k
io.ntcreatex.in.security_flags = 0;
io.ntcreatex.in.fname = filename;
- status = smb_raw_open(spdata->tree, self->talloc_ctx, &io);
+ status = smb_raw_open(spdata->tree, mem_ctx, &io);
+ talloc_free(mem_ctx);
+
PyErr_NTSTATUS_IS_ERR_RAISE(status);
fnum = io.ntcreatex.out.file.fnum;
@@ -541,7 +537,7 @@ static PyMethodDef py_smb_methods[] = {
Set security descriptor for file." },
{ "open_file", (PyCFunction)py_open_file, METH_VARARGS,
"open_file(path, access_mask[, share_access[, open_disposition[, create_options]]] -> fnum\n\n \
- Open a file. Throws exceptions on errors." },
+ Open a file. Throws NTSTATUS exceptions on errors." },
{ "close_file", (PyCFunction)py_close_file, METH_VARARGS,
"close_file(fnum) -> None\n\n \
Close the file based on fnum."},
--
Samba Shared Repository
More information about the samba-cvs
mailing list