mirror of
https://repo.or.cz/socat.git
synced 2024-12-22 15:32:35 +00:00
ext2-* options are renamed to fs-*
This commit is contained in:
parent
f34e8a4dc1
commit
beed38655f
15 changed files with 346 additions and 223 deletions
7
CHANGES
7
CHANGES
|
@ -41,6 +41,10 @@ Porting:
|
||||||
ai_protocol=0 and try again
|
ai_protocol=0 and try again
|
||||||
Test: SCTP_SERVICENAME
|
Test: SCTP_SERVICENAME
|
||||||
|
|
||||||
|
Per file filesystem options were still name ext2-* and depended on
|
||||||
|
<linux/ext2_fs.h>. Now they are called fs-* and depend on <linux/fs.h>.
|
||||||
|
These fs-* options are also available on old systems with ext2_fs.h
|
||||||
|
|
||||||
Testing:
|
Testing:
|
||||||
test.sh now produces a list of tests that could not be performed for
|
test.sh now produces a list of tests that could not be performed for
|
||||||
any reason. This helps to analyse these cases.
|
any reason. This helps to analyse these cases.
|
||||||
|
@ -231,6 +235,9 @@ Cosmetics:
|
||||||
New features:
|
New features:
|
||||||
Permit combined -d options as -dd etc.
|
Permit combined -d options as -dd etc.
|
||||||
|
|
||||||
|
porting:
|
||||||
|
ext2 options are now fs options.
|
||||||
|
|
||||||
####################### V 1.7.3.2:
|
####################### V 1.7.3.2:
|
||||||
|
|
||||||
corrections:
|
corrections:
|
||||||
|
|
|
@ -51,7 +51,7 @@ XIOSRCS = xioinitialize.c xiohelp.c xioparam.c xiodiag.c xioopen.c xioopts.c \
|
||||||
xio-socks.c xio-proxy.c xio-udp.c \
|
xio-socks.c xio-proxy.c xio-udp.c \
|
||||||
xio-progcall.c xio-exec.c xio-system.c xio-termios.c xio-readline.c \
|
xio-progcall.c xio-exec.c xio-system.c xio-termios.c xio-readline.c \
|
||||||
xio-pty.c xio-openssl.c xio-streams.c\
|
xio-pty.c xio-openssl.c xio-streams.c\
|
||||||
xio-ascii.c xiolockfile.c xio-tcpwrap.c xio-ext2.c xio-tun.c
|
xio-ascii.c xiolockfile.c xio-tcpwrap.c xio-fs.c xio-tun.c
|
||||||
XIOOBJS = $(XIOSRCS:.c=.o)
|
XIOOBJS = $(XIOSRCS:.c=.o)
|
||||||
UTLSRCS = error.c dalan.c procan.c procan-cdefs.c hostan.c fdname.c sysutils.c utils.c nestlex.c vsnprintf_r.c snprinterr.c @FILAN@ sycls.c @SSLCLS@
|
UTLSRCS = error.c dalan.c procan.c procan-cdefs.c hostan.c fdname.c sysutils.c utils.c nestlex.c vsnprintf_r.c snprinterr.c @FILAN@ sycls.c @SSLCLS@
|
||||||
UTLOBJS = $(UTLSRCS:.c=.o)
|
UTLOBJS = $(UTLSRCS:.c=.o)
|
||||||
|
@ -69,7 +69,7 @@ HFILES = sycls.h sslcls.h error.h dalan.h procan.h filan.h hostan.h sysincludes.
|
||||||
xio-socks.h xio-proxy.h xio-progcall.h xio-exec.h \
|
xio-socks.h xio-proxy.h xio-progcall.h xio-exec.h \
|
||||||
xio-system.h xio-termios.h xio-readline.h \
|
xio-system.h xio-termios.h xio-readline.h \
|
||||||
xio-pty.h xio-openssl.h xio-streams.h \
|
xio-pty.h xio-openssl.h xio-streams.h \
|
||||||
xio-ascii.h xiolockfile.h xio-tcpwrap.h xio-ext2.h xio-tun.h
|
xio-ascii.h xiolockfile.h xio-tcpwrap.h xio-fs.h xio-tun.h
|
||||||
|
|
||||||
|
|
||||||
DOCFILES = README README.FIPS CHANGES FILES EXAMPLES PORTING SECURITY DEVELOPMENT doc/socat.yo doc/socat.1 doc/socat.html doc/xio.help FAQ BUGREPORTS COPYING COPYING.OpenSSL doc/dest-unreach.css doc/socat-openssltunnel.html doc/socat-multicast.html doc/socat-tun.html doc/socat-genericsocket.html
|
DOCFILES = README README.FIPS CHANGES FILES EXAMPLES PORTING SECURITY DEVELOPMENT doc/socat.yo doc/socat.1 doc/socat.html doc/xio.help FAQ BUGREPORTS COPYING COPYING.OpenSSL doc/dest-unreach.css doc/socat-openssltunnel.html doc/socat-multicast.html doc/socat-tun.html doc/socat-genericsocket.html
|
||||||
|
|
|
@ -633,7 +633,7 @@
|
||||||
#undef WITH_READLINE
|
#undef WITH_READLINE
|
||||||
#undef WITH_TUN
|
#undef WITH_TUN
|
||||||
#undef WITH_PTY
|
#undef WITH_PTY
|
||||||
#undef WITH_EXT2
|
#undef WITH_FS
|
||||||
#undef WITH_OPENSSL
|
#undef WITH_OPENSSL
|
||||||
#undef WITH_OPENSSL_METHOD
|
#undef WITH_OPENSSL_METHOD
|
||||||
#undef WITH_RES_DEPRECATED /* AAONLY,PRIMARY */
|
#undef WITH_RES_DEPRECATED /* AAONLY,PRIMARY */
|
||||||
|
|
|
@ -405,13 +405,13 @@ AC_ARG_ENABLE(pty, [ --disable-pty disable pty support],
|
||||||
esac],
|
esac],
|
||||||
[AC_DEFINE(WITH_PTY) AC_MSG_RESULT(yes)])
|
[AC_DEFINE(WITH_PTY) AC_MSG_RESULT(yes)])
|
||||||
|
|
||||||
AC_MSG_CHECKING(whether to include ext2 fs attributes support)
|
AC_MSG_CHECKING(whether to include fs attributes support)
|
||||||
AC_ARG_ENABLE(ext2, [ --disable-ext2 disable ext2 fs attributes support],
|
AC_ARG_ENABLE(fs, [ --disable-fs disable fs attributes support],
|
||||||
[case "$enableval" in
|
[case "$enableval" in
|
||||||
no) AC_MSG_RESULT(no);;
|
no) AC_MSG_RESULT(no);;
|
||||||
*) AC_DEFINE(WITH_EXT2) AC_MSG_RESULT(yes);;
|
*) AC_DEFINE(WITH_FS) AC_MSG_RESULT(yes);;
|
||||||
esac],
|
esac],
|
||||||
[AC_DEFINE(WITH_EXT2) AC_MSG_RESULT(yes)])
|
[AC_DEFINE(WITH_FS) AC_MSG_RESULT(yes)])
|
||||||
|
|
||||||
AC_MSG_CHECKING(whether to include readline support)
|
AC_MSG_CHECKING(whether to include readline support)
|
||||||
AC_ARG_ENABLE(readline, [ --disable-readline disable readline support],
|
AC_ARG_ENABLE(readline, [ --disable-readline disable readline support],
|
||||||
|
|
30
doc/socat.yo
30
doc/socat.yo
|
@ -1663,22 +1663,22 @@ label(OPTION_FTRUNCATE)dit(bf(tt(ftruncate=<offset>)))
|
||||||
link(off64_t)(TYPE_OFF64)]. Please note that a missing value defaults to 1,
|
link(off64_t)(TYPE_OFF64)]. Please note that a missing value defaults to 1,
|
||||||
not 0.
|
not 0.
|
||||||
|
|
||||||
label(OPTION_EXT2_SECRM_FL)dit(bf(tt(secrm=<bool>)))
|
label(OPTION_FS_SECRM_FL)dit(bf(tt(secrm=<bool>)))
|
||||||
label(OPTION_EXT2_UNRM)dit(bf(tt(unrm=<bool>)))
|
label(OPTION_FS_UNRM)dit(bf(tt(unrm=<bool>)))
|
||||||
label(OPTION_EXT2_COMPR)dit(bf(tt(compr=<bool>)))
|
label(OPTION_FS_COMPR)dit(bf(tt(compr=<bool>)))
|
||||||
label(OPTION_EXT2_SYNC)dit(bf(tt(ext2-sync=<bool>)))
|
label(OPTION_FS_SYNC)dit(bf(tt(fs-sync=<bool>)))
|
||||||
label(OPTION_EXT2_IMMUTABLE)dit(bf(tt(immutable=<bool>)))
|
label(OPTION_FS_IMMUTABLE)dit(bf(tt(immutable=<bool>)))
|
||||||
label(OPTION_EXT2_APPEND)dit(bf(tt(ext2-append=<bool>)))
|
label(OPTION_FS_APPEND)dit(bf(tt(fs-append=<bool>)))
|
||||||
label(OPTION_EXT2_NODUMP)dit(bf(tt(nodump=<bool>)))
|
label(OPTION_FS_NODUMP)dit(bf(tt(nodump=<bool>)))
|
||||||
label(OPTION_EXT2_NOATIME)dit(bf(tt(ext2-noatime=<bool>)))
|
label(OPTION_FS_NOATIME)dit(bf(tt(fs-noatime=<bool>)))
|
||||||
label(OPTION_EXT2_JOURNAL_DATA)dit(bf(tt(journal-data=<bool>)))
|
label(OPTION_FS_JOURNAL_DATA)dit(bf(tt(journal-data=<bool>)))
|
||||||
label(OPTION_EXT2_NOTAIL)dit(bf(tt(notail=<bool>)))
|
label(OPTION_FS_NOTAIL)dit(bf(tt(notail=<bool>)))
|
||||||
label(OPTION_EXT2_DIRSYNC)dit(bf(tt(dirsync=<bool>)))
|
label(OPTION_FS_DIRSYNC)dit(bf(tt(dirsync=<bool>)))
|
||||||
These options change non standard file attributes on operating systems and
|
These options change non standard file attributes on operating systems and
|
||||||
file systems that support these features, like Linux with ext2fs,
|
file systems that support these features, like Linux with ext2fs and
|
||||||
ext3fs, or reiserfs. See man 1 chattr for information on these options.
|
successors, xfs, or reiserfs. See man 1 chattr for information on these
|
||||||
Please note that there might be a race condition between creating the file
|
options. Please note that there might be a race condition between creating
|
||||||
and applying these options.
|
the file and applying these options.
|
||||||
enddit()
|
enddit()
|
||||||
|
|
||||||
startdit()enddit()nl()
|
startdit()enddit()nl()
|
||||||
|
|
|
@ -167,7 +167,7 @@
|
||||||
#include <regex.h>
|
#include <regex.h>
|
||||||
#endif
|
#endif
|
||||||
#if HAVE_LINUX_FS_H
|
#if HAVE_LINUX_FS_H
|
||||||
#include <linux/fs.h> /* somewhere required for ext2_fs.h */
|
#include <linux/fs.h> /* Linux filesystem definitions */
|
||||||
#endif
|
#endif
|
||||||
#if HAVE_LINUX_EXT2_FS_H
|
#if HAVE_LINUX_EXT2_FS_H
|
||||||
#include <linux/ext2_fs.h> /* Linux ext2 filesystem definitions */
|
#include <linux/ext2_fs.h> /* Linux ext2 filesystem definitions */
|
||||||
|
|
14
test.sh
14
test.sh
|
@ -8232,17 +8232,17 @@ fi ;; # NUMCOND, feats
|
||||||
esac
|
esac
|
||||||
N=$((N+1))
|
N=$((N+1))
|
||||||
|
|
||||||
NAME=EXT2_NOATIME
|
NAME=FS_NOATIME
|
||||||
case "$TESTS" in
|
case "$TESTS" in
|
||||||
*%$N%*|*%functions%*|*%ext2%*|*%noatime%*|*%$NAME%*)
|
*%$N%*|*%functions%*|*%fs%*|*%noatime%*|*%$NAME%*)
|
||||||
TEST="$NAME: extended file system options using ext2fs noatime option"
|
TEST="$NAME: extended file system options using fs noatime option"
|
||||||
# idea: create a file with ext2-noatime option; one second later create a file
|
# idea: create a file with fs-noatime option; one second later create a file
|
||||||
# without this option (using touch); one second later read from the first file.
|
# without this option (using touch); one second later read from the first file.
|
||||||
# Then we check which file has the later ATIME stamp. For this check we use
|
# Then we check which file has the later ATIME stamp. For this check we use
|
||||||
# "ls -ltu" because it is more portable than "test ... -nt ..."
|
# "ls -ltu" because it is more portable than "test ... -nt ..."
|
||||||
if ! eval $NUMCOND; then :;
|
if ! eval $NUMCOND; then :;
|
||||||
elif ! testoptions ext2-noatime >/dev/null; then
|
elif ! testoptions fs-noatime >/dev/null; then
|
||||||
$PRINTF "test $F_n $TEST... ${YELLOW}ext2-noatime not available${NORMAL}\n" $N
|
$PRINTF "test $F_n $TEST... ${YELLOW}fs-noatime not available${NORMAL}\n" $N
|
||||||
numCANT=$((numCANT+1))
|
numCANT=$((numCANT+1))
|
||||||
listCANT="$listCANT $N"
|
listCANT="$listCANT $N"
|
||||||
else
|
else
|
||||||
|
@ -8254,7 +8254,7 @@ ts1="$ts"
|
||||||
da="test$N $(date) $RANDOM"
|
da="test$N $(date) $RANDOM"
|
||||||
$PRINTF "test $F_n $TEST... " $N
|
$PRINTF "test $F_n $TEST... " $N
|
||||||
CMD0="$TRACE $SOCAT $opts -u /dev/null create:\"${tf}1\""
|
CMD0="$TRACE $SOCAT $opts -u /dev/null create:\"${tf}1\""
|
||||||
CMD="$TRACE $SOCAT $opts -u /dev/null create:\"${tf}1\",ext2-noatime"
|
CMD="$TRACE $SOCAT $opts -u /dev/null create:\"${tf}1\",fs-noatime"
|
||||||
# check if this is a capable FS; lsattr does other things on AIX, thus socat
|
# check if this is a capable FS; lsattr does other things on AIX, thus socat
|
||||||
$CMD0 2>"${te}0"
|
$CMD0 2>"${te}0"
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
|
|
91
xio-ext2.c
91
xio-ext2.c
|
@ -1,91 +0,0 @@
|
||||||
/* source: xio-ext2.c */
|
|
||||||
/* Copyright Gerhard Rieger and contributors (see file CHANGES) */
|
|
||||||
/* Published under the GNU General Public License V.2, see file COPYING */
|
|
||||||
|
|
||||||
/* this file contains the source for handling Linux ext2fs options
|
|
||||||
they can also be set with chattr(1) and viewed with lsattr(1) */
|
|
||||||
|
|
||||||
#include "xiosysincludes.h"
|
|
||||||
#include "xioopen.h"
|
|
||||||
|
|
||||||
#include "xio-ext2.h"
|
|
||||||
|
|
||||||
|
|
||||||
#if WITH_EXT2
|
|
||||||
|
|
||||||
/****** FD options ******/
|
|
||||||
|
|
||||||
#ifdef EXT2_SECRM_FL
|
|
||||||
/* secure deletion, chattr 's' */
|
|
||||||
const struct optdesc opt_ext2_secrm = { "ext2-secrm", "secrm", OPT_EXT2_SECRM, GROUP_REG, PH_FD, TYPE_BOOL, OFUNC_IOCTL_MASK_LONG, EXT2_IOC_GETFLAGS, EXT2_IOC_SETFLAGS, EXT2_SECRM_FL };
|
|
||||||
#endif /* EXT2_SECRM_FL */
|
|
||||||
|
|
||||||
#ifdef EXT2_UNRM_FL
|
|
||||||
/* undelete, chattr 'u' */
|
|
||||||
const struct optdesc opt_ext2_unrm = { "ext2-unrm", "unrm", OPT_EXT2_UNRM, GROUP_REG, PH_FD, TYPE_BOOL, OFUNC_IOCTL_MASK_LONG, EXT2_IOC_GETFLAGS, EXT2_IOC_SETFLAGS, EXT2_UNRM_FL };
|
|
||||||
#endif /* EXT2_UNRM_FL */
|
|
||||||
|
|
||||||
#ifdef EXT2_COMPR_FL
|
|
||||||
/* compress file, chattr 'c' */
|
|
||||||
const struct optdesc opt_ext2_compr = { "ext2-compr", "compr", OPT_EXT2_COMPR, GROUP_REG, PH_FD, TYPE_BOOL, OFUNC_IOCTL_MASK_LONG, EXT2_IOC_GETFLAGS, EXT2_IOC_SETFLAGS, EXT2_COMPR_FL };
|
|
||||||
#endif /* EXT2_COMPR_FL */
|
|
||||||
|
|
||||||
#ifdef EXT2_SYNC_FL
|
|
||||||
/* synchronous update, chattr 'S' */
|
|
||||||
const struct optdesc opt_ext2_sync = { "ext2-sync", "sync", OPT_EXT2_SYNC, GROUP_REG, PH_FD, TYPE_BOOL, OFUNC_IOCTL_MASK_LONG, EXT2_IOC_GETFLAGS, EXT2_IOC_SETFLAGS, EXT2_SYNC_FL };
|
|
||||||
#endif /* EXT2_SYNC_FL */
|
|
||||||
|
|
||||||
#ifdef EXT2_IMMUTABLE_FL
|
|
||||||
/* immutable file, chattr 'i' */
|
|
||||||
const struct optdesc opt_ext2_immutable = { "ext2-immutable", "immutable", OPT_EXT2_IMMUTABLE, GROUP_REG, PH_FD, TYPE_BOOL, OFUNC_IOCTL_MASK_LONG, EXT2_IOC_GETFLAGS, EXT2_IOC_SETFLAGS, EXT2_IMMUTABLE_FL };
|
|
||||||
#endif /* EXT2_IMMUTABLE_FL */
|
|
||||||
|
|
||||||
#ifdef EXT2_APPEND_FL
|
|
||||||
/* writes to file may only append, chattr 'a' */
|
|
||||||
const struct optdesc opt_ext2_append = { "ext2-append", "append", OPT_EXT2_APPEND, GROUP_REG, PH_FD, TYPE_BOOL, OFUNC_IOCTL_MASK_LONG, EXT2_IOC_GETFLAGS, EXT2_IOC_SETFLAGS, EXT2_APPEND_FL };
|
|
||||||
#endif /* EXT2_APPEND_FL */
|
|
||||||
|
|
||||||
#ifdef EXT2_NODUMP_FL
|
|
||||||
/* do not dump file, chattr 'd' */
|
|
||||||
const struct optdesc opt_ext2_nodump = { "ext2-nodump", "nodump", OPT_EXT2_NODUMP, GROUP_REG, PH_FD, TYPE_BOOL, OFUNC_IOCTL_MASK_LONG, EXT2_IOC_GETFLAGS, EXT2_IOC_SETFLAGS, EXT2_NODUMP_FL };
|
|
||||||
#endif /* EXT2_NODUMP_FL */
|
|
||||||
|
|
||||||
#ifdef EXT2_NOATIME_FL
|
|
||||||
/* do not update atime, chattr 'A' */
|
|
||||||
const struct optdesc opt_ext2_noatime = { "ext2-noatime", "noatime", OPT_EXT2_NOATIME, GROUP_REG, PH_FD, TYPE_BOOL, OFUNC_IOCTL_MASK_LONG, EXT2_IOC_GETFLAGS, EXT2_IOC_SETFLAGS, EXT2_NOATIME_FL };
|
|
||||||
#endif /* EXT2_NOATIME_FL */
|
|
||||||
|
|
||||||
/* EXT2_DIRTY_FL ??? */
|
|
||||||
/* EXT2_COMPRBLK_FL one ore more compress clusters */
|
|
||||||
/* EXT2_NOCOMPR_FL access raw compressed data */
|
|
||||||
/* EXT2_ECOMPR_FL compression error */
|
|
||||||
/* EXT2_BTREE_FL btree format dir */
|
|
||||||
/* EXT2_INDEX_FL hash indexed directory */
|
|
||||||
/* EXT2_IMAGIC ??? */
|
|
||||||
|
|
||||||
#ifdef EXT2_JOURNAL_DATA_FL
|
|
||||||
/* file data should be journaled, chattr 'j' */
|
|
||||||
const struct optdesc opt_ext2_journal_data = { "ext2-journal-data", "journal-data", OPT_EXT2_JOURNAL_DATA, GROUP_REG, PH_FD, TYPE_BOOL, OFUNC_IOCTL_MASK_LONG, EXT2_IOC_GETFLAGS, EXT2_IOC_SETFLAGS, EXT2_JOURNAL_DATA_FL };
|
|
||||||
#endif /* EXT2_JOURNAL_DATA_FL */
|
|
||||||
|
|
||||||
#ifdef EXT2_NOTAIL_FL
|
|
||||||
/* file tail should not be merged, chattr 't' */
|
|
||||||
const struct optdesc opt_ext2_notail = { "ext2-notail", "notail", OPT_EXT2_NOTAIL, GROUP_REG, PH_FD, TYPE_BOOL, OFUNC_IOCTL_MASK_LONG, EXT2_IOC_GETFLAGS, EXT2_IOC_SETFLAGS, EXT2_NOTAIL_FL };
|
|
||||||
#endif /* EXT2_NOTAIL_FL */
|
|
||||||
|
|
||||||
#ifdef EXT2_DIRSYNC_FL
|
|
||||||
/* synchronous directory modifications, chattr 'D' */
|
|
||||||
const struct optdesc opt_ext2_dirsync = { "ext2-dirsync", "dirsync", OPT_EXT2_DIRSYNC, GROUP_REG, PH_FD, TYPE_BOOL, OFUNC_IOCTL_MASK_LONG, EXT2_IOC_GETFLAGS, EXT2_IOC_SETFLAGS, EXT2_DIRSYNC_FL };
|
|
||||||
#endif /* EXT2_DIRSYNC_FL */
|
|
||||||
|
|
||||||
#ifdef EXT2_TOPDIR_FL
|
|
||||||
/* top of directory hierarchies, chattr 'T' */
|
|
||||||
const struct optdesc opt_ext2_topdir = { "ext2-topdir", "topdir", OPT_EXT2_TOPDIR, GROUP_REG, PH_FD, TYPE_BOOL, OFUNC_IOCTL_MASK_LONG, EXT2_IOC_GETFLAGS, EXT2_IOC_SETFLAGS, EXT2_TOPDIR_FL };
|
|
||||||
#endif /* EXT2_TOPDIR_FL */
|
|
||||||
|
|
||||||
/* EXTENTS inode uses extents */
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* WITH_EXT2 */
|
|
||||||
|
|
||||||
|
|
21
xio-ext2.h
21
xio-ext2.h
|
@ -1,21 +0,0 @@
|
||||||
/* source: xio-ext2.h */
|
|
||||||
/* Copyright Gerhard Rieger and contributors (see file CHANGES) */
|
|
||||||
/* Published under the GNU General Public License V.2, see file COPYING */
|
|
||||||
|
|
||||||
#ifndef __xio_ext2_h_included
|
|
||||||
#define __xio_ext2_h_included 1
|
|
||||||
|
|
||||||
extern const struct optdesc opt_ext2_secrm;
|
|
||||||
extern const struct optdesc opt_ext2_unrm;
|
|
||||||
extern const struct optdesc opt_ext2_compr;
|
|
||||||
extern const struct optdesc opt_ext2_sync;
|
|
||||||
extern const struct optdesc opt_ext2_immutable;
|
|
||||||
extern const struct optdesc opt_ext2_append;
|
|
||||||
extern const struct optdesc opt_ext2_nodump;
|
|
||||||
extern const struct optdesc opt_ext2_noatime;
|
|
||||||
extern const struct optdesc opt_ext2_journal_data;
|
|
||||||
extern const struct optdesc opt_ext2_notail;
|
|
||||||
extern const struct optdesc opt_ext2_dirsync;
|
|
||||||
extern const struct optdesc opt_ext2_topdir;
|
|
||||||
|
|
||||||
#endif /* !defined(__xio_ext2_h_included) */
|
|
134
xio-fs.c
Normal file
134
xio-fs.c
Normal file
|
@ -0,0 +1,134 @@
|
||||||
|
/* source: xio-fs.c */
|
||||||
|
/* Copyright Gerhard Rieger and contributors (see file CHANGES) */
|
||||||
|
/* Published under the GNU General Public License V.2, see file COPYING */
|
||||||
|
|
||||||
|
/* this file contains the source for handling Linux fs options
|
||||||
|
they can also be set with chattr(1) and viewed with lsattr(1) */
|
||||||
|
|
||||||
|
#include "xiosysincludes.h"
|
||||||
|
#include "xioopen.h"
|
||||||
|
|
||||||
|
#include "xio-fs.h"
|
||||||
|
|
||||||
|
|
||||||
|
#if WITH_FS
|
||||||
|
|
||||||
|
/****** FD options ******/
|
||||||
|
|
||||||
|
#if defined(EXT2_IOC_GETFLAGS) && !defined(FS_IOC_GETFLAGS)
|
||||||
|
# define FS_IOC_GETFLAGS EXT2_IOC_GETFLAGS
|
||||||
|
#endif
|
||||||
|
#if defined(EXT2_IOC_SETFLAGS) && !defined(FS_IOC_SETFLAGS)
|
||||||
|
# define FS_IOC_SETFLAGS EXT2_IOC_SETFLAGS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(EXT2_SECRM_FL) && !defined(FS_SECRM_FL)
|
||||||
|
# define FS_SECRM_FL EXT2_SECRM_FL
|
||||||
|
#endif
|
||||||
|
#ifdef FS_SECRM_FL
|
||||||
|
/* secure deletion, chattr 's' */
|
||||||
|
const struct optdesc opt_fs_secrm = { "fs-secrm", "secrm", OPT_FS_SECRM, GROUP_REG, PH_FD, TYPE_BOOL, OFUNC_IOCTL_MASK_LONG, FS_IOC_GETFLAGS, FS_IOC_SETFLAGS, FS_SECRM_FL };
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(EXT2_UNRM_FL) && !defined(FS_UNRM_FL)
|
||||||
|
# define FS_UNRM_FL EXT2_UNRM_FL
|
||||||
|
#endif
|
||||||
|
#ifdef FS_UNRM_FL
|
||||||
|
/* undelete, chattr 'u' */
|
||||||
|
const struct optdesc opt_fs_unrm = { "fs-unrm", "unrm", OPT_FS_UNRM, GROUP_REG, PH_FD, TYPE_BOOL, OFUNC_IOCTL_MASK_LONG, FS_IOC_GETFLAGS, FS_IOC_SETFLAGS, FS_UNRM_FL };
|
||||||
|
#endif /* FS_UNRM_FL */
|
||||||
|
|
||||||
|
#if defined(EXT2_COMPR_FL) && !defined(FS_COMPR_FL)
|
||||||
|
# define FS_COMPR_FL EXT2_COMPR_FL
|
||||||
|
#endif
|
||||||
|
#ifdef FS_COMPR_FL
|
||||||
|
/* compress file, chattr 'c' */
|
||||||
|
const struct optdesc opt_fs_compr = { "fs-compr", "compr", OPT_FS_COMPR, GROUP_REG, PH_FD, TYPE_BOOL, OFUNC_IOCTL_MASK_LONG, FS_IOC_GETFLAGS, FS_IOC_SETFLAGS, FS_COMPR_FL };
|
||||||
|
#endif /* FS_COMPR_FL */
|
||||||
|
|
||||||
|
#if defined(EXT2_SYNC_FL) && !defined(FS_SYNC_FL)
|
||||||
|
# define FS_SYNC_FL EXT2_SYNC_FL
|
||||||
|
#endif
|
||||||
|
#ifdef FS_SYNC_FL
|
||||||
|
/* synchronous update, chattr 'S' */
|
||||||
|
const struct optdesc opt_fs_sync = { "fs-sync", "sync", OPT_FS_SYNC, GROUP_REG, PH_FD, TYPE_BOOL, OFUNC_IOCTL_MASK_LONG, FS_IOC_GETFLAGS, FS_IOC_SETFLAGS, FS_SYNC_FL };
|
||||||
|
#endif /* FS_SYNC_FL */
|
||||||
|
|
||||||
|
#if defined(EXT2_IMMUTABLE_FL) && !defined(FS_IMMUTABLE_FL)
|
||||||
|
# define FS_IMMUTABLE_FL EXT2_IMMUTABLE_FL
|
||||||
|
#endif
|
||||||
|
#ifdef FS_IMMUTABLE_FL
|
||||||
|
/* immutable file, chattr 'i' */
|
||||||
|
const struct optdesc opt_fs_immutable = { "fs-immutable", "immutable", OPT_FS_IMMUTABLE, GROUP_REG, PH_FD, TYPE_BOOL, OFUNC_IOCTL_MASK_LONG, FS_IOC_GETFLAGS, FS_IOC_SETFLAGS, FS_IMMUTABLE_FL };
|
||||||
|
#endif /* FS_IMMUTABLE_FL */
|
||||||
|
|
||||||
|
#if defined(EXT2_APPEND_FL) && !defined(FS_APPEND_FL)
|
||||||
|
# define FS_APPEND_FL EXT2_APPEND_FL
|
||||||
|
#endif
|
||||||
|
#ifdef FS_APPEND_FL
|
||||||
|
/* writes to file may only append, chattr 'a' */
|
||||||
|
const struct optdesc opt_fs_append = { "fs-append", "append", OPT_FS_APPEND, GROUP_REG, PH_FD, TYPE_BOOL, OFUNC_IOCTL_MASK_LONG, FS_IOC_GETFLAGS, FS_IOC_SETFLAGS, FS_APPEND_FL };
|
||||||
|
#endif /* FS_APPEND_FL */
|
||||||
|
|
||||||
|
#if defined(EXT2_NODUMP_FL) && !defined(FS_NODUMP_FL)
|
||||||
|
# define FS_NODUMP_FL EXT2_NODUMP_FL
|
||||||
|
#endif
|
||||||
|
#ifdef FS_NODUMP_FL
|
||||||
|
/* do not dump file, chattr 'd' */
|
||||||
|
const struct optdesc opt_fs_nodump = { "fs-nodump", "nodump", OPT_FS_NODUMP, GROUP_REG, PH_FD, TYPE_BOOL, OFUNC_IOCTL_MASK_LONG, FS_IOC_GETFLAGS, FS_IOC_SETFLAGS, FS_NODUMP_FL };
|
||||||
|
#endif /* FS_NODUMP_FL */
|
||||||
|
|
||||||
|
#if defined(EXT2_NOATIME_FL) && !defined(FS_NOATIME_FL)
|
||||||
|
# define FS_NOATIME_FL EXT2_NOATIME_FL
|
||||||
|
#endif
|
||||||
|
#ifdef FS_NOATIME_FL
|
||||||
|
/* do not update atime, chattr 'A' */
|
||||||
|
const struct optdesc opt_fs_noatime = { "fs-noatime", "noatime", OPT_FS_NOATIME, GROUP_REG, PH_FD, TYPE_BOOL, OFUNC_IOCTL_MASK_LONG, FS_IOC_GETFLAGS, FS_IOC_SETFLAGS, FS_NOATIME_FL };
|
||||||
|
#endif /* FS_NOATIME_FL */
|
||||||
|
|
||||||
|
/* FS_DIRTY_FL ??? */
|
||||||
|
/* FS_COMPRBLK_FL one ore more compress clusters */
|
||||||
|
/* FS_NOCOMPR_FL access raw compressed data */
|
||||||
|
/* FS_ECOMPR_FL compression error */
|
||||||
|
/* FS_BTREE_FL btree format dir */
|
||||||
|
/* FS_INDEX_FL hash indexed directory */
|
||||||
|
/* FS_IMAGIC ??? */
|
||||||
|
|
||||||
|
#if defined(EXT2_JOURNAL_DATA_FL) && !defined(FS_JOURNAL_DATA_FL)
|
||||||
|
# define FS_JOURNAL_DATA_FL EXT2_JOURNAL_DATA_FL
|
||||||
|
#endif
|
||||||
|
#ifdef FS_JOURNAL_DATA_FL
|
||||||
|
/* file data should be journaled, chattr 'j' */
|
||||||
|
const struct optdesc opt_fs_journal_data = { "fs-journal-data", "journal-data", OPT_FS_JOURNAL_DATA, GROUP_REG, PH_FD, TYPE_BOOL, OFUNC_IOCTL_MASK_LONG, FS_IOC_GETFLAGS, FS_IOC_SETFLAGS, FS_JOURNAL_DATA_FL };
|
||||||
|
#endif /* FS_JOURNAL_DATA_FL */
|
||||||
|
|
||||||
|
#if defined(EXT2_NOTAIL_FL) && !defined(FS_NOTAIL_FL)
|
||||||
|
# define FS_NOTAIL_FL EXT2_NOTAIL_FL
|
||||||
|
#endif
|
||||||
|
#ifdef FS_NOTAIL_FL
|
||||||
|
/* file tail should not be merged, chattr 't' */
|
||||||
|
const struct optdesc opt_fs_notail = { "fs-notail", "notail", OPT_FS_NOTAIL, GROUP_REG, PH_FD, TYPE_BOOL, OFUNC_IOCTL_MASK_LONG, FS_IOC_GETFLAGS, FS_IOC_SETFLAGS, FS_NOTAIL_FL };
|
||||||
|
#endif /* FS_NOTAIL_FL */
|
||||||
|
|
||||||
|
#if defined(EXT2_DIRSYNC_FL) && !defined(FS_DIRSYNC_FL)
|
||||||
|
# define FS_DIRSYNC_FL EXT2_DIRSYNC_FL
|
||||||
|
#endif
|
||||||
|
#ifdef FS_DIRSYNC_FL
|
||||||
|
/* synchronous directory modifications, chattr 'D' */
|
||||||
|
const struct optdesc opt_fs_dirsync = { "fs-dirsync", "dirsync", OPT_FS_DIRSYNC, GROUP_REG, PH_FD, TYPE_BOOL, OFUNC_IOCTL_MASK_LONG, FS_IOC_GETFLAGS, FS_IOC_SETFLAGS, FS_DIRSYNC_FL };
|
||||||
|
#endif /* FS_DIRSYNC_FL */
|
||||||
|
|
||||||
|
#if defined(EXT2_TOPDIR_FL) && !defined(FS_TOPDIR_FL)
|
||||||
|
# define FS_TOPDIR_FL EXT2_TOPDIR_FL
|
||||||
|
#endif
|
||||||
|
#ifdef FS_TOPDIR_FL
|
||||||
|
/* top of directory hierarchies, chattr 'T' */
|
||||||
|
const struct optdesc opt_fs_topdir = { "fs-topdir", "topdir", OPT_FS_TOPDIR, GROUP_REG, PH_FD, TYPE_BOOL, OFUNC_IOCTL_MASK_LONG, FS_IOC_GETFLAGS, FS_IOC_SETFLAGS, FS_TOPDIR_FL };
|
||||||
|
#endif /* FS_TOPDIR_FL */
|
||||||
|
|
||||||
|
/* EXTENTS inode uses extents */
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* WITH_FS */
|
||||||
|
|
||||||
|
|
58
xio-fs.h
Normal file
58
xio-fs.h
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
/* source: xio-fs.h */
|
||||||
|
/* Copyright Gerhard Rieger and contributors (see file CHANGES) */
|
||||||
|
/* Published under the GNU General Public License V.2, see file COPYING */
|
||||||
|
|
||||||
|
#ifndef __xio_fs_h_included
|
||||||
|
#define __xio_fs_h_included 1
|
||||||
|
|
||||||
|
#if defined(EXT2_SECRM_FL) && !defined(FS_SECRM_FL)
|
||||||
|
# define FS_SECRM_FL EXT2_SECRM_FL
|
||||||
|
#endif
|
||||||
|
#if defined(EXT2_UNRM_FL) && !defined(FS_UNRM_FL)
|
||||||
|
# define FS_UNRM_FL EXT2_UNRM_FL
|
||||||
|
#endif
|
||||||
|
#if defined(EXT2_COMPR_FL) && !defined(FS_COMPR_FL)
|
||||||
|
# define FS_COMPR_FL EXT2_COMPR_FL
|
||||||
|
#endif
|
||||||
|
#if defined(EXT2_SYNC_FL) && !defined(FS_SYNC_FL)
|
||||||
|
# define FS_SYNC_FL EXT2_SYNC_FL
|
||||||
|
#endif
|
||||||
|
#if defined(EXT2_IMMUTABLE_FL) && !defined(FS_IMMUTABLE_FL)
|
||||||
|
# define FS_IMMUTABLE_FL EXT2_IMMUTABLE_FL
|
||||||
|
#endif
|
||||||
|
#if defined(EXT2_APPEND_FL) && !defined(FS_APPEND_FL)
|
||||||
|
# define FS_APPEND_FL EXT2_APPEND_FL
|
||||||
|
#endif
|
||||||
|
#if defined(EXT2_NODUMP_FL) && !defined(FS_NODUMP_FL)
|
||||||
|
# define FS_NODUMP_FL EXT2_NODUMP_FL
|
||||||
|
#endif
|
||||||
|
#if defined(EXT2_NOATIME_FL) && !defined(FS_NOATIME_FL)
|
||||||
|
# define FS_NOATIME_FL EXT2_NOATIME_FL
|
||||||
|
#endif
|
||||||
|
#if defined(EXT2_JOURNAL_DATA_FL) && !defined(FS_JOURNAL_DATA_FL)
|
||||||
|
# define FS_JOURNAL_DATA_FL EXT2_JOURNAL_DATA_FL
|
||||||
|
#endif
|
||||||
|
#if defined(EXT2_NOTAIL_FL) && !defined(FS_NOTAIL_FL)
|
||||||
|
# define FS_NOTAIL_FL EXT2_NOTAIL_FL
|
||||||
|
#endif
|
||||||
|
#if defined(EXT2_DIRSYNC_FL) && !defined(FS_DIRSYNC_FL)
|
||||||
|
# define FS_DIRSYNC_FL EXT2_DIRSYNC_FL
|
||||||
|
#endif
|
||||||
|
#if defined(EXT2_TOPDIR_FL) && !defined(FS_TOPDIR_FL)
|
||||||
|
# define FS_TOPDIR_FL EXT2_TOPDIR_FL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
extern const struct optdesc opt_fs_secrm;
|
||||||
|
extern const struct optdesc opt_fs_unrm;
|
||||||
|
extern const struct optdesc opt_fs_compr;
|
||||||
|
extern const struct optdesc opt_fs_sync;
|
||||||
|
extern const struct optdesc opt_fs_immutable;
|
||||||
|
extern const struct optdesc opt_fs_append;
|
||||||
|
extern const struct optdesc opt_fs_nodump;
|
||||||
|
extern const struct optdesc opt_fs_noatime;
|
||||||
|
extern const struct optdesc opt_fs_journal_data;
|
||||||
|
extern const struct optdesc opt_fs_notail;
|
||||||
|
extern const struct optdesc opt_fs_dirsync;
|
||||||
|
extern const struct optdesc opt_fs_topdir;
|
||||||
|
|
||||||
|
#endif /* !defined(__xio_fs_h_included) */
|
|
@ -41,7 +41,7 @@
|
||||||
#include "xio-pty.h"
|
#include "xio-pty.h"
|
||||||
#include "xio-openssl.h"
|
#include "xio-openssl.h"
|
||||||
#include "xio-tcpwrap.h"
|
#include "xio-tcpwrap.h"
|
||||||
#include "xio-ext2.h"
|
#include "xio-fs.h"
|
||||||
#include "xio-tun.h"
|
#include "xio-tun.h"
|
||||||
#include "xio-streams.h"
|
#include "xio-streams.h"
|
||||||
|
|
||||||
|
|
170
xioopts.c
170
xioopts.c
|
@ -293,8 +293,8 @@ const struct optname optionnames[] = {
|
||||||
IF_ANY ("close", &opt_end_close)
|
IF_ANY ("close", &opt_end_close)
|
||||||
IF_OPENSSL("cn", &opt_openssl_commonname)
|
IF_OPENSSL("cn", &opt_openssl_commonname)
|
||||||
IF_OPENSSL("commonname", &opt_openssl_commonname)
|
IF_OPENSSL("commonname", &opt_openssl_commonname)
|
||||||
#if WITH_EXT2 && defined(EXT2_COMPR_FL)
|
#if WITH_FS && defined(FS_COMPR_FL)
|
||||||
IF_ANY ("compr", &opt_ext2_compr)
|
IF_ANY ("compr", &opt_fs_compr)
|
||||||
#endif
|
#endif
|
||||||
#if OPENSSL_VERSION_NUMBER >= 0x00908000L && !defined(OPENSSL_NO_COMP)
|
#if OPENSSL_VERSION_NUMBER >= 0x00908000L && !defined(OPENSSL_NO_COMP)
|
||||||
IF_OPENSSL("compress", &opt_openssl_compress)
|
IF_OPENSSL("compress", &opt_openssl_compress)
|
||||||
|
@ -382,8 +382,8 @@ const struct optname optionnames[] = {
|
||||||
#ifdef O_DIRECTORY
|
#ifdef O_DIRECTORY
|
||||||
IF_OPEN ("directory", &opt_o_directory)
|
IF_OPEN ("directory", &opt_o_directory)
|
||||||
#endif
|
#endif
|
||||||
#if WITH_EXT2 && defined(EXT2_DIRSYNC_FL)
|
#if WITH_FS && defined(FS_DIRSYNC_FL)
|
||||||
IF_ANY ("dirsync", &opt_ext2_dirsync)
|
IF_ANY ("dirsync", &opt_fs_dirsync)
|
||||||
#endif
|
#endif
|
||||||
#ifdef VDISCARD
|
#ifdef VDISCARD
|
||||||
IF_TERMIOS("discard", &opt_vdiscard)
|
IF_TERMIOS("discard", &opt_vdiscard)
|
||||||
|
@ -422,77 +422,77 @@ const struct optname optionnames[] = {
|
||||||
IF_SOCKET ("error", &opt_so_error)
|
IF_SOCKET ("error", &opt_so_error)
|
||||||
IF_ANY ("escape", &opt_escape)
|
IF_ANY ("escape", &opt_escape)
|
||||||
IF_OPEN ("excl", &opt_o_excl)
|
IF_OPEN ("excl", &opt_o_excl)
|
||||||
#if WITH_EXT2 && defined(EXT2_APPEND_FL)
|
#if WITH_FS && defined(FS_APPEND_FL)
|
||||||
IF_ANY ("ext2-append", &opt_ext2_append)
|
IF_ANY ("ext2-append", &opt_fs_append)
|
||||||
#endif
|
#endif
|
||||||
#if WITH_EXT2 && defined(EXT2_COMPR_FL)
|
#if WITH_FS && defined(FS_COMPR_FL)
|
||||||
IF_ANY ("ext2-compr", &opt_ext2_compr)
|
IF_ANY ("ext2-compr", &opt_fs_compr)
|
||||||
#endif
|
#endif
|
||||||
#if WITH_EXT2 && defined(EXT2_DIRSYNC_FL)
|
#if WITH_FS && defined(FS_DIRSYNC_FL)
|
||||||
IF_ANY ("ext2-dirsync", &opt_ext2_dirsync)
|
IF_ANY ("ext2-dirsync", &opt_fs_dirsync)
|
||||||
#endif
|
#endif
|
||||||
#if WITH_EXT2 && defined(EXT2_IMMUTABLE_FL)
|
#if WITH_FS && defined(FS_IMMUTABLE_FL)
|
||||||
IF_ANY ("ext2-immutable", &opt_ext2_immutable)
|
IF_ANY ("ext2-immutable", &opt_fs_immutable)
|
||||||
#endif
|
#endif
|
||||||
#if WITH_EXT2 && defined(EXT2_JOURNAL_DATA_FL)
|
#if WITH_FS && defined(FS_JOURNAL_DATA_FL)
|
||||||
IF_ANY ("ext2-journal-data", &opt_ext2_journal_data)
|
IF_ANY ("ext2-journal-data", &opt_fs_journal_data)
|
||||||
#endif
|
#endif
|
||||||
#if WITH_EXT2 && defined(EXT2_NOATIME_FL)
|
#if WITH_FS && defined(FS_NOATIME_FL)
|
||||||
IF_ANY ("ext2-noatime", &opt_ext2_noatime)
|
IF_ANY ("ext2-noatime", &opt_fs_noatime)
|
||||||
#endif
|
#endif
|
||||||
#if WITH_EXT2 && defined(EXT2_NODUMP_FL)
|
#if WITH_FS && defined(FS_NODUMP_FL)
|
||||||
IF_ANY ("ext2-nodump", &opt_ext2_nodump)
|
IF_ANY ("ext2-nodump", &opt_fs_nodump)
|
||||||
#endif
|
#endif
|
||||||
#if WITH_EXT2 && defined(EXT2_NOTAIL_FL)
|
#if WITH_FS && defined(FS_NOTAIL_FL)
|
||||||
IF_ANY ("ext2-notail", &opt_ext2_notail)
|
IF_ANY ("ext2-notail", &opt_fs_notail)
|
||||||
#endif
|
#endif
|
||||||
#if WITH_EXT2 && defined(EXT2_SECRM_FL)
|
#if WITH_FS && defined(FS_SECRM_FL)
|
||||||
IF_ANY ("ext2-secrm", &opt_ext2_secrm)
|
IF_ANY ("ext2-secrm", &opt_fs_secrm)
|
||||||
#endif
|
#endif
|
||||||
#if WITH_EXT2 && defined(EXT2_SYNC_FL)
|
#if WITH_FS && defined(FS_SYNC_FL)
|
||||||
IF_ANY ("ext2-sync", &opt_ext2_sync)
|
IF_ANY ("ext2-sync", &opt_fs_sync)
|
||||||
#endif
|
#endif
|
||||||
#if WITH_EXT2 && defined(EXT2_TOPDIR_FL)
|
#if WITH_FS && defined(FS_TOPDIR_FL)
|
||||||
IF_ANY ("ext2-topdir", &opt_ext2_topdir)
|
IF_ANY ("ext2-topdir", &opt_fs_topdir)
|
||||||
#endif
|
#endif
|
||||||
#if WITH_EXT2 && defined(EXT2_UNRM_FL)
|
#if WITH_FS && defined(FS_UNRM_FL)
|
||||||
IF_ANY ("ext2-unrm", &opt_ext2_unrm)
|
IF_ANY ("ext2-unrm", &opt_fs_unrm)
|
||||||
#endif
|
#endif
|
||||||
#if WITH_EXT2 && defined(EXT2_APPEND_FL)
|
#if WITH_FS && defined(FS_APPEND_FL)
|
||||||
IF_ANY ("ext3-append", &opt_ext2_append)
|
IF_ANY ("ext3-append", &opt_fs_append)
|
||||||
#endif
|
#endif
|
||||||
#if WITH_EXT2 && defined(EXT2_COMPR_FL)
|
#if WITH_FS && defined(FS_COMPR_FL)
|
||||||
IF_ANY ("ext3-compr", &opt_ext2_compr)
|
IF_ANY ("ext3-compr", &opt_fs_compr)
|
||||||
#endif
|
#endif
|
||||||
#if WITH_EXT2 && defined(EXT2_DIRSYNC_FL)
|
#if WITH_FS && defined(FS_DIRSYNC_FL)
|
||||||
IF_ANY ("ext3-dirsync", &opt_ext2_dirsync)
|
IF_ANY ("ext3-dirsync", &opt_fs_dirsync)
|
||||||
#endif
|
#endif
|
||||||
#if WITH_EXT2 && defined(EXT2_IMMUTABLE_FL)
|
#if WITH_FS && defined(FS_IMMUTABLE_FL)
|
||||||
IF_ANY ("ext3-immutable", &opt_ext2_immutable)
|
IF_ANY ("ext3-immutable", &opt_fs_immutable)
|
||||||
#endif
|
#endif
|
||||||
#if WITH_EXT2 && defined(EXT2_JOURNAL_DATA_FL)
|
#if WITH_FS && defined(FS_JOURNAL_DATA_FL)
|
||||||
IF_ANY ("ext3-journal-data", &opt_ext2_journal_data)
|
IF_ANY ("ext3-journal-data", &opt_fs_journal_data)
|
||||||
#endif
|
#endif
|
||||||
#if WITH_EXT2 && defined(EXT2_NOATIME_FL)
|
#if WITH_FS && defined(FS_NOATIME_FL)
|
||||||
IF_ANY ("ext3-noatime", &opt_ext2_noatime)
|
IF_ANY ("ext3-noatime", &opt_fs_noatime)
|
||||||
#endif
|
#endif
|
||||||
#if WITH_EXT2 && defined(EXT2_NODUMP_FL)
|
#if WITH_FS && defined(FS_NODUMP_FL)
|
||||||
IF_ANY ("ext3-nodump", &opt_ext2_nodump)
|
IF_ANY ("ext3-nodump", &opt_fs_nodump)
|
||||||
#endif
|
#endif
|
||||||
#if WITH_EXT2 && defined(EXT2_NOTAIL_FL)
|
#if WITH_FS && defined(FS_NOTAIL_FL)
|
||||||
IF_ANY ("ext3-notail", &opt_ext2_notail)
|
IF_ANY ("ext3-notail", &opt_fs_notail)
|
||||||
#endif
|
#endif
|
||||||
#if WITH_EXT2 && defined(EXT2_SECRM_FL)
|
#if WITH_FS && defined(FS_SECRM_FL)
|
||||||
IF_ANY ("ext3-secrm", &opt_ext2_secrm)
|
IF_ANY ("ext3-secrm", &opt_fs_secrm)
|
||||||
#endif
|
#endif
|
||||||
#if WITH_EXT2 && defined(EXT2_SYNC_FL)
|
#if WITH_FS && defined(FS_SYNC_FL)
|
||||||
IF_ANY ("ext3-sync", &opt_ext2_sync)
|
IF_ANY ("ext3-sync", &opt_fs_sync)
|
||||||
#endif
|
#endif
|
||||||
#if WITH_EXT2 && defined(EXT2_TOPDIR_FL)
|
#if WITH_FS && defined(FS_TOPDIR_FL)
|
||||||
IF_ANY ("ext3-topdir", &opt_ext2_topdir)
|
IF_ANY ("ext3-topdir", &opt_fs_topdir)
|
||||||
#endif
|
#endif
|
||||||
#if WITH_EXT2 && defined(EXT2_UNRM_FL)
|
#if WITH_FS && defined(FS_UNRM_FL)
|
||||||
IF_ANY ("ext3-unrm", &opt_ext2_unrm)
|
IF_ANY ("ext3-unrm", &opt_fs_unrm)
|
||||||
#endif
|
#endif
|
||||||
IF_ANY ("f-setlk", &opt_f_setlk_wr)
|
IF_ANY ("f-setlk", &opt_f_setlk_wr)
|
||||||
IF_ANY ("f-setlk-rd", &opt_f_setlk_rd)
|
IF_ANY ("f-setlk-rd", &opt_f_setlk_rd)
|
||||||
|
@ -534,6 +534,42 @@ const struct optname optionnames[] = {
|
||||||
#ifdef IP_FREEBIND
|
#ifdef IP_FREEBIND
|
||||||
IF_IP ("freebind", &opt_ip_freebind)
|
IF_IP ("freebind", &opt_ip_freebind)
|
||||||
#endif
|
#endif
|
||||||
|
#if WITH_FS && defined(FS_APPEND_FL)
|
||||||
|
IF_ANY ("fs-append", &opt_fs_append)
|
||||||
|
#endif
|
||||||
|
#if WITH_FS && defined(FS_COMPR_FL)
|
||||||
|
IF_ANY ("fs-compr", &opt_fs_compr)
|
||||||
|
#endif
|
||||||
|
#if WITH_FS && defined(FS_DIRSYNC_FL)
|
||||||
|
IF_ANY ("fs-dirsync", &opt_fs_dirsync)
|
||||||
|
#endif
|
||||||
|
#if WITH_FS && defined(FS_IMMUTABLE_FL)
|
||||||
|
IF_ANY ("fs-immutable", &opt_fs_immutable)
|
||||||
|
#endif
|
||||||
|
#if WITH_FS && defined(FS_JOURNAL_DATA_FL)
|
||||||
|
IF_ANY ("fs-journal-data", &opt_fs_journal_data)
|
||||||
|
#endif
|
||||||
|
#if WITH_FS && defined(FS_NOATIME_FL)
|
||||||
|
IF_ANY ("fs-noatime", &opt_fs_noatime)
|
||||||
|
#endif
|
||||||
|
#if WITH_FS && defined(FS_NODUMP_FL)
|
||||||
|
IF_ANY ("fs-nodump", &opt_fs_nodump)
|
||||||
|
#endif
|
||||||
|
#if WITH_FS && defined(FS_NOTAIL_FL)
|
||||||
|
IF_ANY ("fs-notail", &opt_fs_notail)
|
||||||
|
#endif
|
||||||
|
#if WITH_FS && defined(FS_SECRM_FL)
|
||||||
|
IF_ANY ("fs-secrm", &opt_fs_secrm)
|
||||||
|
#endif
|
||||||
|
#if WITH_FS && defined(FS_SYNC_FL)
|
||||||
|
IF_ANY ("fs-sync", &opt_fs_sync)
|
||||||
|
#endif
|
||||||
|
#if WITH_FS && defined(FS_TOPDIR_FL)
|
||||||
|
IF_ANY ("fs-topdir", &opt_fs_topdir)
|
||||||
|
#endif
|
||||||
|
#if WITH_FS && defined(FS_UNRM_FL)
|
||||||
|
IF_ANY ("fs-unrm", &opt_fs_unrm)
|
||||||
|
#endif
|
||||||
#if HAVE_FTRUNCATE64
|
#if HAVE_FTRUNCATE64
|
||||||
IF_ANY ("ftruncate", &opt_ftruncate64)
|
IF_ANY ("ftruncate", &opt_ftruncate64)
|
||||||
#else
|
#else
|
||||||
|
@ -608,8 +644,8 @@ const struct optname optionnames[] = {
|
||||||
IF_IP ("igntc", &opt_res_igntc)
|
IF_IP ("igntc", &opt_res_igntc)
|
||||||
#endif /* HAVE_RESOLV_H */
|
#endif /* HAVE_RESOLV_H */
|
||||||
IF_TERMIOS("imaxbel", &opt_imaxbel)
|
IF_TERMIOS("imaxbel", &opt_imaxbel)
|
||||||
#if WITH_EXT2 && defined(EXT2_IMMUTABLE_FL)
|
#if WITH_FS && defined(FS_IMMUTABLE_FL)
|
||||||
IF_ANY ("immutable", &opt_ext2_immutable)
|
IF_ANY ("immutable", &opt_fs_immutable)
|
||||||
#endif
|
#endif
|
||||||
#ifdef TCP_INFO /* Linux 2.4.0 */
|
#ifdef TCP_INFO /* Linux 2.4.0 */
|
||||||
IF_TCP ("info", &opt_tcp_info)
|
IF_TCP ("info", &opt_tcp_info)
|
||||||
|
@ -803,9 +839,9 @@ const struct optname optionnames[] = {
|
||||||
#ifdef IPV6_JOIN_GROUP
|
#ifdef IPV6_JOIN_GROUP
|
||||||
IF_IP6 ("join-group", &opt_ipv6_join_group)
|
IF_IP6 ("join-group", &opt_ipv6_join_group)
|
||||||
#endif
|
#endif
|
||||||
#if WITH_EXT2 && defined(EXT2_JOURNAL_DATA_FL)
|
#if WITH_FS && defined(FS_JOURNAL_DATA_FL)
|
||||||
IF_ANY ("journal", &opt_ext2_journal_data)
|
IF_ANY ("journal", &opt_fs_journal_data)
|
||||||
IF_ANY ("journal-data", &opt_ext2_journal_data)
|
IF_ANY ("journal-data", &opt_fs_journal_data)
|
||||||
#endif
|
#endif
|
||||||
IF_SOCKET ("keepalive", &opt_so_keepalive)
|
IF_SOCKET ("keepalive", &opt_so_keepalive)
|
||||||
#ifdef TCP_KEEPCNT /* Linux 2.4.0 */
|
#ifdef TCP_KEEPCNT /* Linux 2.4.0 */
|
||||||
|
@ -930,8 +966,8 @@ const struct optname optionnames[] = {
|
||||||
#ifdef TCP_NODELAY
|
#ifdef TCP_NODELAY
|
||||||
IF_TCP ("nodelay", &opt_tcp_nodelay)
|
IF_TCP ("nodelay", &opt_tcp_nodelay)
|
||||||
#endif
|
#endif
|
||||||
#if WITH_EXT2 && defined(EXT2_NODUMP_FL)
|
#if WITH_FS && defined(FS_NODUMP_FL)
|
||||||
IF_ANY ("nodump", &opt_ext2_nodump)
|
IF_ANY ("nodump", &opt_fs_nodump)
|
||||||
#endif
|
#endif
|
||||||
#if HAVE_REGEX_H
|
#if HAVE_REGEX_H
|
||||||
IF_READLINE("noecho", &opt_noecho)
|
IF_READLINE("noecho", &opt_noecho)
|
||||||
|
@ -1310,8 +1346,8 @@ const struct optname optionnames[] = {
|
||||||
#ifdef SCTP_NODELAY
|
#ifdef SCTP_NODELAY
|
||||||
IF_SCTP ("sctp-nodelay", &opt_sctp_nodelay)
|
IF_SCTP ("sctp-nodelay", &opt_sctp_nodelay)
|
||||||
#endif
|
#endif
|
||||||
#if WITH_EXT2 && defined(EXT2_SECRM_FL)
|
#if WITH_FS && defined(FS_SECRM_FL)
|
||||||
IF_ANY ("secrm", &opt_ext2_secrm)
|
IF_ANY ("secrm", &opt_fs_secrm)
|
||||||
#endif
|
#endif
|
||||||
#ifdef SO_SECURITY_AUTHENTICATION
|
#ifdef SO_SECURITY_AUTHENTICATION
|
||||||
IF_SOCKET ("security-authentication", &opt_so_security_authentication)
|
IF_SOCKET ("security-authentication", &opt_so_security_authentication)
|
||||||
|
@ -1510,8 +1546,8 @@ const struct optname optionnames[] = {
|
||||||
IF_PTY ("symbolic-link", &opt_symbolic_link)
|
IF_PTY ("symbolic-link", &opt_symbolic_link)
|
||||||
#ifdef O_SYNC
|
#ifdef O_SYNC
|
||||||
IF_OPEN ("sync", &opt_o_sync)
|
IF_OPEN ("sync", &opt_o_sync)
|
||||||
#elif EXT2_SYNC_FL
|
#elif FS_SYNC_FL
|
||||||
IF_ANY ("sync", &opt_ext2_sync)
|
IF_ANY ("sync", &opt_fs_sync)
|
||||||
#endif
|
#endif
|
||||||
#ifdef TCP_SYNCNT
|
#ifdef TCP_SYNCNT
|
||||||
IF_TCP ("syncnt", &opt_tcp_syncnt)
|
IF_TCP ("syncnt", &opt_tcp_syncnt)
|
||||||
|
@ -1634,8 +1670,8 @@ const struct optname optionnames[] = {
|
||||||
IF_SOCKET ("timestamp", &opt_so_timestamp)
|
IF_SOCKET ("timestamp", &opt_so_timestamp)
|
||||||
#endif
|
#endif
|
||||||
IF_TERMIOS("tiocsctty", &opt_tiocsctty)
|
IF_TERMIOS("tiocsctty", &opt_tiocsctty)
|
||||||
#if WITH_EXT2 && defined(EXT2_TOPDIR_FL)
|
#if WITH_FS && defined(FS_TOPDIR_FL)
|
||||||
IF_ANY ("topdir", &opt_ext2_topdir)
|
IF_ANY ("topdir", &opt_fs_topdir)
|
||||||
#endif
|
#endif
|
||||||
IF_IP ("tos", &opt_ip_tos)
|
IF_IP ("tos", &opt_ip_tos)
|
||||||
IF_TERMIOS("tostop", &opt_tostop)
|
IF_TERMIOS("tostop", &opt_tostop)
|
||||||
|
@ -1664,8 +1700,8 @@ const struct optname optionnames[] = {
|
||||||
IF_NAMED ("unlink-close", &opt_unlink_close)
|
IF_NAMED ("unlink-close", &opt_unlink_close)
|
||||||
IF_NAMED ("unlink-early", &opt_unlink_early)
|
IF_NAMED ("unlink-early", &opt_unlink_early)
|
||||||
IF_NAMED ("unlink-late", &opt_unlink_late)
|
IF_NAMED ("unlink-late", &opt_unlink_late)
|
||||||
#if WITH_EXT2 && defined(EXT2_UNRM_FL)
|
#if WITH_FS && defined(FS_UNRM_FL)
|
||||||
IF_ANY ("unrm", &opt_ext2_unrm)
|
IF_ANY ("unrm", &opt_fs_unrm)
|
||||||
#endif
|
#endif
|
||||||
IF_TUN ("up", &opt_iff_up)
|
IF_TUN ("up", &opt_iff_up)
|
||||||
#ifdef SO_USE_IFBUFS
|
#ifdef SO_USE_IFBUFS
|
||||||
|
|
24
xioopts.h
24
xioopts.h
|
@ -275,18 +275,6 @@ enum e_optcode {
|
||||||
#endif
|
#endif
|
||||||
OPT_END_CLOSE, /* xfd.stream.howtoend = END_CLOSE */
|
OPT_END_CLOSE, /* xfd.stream.howtoend = END_CLOSE */
|
||||||
OPT_ESCAPE,
|
OPT_ESCAPE,
|
||||||
OPT_EXT2_SECRM,
|
|
||||||
OPT_EXT2_UNRM,
|
|
||||||
OPT_EXT2_COMPR,
|
|
||||||
OPT_EXT2_SYNC,
|
|
||||||
OPT_EXT2_IMMUTABLE,
|
|
||||||
OPT_EXT2_APPEND,
|
|
||||||
OPT_EXT2_NODUMP,
|
|
||||||
OPT_EXT2_NOATIME,
|
|
||||||
OPT_EXT2_JOURNAL_DATA,
|
|
||||||
OPT_EXT2_NOTAIL,
|
|
||||||
OPT_EXT2_DIRSYNC,
|
|
||||||
OPT_EXT2_TOPDIR,
|
|
||||||
OPT_FDIN,
|
OPT_FDIN,
|
||||||
OPT_FDOUT,
|
OPT_FDOUT,
|
||||||
#ifdef FFDLY
|
#ifdef FFDLY
|
||||||
|
@ -309,6 +297,18 @@ enum e_optcode {
|
||||||
/*0 OPT_FORCE,*/
|
/*0 OPT_FORCE,*/
|
||||||
OPT_FOREVER,
|
OPT_FOREVER,
|
||||||
OPT_FORK,
|
OPT_FORK,
|
||||||
|
OPT_FS_APPEND,
|
||||||
|
OPT_FS_COMPR,
|
||||||
|
OPT_FS_DIRSYNC,
|
||||||
|
OPT_FS_IMMUTABLE,
|
||||||
|
OPT_FS_JOURNAL_DATA,
|
||||||
|
OPT_FS_NOATIME,
|
||||||
|
OPT_FS_NODUMP,
|
||||||
|
OPT_FS_NOTAIL,
|
||||||
|
OPT_FS_SECRM,
|
||||||
|
OPT_FS_SYNC,
|
||||||
|
OPT_FS_TOPDIR,
|
||||||
|
OPT_FS_UNRM,
|
||||||
OPT_FTRUNCATE32, /* ftruncate() */
|
OPT_FTRUNCATE32, /* ftruncate() */
|
||||||
OPT_FTRUNCATE64, /* ftruncate64() */
|
OPT_FTRUNCATE64, /* ftruncate64() */
|
||||||
OPT_F_SETLKW_RD, /* fcntl with struct flock - read-lock, wait */
|
OPT_F_SETLKW_RD, /* fcntl with struct flock - read-lock, wait */
|
||||||
|
|
Loading…
Reference in a new issue