#endif
}
-/*******************************************************************
- An ftruncate() wrapper.
-********************************************************************/
-
-int sys_ftruncate(int fd, SMB_OFF_T offset)
-{
- return ftruncate(fd, offset);
-}
-
-/*******************************************************************
- An lseek() wrapper.
-********************************************************************/
-
-SMB_OFF_T sys_lseek(int fd, SMB_OFF_T offset, int whence)
-{
- return lseek(fd, offset, whence);
-}
-
-/*******************************************************************
- An ftell() wrapper.
-********************************************************************/
-
-SMB_OFF_T sys_ftell(FILE *fp)
-{
- return (SMB_OFF_T)ftell(fp);
-}
-
-/*******************************************************************
- A creat() wrapper.
-********************************************************************/
-
-int sys_creat(const char *path, mode_t mode)
-{
-#if defined(HAVE_CREAT)
- return creat(path, mode);
-#else
- /*
- * If creat isn't defined then ensure we call open with the expected flags.
- *
- */
- return sys_open(path, O_WRONLY | O_CREAT | O_TRUNC, mode);
-#endif
-}
-
-/*******************************************************************
- An open() wrapper.
-********************************************************************/
-
-int sys_open(const char *path, int oflag, mode_t mode)
-{
- return open(path, oflag, mode);
-}
-
-/*******************************************************************
- An fopen() wrapper.
-********************************************************************/
-
-FILE *sys_fopen(const char *path, const char *type)
-{
- return fopen(path, type);
-}
-
-
#if HAVE_KERNEL_SHARE_MODES
#ifndef LOCK_MAND
#define LOCK_MAND 32 /* This is a mandatory flock */
-/*******************************************************************
- An opendir wrapper.
-********************************************************************/
-
-SMB_STRUCT_DIR *sys_opendir(const char *name)
-{
- return opendir(name);
-}
-
/*******************************************************************
An fdopendir wrapper.
Ugly hack - we need dirfd for this to work correctly in the
calling code.. JRA.
********************************************************************/
-SMB_STRUCT_DIR *sys_fdopendir(int fd)
+DIR *sys_fdopendir(int fd)
{
#if defined(HAVE_FDOPENDIR) && defined(HAVE_DIRFD)
return fdopendir(fd);
#endif
}
-/*******************************************************************
- A readdir wrapper.
-********************************************************************/
-
-SMB_STRUCT_DIRENT *sys_readdir(SMB_STRUCT_DIR *dirp)
-{
- return readdir(dirp);
-}
-
-/*******************************************************************
- A seekdir wrapper.
-********************************************************************/
-
-void sys_seekdir(SMB_STRUCT_DIR *dirp, long offset)
-{
- seekdir(dirp, offset);
-}
-
-/*******************************************************************
- A telldir wrapper.
-********************************************************************/
-
-long sys_telldir(SMB_STRUCT_DIR *dirp)
-{
- return (long)telldir(dirp);
-}
-
-/*******************************************************************
- A rewinddir wrapper.
-********************************************************************/
-
-void sys_rewinddir(SMB_STRUCT_DIR *dirp)
-{
- rewinddir(dirp);
-}
-
-/*******************************************************************
- A close wrapper.
-********************************************************************/
-
-int sys_closedir(SMB_STRUCT_DIR *dirp)
-{
- return closedir(dirp);
-}
-
/*******************************************************************
An mknod() wrapper.
********************************************************************/
#endif
}
-ssize_t sys_lgetxattr (const char *path, const char *name, void *value, size_t size)
-{
-#if defined(HAVE_LGETXATTR)
- return lgetxattr(path, name, value, size);
-#elif defined(HAVE_GETXATTR) && defined(XATTR_ADD_OPT)
- int options = XATTR_NOFOLLOW;
- return getxattr(path, name, value, size, 0, options);
-#elif defined(HAVE_LGETEA)
- return lgetea(path, name, value, size);
-#elif defined(HAVE_EXTATTR_GET_LINK)
- char *s;
- ssize_t retval;
- int attrnamespace = (strncmp(name, "system", 6) == 0) ?
- EXTATTR_NAMESPACE_SYSTEM : EXTATTR_NAMESPACE_USER;
- const char *attrname = ((s=strchr_m(name, '.')) == NULL) ? name : s + 1;
-
- if((retval=extattr_get_link(path, attrnamespace, attrname, NULL, 0)) >= 0) {
- if(retval > size) {
- errno = ERANGE;
- return -1;
- }
- if((retval=extattr_get_link(path, attrnamespace, attrname, value, size)) >= 0)
- return retval;
- }
-
- DEBUG(10,("sys_lgetxattr: extattr_get_link() failed with: %s\n", strerror(errno)));
- return -1;
-#elif defined(HAVE_ATTR_GET)
- int retval, flags = ATTR_DONTFOLLOW;
- int valuelength = (int)size;
- char *attrname = strchr(name,'.') + 1;
-
- if (strncmp(name, "system", 6) == 0) flags |= ATTR_ROOT;
-
- retval = attr_get(path, attrname, (char *)value, &valuelength, flags);
-
- return retval ? retval : valuelength;
-#elif defined(HAVE_ATTROPEN)
- ssize_t ret = -1;
- int attrfd = solaris_attropen(path, name, O_RDONLY|AT_SYMLINK_NOFOLLOW, 0);
- if (attrfd >= 0) {
- ret = solaris_read_xattr(attrfd, value, size);
- close(attrfd);
- }
- return ret;
-#else
- errno = ENOSYS;
- return -1;
-#endif
-}
-
ssize_t sys_fgetxattr (int filedes, const char *name, void *value, size_t size)
{
#if defined(HAVE_FGETXATTR)
#endif
}
-ssize_t sys_llistxattr (const char *path, char *list, size_t size)
-{
-#if defined(HAVE_LLISTXATTR)
- return llistxattr(path, list, size);
-#elif defined(HAVE_LISTXATTR) && defined(XATTR_ADD_OPT)
- int options = XATTR_NOFOLLOW;
- return listxattr(path, list, size, options);
-#elif defined(HAVE_LLISTEA)
- return llistea(path, list, size);
-#elif defined(HAVE_EXTATTR_LIST_LINK)
- extattr_arg arg;
- arg.path = path;
- return bsd_attr_list(1, arg, list, size);
-#elif defined(HAVE_ATTR_LIST) && defined(HAVE_SYS_ATTRIBUTES_H)
- return irix_attr_list(path, 0, list, size, ATTR_DONTFOLLOW);
-#elif defined(HAVE_ATTROPEN)
- ssize_t ret = -1;
- int attrdirfd = solaris_attropen(path, ".", O_RDONLY|AT_SYMLINK_NOFOLLOW, 0);
- if (attrdirfd >= 0) {
- ret = solaris_list_xattr(attrdirfd, list, size);
- close(attrdirfd);
- }
- return ret;
-#else
- errno = ENOSYS;
- return -1;
-#endif
-}
-
ssize_t sys_flistxattr (int filedes, char *list, size_t size)
{
#if defined(HAVE_FLISTXATTR)