[SCM] Socket Wrapper Repository - branch master updated
Andreas Schneider
asn at samba.org
Wed Feb 3 10:53:28 UTC 2021
The branch, master has been updated
via cd51d80 Bump version to 1.3.0
via e89968d doc: Add website to manpage
via b1d4e2d doc: Define doctype for manpage
via 2c3a0b5 doc: Rename socket_wrapper.1.txt to socket_wrapper.1.adoc
from f69ed59 swrap: add basic support for fd-passing via SCM_RIGHTS
https://git.samba.org/?p=socket_wrapper.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit cd51d80946cdc938cea905b2242144f08ef2fec7
Author: Andreas Schneider <asn at samba.org>
Date: Tue Feb 2 10:33:37 2021 +0100
Bump version to 1.3.0
Signed-off-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit e89968d2bef7b142462262f43c2ea7024a9ef8ab
Author: Andreas Schneider <asn at samba.org>
Date: Tue Feb 2 10:30:04 2021 +0100
doc: Add website to manpage
Signed-off-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit b1d4e2d3a0450faa574e0466aa56d2d4788089db
Author: Andreas Schneider <asn at samba.org>
Date: Tue Feb 2 10:28:59 2021 +0100
doc: Define doctype for manpage
Signed-off-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit 2c3a0b5273e987cd582c0620e3cf2555d9ab8734
Author: Andreas Schneider <asn at samba.org>
Date: Tue Feb 2 10:26:07 2021 +0100
doc: Rename socket_wrapper.1.txt to socket_wrapper.1.adoc
Signed-off-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
-----------------------------------------------------------------------
Summary of changes:
CHANGELOG | 5 +
CMakeLists.txt | 6 +-
doc/README | 6 +-
doc/socket_wrapper.1 | 266 ++++++++++++---------
...{socket_wrapper.1.txt => socket_wrapper.1.adoc} | 6 +
5 files changed, 166 insertions(+), 123 deletions(-)
rename doc/{socket_wrapper.1.txt => socket_wrapper.1.adoc} (98%)
Changeset truncated at 500 lines:
diff --git a/CHANGELOG b/CHANGELOG
index 3e89c08..e0f7dd4 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,11 @@
ChangeLog
==========
+version 1.3.0 (released 2021-02-03)
+ * Added support for fd-passing via unix sockets
+ * Added (de)contructor support on AIX with pragma init/finish
+ * Fixed mutex fork handling
+
version 1.2.5 (released 2020-06-22)
* Added basic support for TCP_INFO and SIOCOUTQ/TIOCOUTQ/FIONWRITE
* Add SOCKET_WRAPPER_DIR_ALLOW_ORIG and abort() early if
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6b1643c..d924cf5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -11,7 +11,7 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules")
include(DefineCMakeDefaults)
include(DefineCompilerFlags)
-project(socket_wrapper VERSION 1.2.5 LANGUAGES C)
+project(socket_wrapper VERSION 1.3.0 LANGUAGES C)
# global needed variables
set(APPLICATION_NAME ${PROJECT_NAME})
@@ -24,8 +24,8 @@ set(APPLICATION_NAME ${PROJECT_NAME})
# If the source code was changed, but there were no interface changes:
# Increment PATCH.
set(LIBRARY_VERSION_MAJOR 0)
-set(LIBRARY_VERSION_MINOR 1)
-set(LIBRARY_VERSION_PATCH 15)
+set(LIBRARY_VERSION_MINOR 2)
+set(LIBRARY_VERSION_PATCH 0)
set(LIBRARY_VERSION "${LIBRARY_VERSION_MAJOR}.${LIBRARY_VERSION_MINOR}.${LIBRARY_VERSION_PATCH}")
set(LIBRARY_SOVERSION ${LIBRARY_VERSION_MAJOR})
diff --git a/doc/README b/doc/README
index dbe07f7..6f43236 100644
--- a/doc/README
+++ b/doc/README
@@ -1,3 +1,7 @@
The manpage is written with asciidoc. To generate the manpage use:
-a2x --doctype manpage --format manpage doc/socket_wrapper.1.txt
+ asciidoctor -b manpage doc/socket_wrapper.1.adoc
+
+or
+
+ a2x --format manpage doc/socket_wrapper.1.adoc
diff --git a/doc/socket_wrapper.1 b/doc/socket_wrapper.1
index 3bd171e..0272c63 100644
--- a/doc/socket_wrapper.1
+++ b/doc/socket_wrapper.1
@@ -1,50 +1,53 @@
'\" t
.\" Title: socket_wrapper
.\" Author: Samba Team
-.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
-.\" Date: 2021-02-01
+.\" Generator: Asciidoctor 2.0.12
+.\" Date: 2021-02-02
.\" Manual: \ \&
.\" Source: \ \&
.\" Language: English
.\"
-.TH "SOCKET_WRAPPER" "1" "2021\-02\-01" "\ \&" "\ \&"
-.\" -----------------------------------------------------------------
-.\" * Define some portability stuff
-.\" -----------------------------------------------------------------
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.\" http://bugs.debian.org/507673
-.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.TH "SOCKET_WRAPPER" "1" "2021-02-02" "\ \&" "\ \&"
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
-.\" -----------------------------------------------------------------
-.\" * set default formatting
-.\" -----------------------------------------------------------------
-.\" disable hyphenation
+.ss \n[.ss] 0
.nh
-.\" disable justification (adjust text to left margin only)
.ad l
-.\" -----------------------------------------------------------------
-.\" * MAIN CONTENT STARTS HERE *
-.\" -----------------------------------------------------------------
+.de URL
+\fI\\$2\fP <\\$1>\\$3
+..
+.als MTO URL
+.if \n[.g] \{\
+. mso www.tmac
+. am URL
+. ad l
+. .
+. am MTO
+. ad l
+. .
+. LINKSTYLE blue R < >
+.\}
.SH "NAME"
-socket_wrapper \- A library passing all socket communications through unix sockets\&.
+socket_wrapper \- A library passing all socket communications through unix sockets.
.SH "SYNOPSIS"
.sp
-LD_PRELOAD=libsocket_wrapper\&.so SOCKET_WRAPPER_DIR=/tmp/tmp\&.bQRELqDrhM SOCKET_WRAPPER_DEFAULT_IFACE=10 \fB\&./myapplication\fR
+LD_PRELOAD=libsocket_wrapper.so SOCKET_WRAPPER_DIR=/tmp/tmp.bQRELqDrhM SOCKET_WRAPPER_DEFAULT_IFACE=10 \fB./myapplication\fP
.SH "DESCRIPTION"
.sp
-socket_wrapper aims to help client/server software development teams willing to gain full functional test coverage\&. It makes possible to run several instances of the full software stack on the same machine and perform locally functional testing of complex network configurations\&.
+socket_wrapper aims to help client/server software development teams willing to
+gain full functional test coverage. It makes possible to run several instances
+of the full software stack on the same machine and perform locally functional
+testing of complex network configurations.
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
-.sp -1
-.IP \(bu 2.3
+. sp -1
+. IP \(bu 2.3
.\}
-Redirects all network communication to happen over Unix sockets\&.
+Redirects all network communication to happen over Unix sockets.
.RE
.sp
.RS 4
@@ -52,10 +55,10 @@ Redirects all network communication to happen over Unix sockets\&.
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
-.sp -1
-.IP \(bu 2.3
+. sp -1
+. IP \(bu 2.3
.\}
-Support for IPv4 and IPv6 socket and addressing emulation\&.
+Support for IPv4 and IPv6 socket and addressing emulation.
.RE
.sp
.RS 4
@@ -63,10 +66,10 @@ Support for IPv4 and IPv6 socket and addressing emulation\&.
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
-.sp -1
-.IP \(bu 2.3
+. sp -1
+. IP \(bu 2.3
.\}
-Ability to capture network traffic in pcap format\&.
+Ability to capture network traffic in pcap format.
.RE
.sp
.RS 4
@@ -74,58 +77,85 @@ Ability to capture network traffic in pcap format\&.
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
-.sp -1
-.IP \(bu 2.3
+. sp -1
+. IP \(bu 2.3
.\}
-Passing IP sockets (up to 6) via SCM_RIGHTS is supported, but pcap support only works reliable if the socket is used by a single process at a time\&.
+Passing IP sockets (up to 6) via SCM_RIGHTS is supported,
+but pcap support only works reliable if the socket is used
+by a single process at a time.
.RE
.SH "ENVIRONMENT VARIABLES"
-.PP
-\fBSOCKET_WRAPPER_DIR\fR
+.sp
+\fBSOCKET_WRAPPER_DIR\fP
.RS 4
-The user defines a directory where to put all the unix sockets using the environment variable "SOCKET_WRAPPER_DIR=/path/to/socket_dir"\&. When a server opens a port or a client wants to connect, socket_wrapper will translate IP addresses to a special socket_wrapper name and look for the relevant Unix socket in the SOCKET_WRAPPER_DIR\&.
+The user defines a directory where to put all the unix sockets using the
+environment variable "SOCKET_WRAPPER_DIR=/path/to/socket_dir". When a server
+opens a port or a client wants to connect, socket_wrapper will translate IP
+addresses to a special socket_wrapper name and look for the relevant Unix
+socket in the SOCKET_WRAPPER_DIR.
.RE
-.PP
-\fBSOCKET_WRAPPER_IPV4_NETWORK\fR
+.sp
+\fBSOCKET_WRAPPER_IPV4_NETWORK\fP
.RS 4
-By default the loopback IPv4 network "127\&.0\&.0\&.0/8" and the "127\&.0\&.0\&.x" can be used\&. In order to make more realistic testing possible it is possible to use the "10\&.0\&.0\&.0/8" IPv4 network instead\&. But note within "10\&.0\&.0\&.0/8" only "10\&.53\&.57\&.<ID>" can be used, but the broadcast address is "10\&.255\&.255\&.255"\&. The following two value are allowed: SOCKET_WRAPPER_IPV4_NETWORK="127\&.0\&.0\&.0" (the default) and SOCKET_WRAPPER_IPV4_NETWORK="10\&.53\&.57\&.0"\&.
+By default the loopback IPv4 network "127.0.0.0/8" and the
+"127.0.0.x" can be used. In order to make more realistic testing
+possible it is possible to use the "10.0.0.0/8" IPv4 network instead.
+But note within "10.0.0.0/8" only "10.53.57.<ID>" can be used,
+but the broadcast address is "10.255.255.255".
+The following two value are allowed:
+SOCKET_WRAPPER_IPV4_NETWORK="127.0.0.0" (the default) and
+SOCKET_WRAPPER_IPV4_NETWORK="10.53.57.0".
.RE
-.PP
-\fBSOCKET_WRAPPER_DEFAULT_IFACE\fR
+.sp
+\fBSOCKET_WRAPPER_DEFAULT_IFACE\fP
.RS 4
-Additionally, the default interface to be used by an application is defined with "SOCKET_WRAPPER_DEFAULT_IFACE=<ID>" where the valid range for <ID> starts with 1 (the default) and ends with 64\&. This is analogous to use the IPv4 addresses "127\&.0\&.0\&.<ID>"/"10\&.53\&.57\&.<ID>" or IPv6 addresses "fd00::5357:5f<IDx>" (where <IDx> is a hexadecimal presentation of <ID>)\&. You should always set the default interface\&. If you listen on INADDR_ANY then it will use the default interface to listen on\&.
+Additionally, the default interface to be used by an application is defined with
+"SOCKET_WRAPPER_DEFAULT_IFACE=<ID>" where the valid range for <ID> starts with 1
+(the default) and ends with 64. This is analogous to use the IPv4 addresses
+"127.0.0.<ID>"/"10.53.57.<ID>" or IPv6 addresses "fd00::5357:5f<IDx>" (where
+<IDx> is a hexadecimal presentation of <ID>). You should always set the default
+interface. If you listen on INADDR_ANY then it will use the default interface to
+listen on.
.RE
-.PP
-\fBSOCKET_WRAPPER_PCAP_FILE\fR
+.sp
+\fBSOCKET_WRAPPER_PCAP_FILE\fP
.RS 4
-When debugging, it is often interesting to investigate the network traffic between the client and server within your application\&. If you define SOCKET_WRAPPER_PCAP_FILE=/path/to/file\&.pcap, socket_wrapper will dump all your network traffic to the specified file\&. After the test has been finished you\(cqre able to open the file for example with Wireshark\&.
+When debugging, it is often interesting to investigate the network traffic
+between the client and server within your application. If you define
+SOCKET_WRAPPER_PCAP_FILE=/path/to/file.pcap, socket_wrapper will dump all your
+network traffic to the specified file. After the test has been finished you\(cqre
+able to open the file for example with Wireshark.
.RE
-.PP
-\fBSOCKET_WRAPPER_MTU\fR
+.sp
+\fBSOCKET_WRAPPER_MTU\fP
.RS 4
-With this variable you can change the MTU size\&. However we do not recomment to do that as the default size of 1500 byte is best for formatting PCAP files\&.
+With this variable you can change the MTU size. However we do not recomment to
+do that as the default size of 1500 byte is best for formatting PCAP files.
.RE
.sp
-The minimum value you can set is 512 and the maximum 32768\&.
-.PP
-\fBSOCKET_WRAPPER_MAX_SOCKETS\fR
+The minimum value you can set is 512 and the maximum 32768.
+.sp
+\fBSOCKET_WRAPPER_MAX_SOCKETS\fP
.RS 4
-This variable can be used to set the maximum number of sockets to be used by an application\&.
+This variable can be used to set the maximum number of sockets to be used by
+an application.
.RE
.sp
-The default value is set to 65535 and the maximum 256000\&.
-.PP
-\fBSOCKET_WRAPPER_DEBUGLEVEL\fR
+The default value is set to 65535 and the maximum 256000.
+.sp
+\fBSOCKET_WRAPPER_DEBUGLEVEL\fP
.RS 4
-If you need to see what is going on in socket_wrapper itself or try to find a bug, you can enable logging support in socket_wrapper if you built it with debug symbols\&.
+If you need to see what is going on in socket_wrapper itself or try to find a
+bug, you can enable logging support in socket_wrapper if you built it with
+debug symbols.
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
-.sp -1
-.IP \(bu 2.3
+. sp -1
+. IP \(bu 2.3
.\}
0 = ERROR
.RE
@@ -135,8 +165,8 @@ If you need to see what is going on in socket_wrapper itself or try to find a bu
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
-.sp -1
-.IP \(bu 2.3
+. sp -1
+. IP \(bu 2.3
.\}
1 = WARNING
.RE
@@ -146,8 +176,8 @@ If you need to see what is going on in socket_wrapper itself or try to find a bu
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
-.sp -1
-.IP \(bu 2.3
+. sp -1
+. IP \(bu 2.3
.\}
2 = DEBUG
.RE
@@ -157,87 +187,85 @@ If you need to see what is going on in socket_wrapper itself or try to find a bu
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
-.sp -1
-.IP \(bu 2.3
+. sp -1
+. IP \(bu 2.3
.\}
3 = TRACE
.RE
.RE
-.PP
-\fBSOCKET_WRAPPER_DISABLE_DEEPBIND\fR
+.sp
+\fBSOCKET_WRAPPER_DISABLE_DEEPBIND\fP
.RS 4
-This allows you to disable deep binding in socket_wrapper\&. This is useful for running valgrind tools or sanitizers like (address, undefined, thread)\&.
+This allows you to disable deep binding in socket_wrapper. This is useful for
+running valgrind tools or sanitizers like (address, undefined, thread).
.RE
-.PP
-\fBSOCKET_WRAPPER_DIR_ALLOW_ORIG\fR
+.sp
+\fBSOCKET_WRAPPER_DIR_ALLOW_ORIG\fP
.RS 4
-SOCKET_WRAPPER_DIR is resolved by socket_wrapper using realpath(3)\&. Given that Unix sockets are constructed relative to this directory, the resulting path can sometimes be too long to allow valid socket paths to be constructed due to length restrictions\&. Setting this variable (to any value) allows socket_wrapper to fall back to the original value of SOCKET_WRAPPER_DIR if realpath(3) makes it too long to be usable\&.
+SOCKET_WRAPPER_DIR is resolved by socket_wrapper using realpath(3).
+Given that Unix sockets are constructed relative to this directory,
+the resulting path can sometimes be too long to allow valid socket
+paths to be constructed due to length restrictions. Setting this
+variable (to any value) allows socket_wrapper to fall back to the
+original value of SOCKET_WRAPPER_DIR if realpath(3) makes it too long
+to be usable.
.RE
.SH "EXAMPLE"
.sp
-.if n \{\
-.RS 4
-.\}
+.if n .RS 4
.nf
-# Open a console and create a directory for the unix sockets\&.
+.fam C
+# Open a console and create a directory for the unix sockets.
$ mktemp \-d
-/tmp/tmp\&.bQRELqDrhM
+/tmp/tmp.bQRELqDrhM
+.fam
.fi
-.if n \{\
-.RE
-.\}
+.if n .RE
.sp
-.if n \{\
-.RS 4
-.\}
+.if n .RS 4
.nf
-# Then start nc to listen for network traffic using the temporary directory\&.
-$ LD_PRELOAD=libsocket_wrapper\&.so \e
- SOCKET_WRAPPER_DIR=/tmp/tmp\&.bQRELqDrhM \e
- SOCKET_WRAPPER_DEFAULT_IFACE=10 nc \-v \-l 127\&.0\&.0\&.10 7
+.fam C
+# Then start nc to listen for network traffic using the temporary directory.
+$ LD_PRELOAD=libsocket_wrapper.so \(rs
+ SOCKET_WRAPPER_DIR=/tmp/tmp.bQRELqDrhM \(rs
+ SOCKET_WRAPPER_DEFAULT_IFACE=10 nc \-v \-l 127.0.0.10 7
+.fam
.fi
-.if n \{\
-.RE
-.\}
+.if n .RE
.sp
-.if n \{\
-.RS 4
-.\}
+.if n .RS 4
.nf
-# (If nc, listens on 0\&.0\&.0\&.0 then listener will be open on 127\&.0\&.0\&.10 because
+.fam C
+# (If nc, listens on 0.0.0.0 then listener will be open on 127.0.0.10 because
# it is the default interface)
+.fam
.fi
-.if n \{\
-.RE
-.\}
+.if n .RE
.sp
-.if n \{\
-.RS 4
-.\}
+.if n .RS 4
.nf
-# Now open another console and start \*(Aqnc\*(Aq as a client to connect to the server:
-$ LD_PRELOAD=libsocket_wrapper\&.so \e
- SOCKET_WRAPPER_DIR=/tmp/tmp\&.bQRELqDrhM \e
- SOCKET_WRAPPER_DEFAULT_IFACE=100 nc \-v 127\&.0\&.0\&.10 7
+.fam C
+# Now open another console and start \(aqnc\(aq as a client to connect to the server:
+$ LD_PRELOAD=libsocket_wrapper.so \(rs
+ SOCKET_WRAPPER_DIR=/tmp/tmp.bQRELqDrhM \(rs
+ SOCKET_WRAPPER_DEFAULT_IFACE=100 nc \-v 127.0.0.10 7
+.fam
.fi
-.if n \{\
-.RE
-.\}
+.if n .RE
.sp
-.if n \{\
-.RS 4
-.\}
+.if n .RS 4
.nf
-# (The client will use the address 127\&.0\&.0\&.100 when connecting to the server)
-# Now you can type \*(AqHello!\*(Aq which will be sent to the server and should appear
-# in the console output of the server\&.
+.fam C
+# (The client will use the address 127.0.0.100 when connecting to the server)
+# Now you can type \(aqHello!\(aq which will be sent to the server and should appear
+# in the console output of the server.
+.fam
.fi
-.if n \{\
-.RE
-.\}
+.if n .RE
+.SH "RESOURCES"
+.sp
+\fBProject web site:\fP \c
+.URL "https://cwrap.org" "" ""
.SH "AUTHOR"
-.PP
-\fBSamba Team\fR
-.RS 4
-Author.
-.RE
+.sp
+Samba Team
\ No newline at end of file
diff --git a/doc/socket_wrapper.1.txt b/doc/socket_wrapper.1.adoc
similarity index 98%
rename from doc/socket_wrapper.1.txt
rename to doc/socket_wrapper.1.adoc
index 425b08f..9519fd4 100644
--- a/doc/socket_wrapper.1.txt
+++ b/doc/socket_wrapper.1.adoc
@@ -2,6 +2,7 @@ socket_wrapper(1)
=================
:revdate: 2021-02-01
:author: Samba Team
+:doctype: manpage
NAME
----
@@ -131,3 +132,8 @@ EXAMPLE
# (The client will use the address 127.0.0.100 when connecting to the server)
# Now you can type 'Hello!' which will be sent to the server and should appear
# in the console output of the server.
+
+RESOURCES
+---------
+
+*Project web site:* https://cwrap.org
--
Socket Wrapper Repository
More information about the samba-cvs
mailing list