svn commit: samba r15638 - in branches/SAMBA_4_0/source/libcli/raw:
.
metze at samba.org
metze at samba.org
Tue May 16 16:28:39 GMT 2006
Author: metze
Date: 2006-05-16 16:28:36 +0000 (Tue, 16 May 2006)
New Revision: 15638
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15638
Log:
add a usefull macro to get a pointer the smb_handle union
of smb_open, as it's not nicely alligned for all levels,
If someone has an idea for a better solution where we can access
it via op->generic.out.file.* please let me know:-)
metze
Modified:
branches/SAMBA_4_0/source/libcli/raw/interfaces.h
Changeset:
Modified: branches/SAMBA_4_0/source/libcli/raw/interfaces.h
===================================================================
--- branches/SAMBA_4_0/source/libcli/raw/interfaces.h 2006-05-16 16:07:41 UTC (rev 15637)
+++ branches/SAMBA_4_0/source/libcli/raw/interfaces.h 2006-05-16 16:28:36 UTC (rev 15638)
@@ -1173,6 +1173,48 @@
/* union for open() backend call */
union smb_open {
+/*
+ * because the *.out.file structs are not aligned to the same offset for each level
+ * we provide a hepler macro that should be used to find the current smb_handle structure
+ */
+#define SMB_OPEN_OUT_FILE(op, file) do { \
+ switch (op->generic.level) { \
+ case RAW_OPEN_OPEN: \
+ file = &op->openold.out.file; \
+ break; \
+ case RAW_OPEN_OPENX: \
+ file = &op->openx.out.file; \
+ break; \
+ case RAW_OPEN_MKNEW: \
+ file = &op->mknew.out.file; \
+ break; \
+ case RAW_OPEN_CREATE: \
+ file = &op->create.out.file; \
+ break; \
+ case RAW_OPEN_CTEMP: \
+ file = &op->ctemp.out.file; \
+ break; \
+ case RAW_OPEN_SPLOPEN: \
+ file = &op->splopen.out.file; \
+ break; \
+ case RAW_OPEN_NTCREATEX: \
+ file = &op->ntcreatex.out.file; \
+ break; \
+ case RAW_OPEN_T2OPEN: \
+ file = &op->t2open.out.file; \
+ break; \
+ case RAW_OPEN_NTTRANS_CREATE: \
+ file = &op->nttrans.out.file; \
+ break; \
+ case RAW_OPEN_OPENX_READX: \
+ file = &op->openxreadx.out.file; \
+ break; \
+ default: \
+ /* this must be a programmer error */ \
+ file = NULL; \
+ break; \
+ } \
+} while (0)
/* SMBNTCreateX interface */
struct {
enum smb_open_level level;
@@ -1212,7 +1254,7 @@
uint16_t ipc_state;
uint8_t is_directory;
} out;
- } ntcreatex, generic;
+ } ntcreatex, nttrans, generic;
/* TRANS2_OPEN interface */
struct {
More information about the samba-cvs
mailing list