A small patch for C++ VFS modules.

Ben Martin monkeyiq at users.sourceforge.net
Sat Jun 25 07:12:04 GMT 2005


On Fri, 2005-06-24 at 13:26 -0700, Jeremy Allison wrote:
> On Fri, Jun 24, 2005 at 11:23:40AM +1000, Ben Martin wrote:
> > 
> > OK, I had started doing it this way and reverted to header only. I'm
> > happy to resubmit with the more intrusive versions. 
> 
> You shouldn't need to. In order to make it easier for people to write
> modules in C++ I've fixed our headers and code to make it C++ friendly.
> 
> Checkout SAMBA_3_0 svn and please let me know it I missed anything.
> 
> Jeremy.

Excellent stuff! 

One minor thing: include/smb_acls.h 

.../source/include/smb_acls.h:262: error: conflicting declaration 'typedef struct SMB_ACL_T* SMB_ACL_T'
.../source/include/smb_acls.h:260: error: 'struct SMB_ACL_T' has a previous declaration as 'struct SMB_ACL_T'
.../source/include/smb_acls.h:266: error: conflicting declaration 'typedef struct SMB_ACL_ENTRY_T* SMB_ACL_ENTRY_T'
.../source/include/smb_acls.h:264: error: 'struct SMB_ACL_ENTRY_T' has a previous declaration as 'struct SMB_ACL_ENTRY 

C++ seems to think that you are typedef'ing a pointer to the struct to
be the same as the struct itself. Once these are guarded like the below
then all is well, though there is probably a much cleaner way to do
this. For my C++ eyes it does appear the typedef as it stands is rather
self referential.

#ifdef __cplusplus
typedef struct {
#else
typedef struct SMB_ACL_T {
#endif
	int dummy;
} *SMB_ACL_T;

#ifdef __cplusplus
    typedef struct {
#else
    typedef struct SMB_ACL_ENTRY_T {
#endif
	int dummy;
} *SMB_ACL_ENTRY_T;

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : http://lists.samba.org/archive/samba-technical/attachments/20050625/3707cb73/attachment.bin


More information about the samba-technical mailing list