Difference between revisions of "UNIX Extensions"

Line 4: Line 4:
  
 
== PosixOpen ==
 
== PosixOpen ==
 +
 +
Server specifies it can serve these by returning :
 +
 +
CIFS_UNIX_POSIX_PATH_OPERATIONS_CAP        0x20
 +
 +
in the reply to a trans2 qfsinfo (TRANSACT2_QFSINFO 0x03) info level SMB_QUERY_CIFS_UNIX_INFO (0x200) call.
 +
 +
For open, call TRANSACT2_SETPATHINFO (0x06) call info level :
 +
 +
SMB_POSIX_PATH_OPEN            0x209
 +
 +
The request data block should be 14 bytes consisting of
 +
the following :
 +
 +
{|
 +
!Size !! Offset !! Value
 +
|-
 +
||4 bytes || 0 || Flags field (same as smb_ntcreate_flags  in SMBNTCreateX to request oplocks)
 +
|-
 +
||4 bytes || 4 || POSIX open flags (see below)
 +
|-
 +
||4 bytes || 8 || POSIX mode_t (see below)
 +
|-
 +
||2 bytes || 12 || Reply info level requested (see below)
 +
|}
  
 
== Negotiating Capabilities ==
 
== Negotiating Capabilities ==

Revision as of 21:54, 7 February 2007

See http://samba.org/samba/CIFS_POSIX_extensions.html

All Unix extensions are TRANSACT2 commands in the range from 0x200 to 0x2FF (inclusive).

PosixOpen

Server specifies it can serve these by returning :

CIFS_UNIX_POSIX_PATH_OPERATIONS_CAP 0x20

in the reply to a trans2 qfsinfo (TRANSACT2_QFSINFO 0x03) info level SMB_QUERY_CIFS_UNIX_INFO (0x200) call.

For open, call TRANSACT2_SETPATHINFO (0x06) call info level :

SMB_POSIX_PATH_OPEN 0x209

The request data block should be 14 bytes consisting of the following :

Size Offset Value
4 bytes 0 Flags field (same as smb_ntcreate_flags in SMBNTCreateX to request oplocks)
4 bytes 4 POSIX open flags (see below)
4 bytes 8 POSIX mode_t (see below)
2 bytes 12 Reply info level requested (see below)

Negotiating Capabilities

Capability Value
CIFS_UNIX_FCNLT_LOCKS_CAP 0x01
CIFS_UNIX_POSIX_ACLS_CAP 0x02
CIFS_UNIX_XATTR_CAP 0x04
CIFS_UNIX_EXATTR_CAP 0x08
CIFS_UNIX_POSIX_PATH_OPERATIONS_CAP 0x20