Age | Commit message (Collapse) | Author |
|
This reverts commit bd8f6106d44a58c261920eef72842bb3bc5a4968.
PLUS a little change in epmd_srv.c:750 ("4" -> "replylen")
that was part of e2cf4a8a4b03b9f430ba228276c3b2629159e832
by mistake.
|
|
* Increase distribution version from 5 to 6
* Introduce new ALIVE2_X_RESP with 32-bit creation
as reply to ALIVE2_REQ when sender dist version >= 6
* Still reply old ALIVE2_RESP with tiny creation 1..3
if sender dist version < 6.
|
|
* henrik/update-copyrightyear:
update copyright-year
|
|
|
|
|
|
|
|
|
|
Allow IPv6 nodes to register with and query epmd. On systems with
IPv6 support:
* epmd listens on both the IPv4 and IPv6 ANY or loopback sockets
* the epmd cli client connects to epmd over the IPv6 loopback
* distributed nodes started with "-proto_dist inet6_tcp" will register
with epmd over IPv6
To work on IPv6 capable systems that have IPv6 support disabled,
epmd ignores errors opening the socket if the protocol is not
supported. Similarly, the epmd client will fall back to IPv4 if the IPv6
socket is not available.
Update the minimum supported version of Windows to Windows Vista to
support IPv6.
|
|
The OSE port is no longer supported and this commit removed it
and any changes related to it. The things that were general
improvements have been left in the code.
|
|
|
|
Don't use both HAVE_SYSTEMD_DAEMON and HAVE_SYSTEMD_SD_DAEMON - use only
the former one and remove the latter one entirely.
Signed-off-by: Peter Lemenkov <[email protected]>
|
|
* matwey/systemd/OTP-11829:
Add systemd socket activation for epmd.
Conflicts:
erts/epmd/src/epmd_int.h
Extra ticket: OTP-11828
|
|
This port has support for both non-smp and smp.
It contains a new way to do io checking in which erts_poll_wait
receives the payload of the polled entity. This has implications
for all linked-in drivers.
|
|
Check for systemd libraries and headers in confgiure.
Add -systemd option enabling waiting for sockets from systemd.
|
|
config.h defines HAVE_SYSLOG_H whereas the sources are looking for
NO_SYSLOG to be undefined. As the logic of "if feature is available"
makes more sense than "if feature is not unavailable", I opted for the
config.h define.
|
|
|
|
|
|
|
|
The first argument g->max_conn to select() in epmd_srv.c seems to be
wrong as it excludes the listening socket(s). Instead we keep track of
the highest fd seen.
However I still don't understand why select() started to fail for
vxworks with R14B03 when the feature of more than one listening socket
was introduced. The default is still 1 listening socket (num_sockets=1),
which would make the first argument to select() unchanged.
|
|
The IP address(es) epmd binds to can now be specified by the user,
either via epmd's new "-address" option or (if that's not used) by
setting the environment variable ERL_EPMD_ADDRESS. Multiple addresses
may be specified using a comma-separated list. If the loopback address
is not in this list, it will be added implicitly, so that the daemon can
be queried by an interactive epmd process.
|
|
Use erts_(v)snprintf to ensure no buffer overruns in debug printouts.
Disallow everything except port and name requests from remote nodes.
Disallow kill command even from localhost if alive nodes exist.
-relaxed_command_check when starting epmd returns the possibility to
kill this epmd when nodes are alive (from localhost).
Disallow stop command completely except if -relaxed_command_check is given
when epmd was started.
Environment variable ERL_EPMD_RELAXED_COMMAND_CHECK can be set to always get
-relaxed_command_check.
|
|
|
|
Check errno if either select() or accept() returns an error and exit.
This prevents epmd from looping and taking up 100% CPU.
|
|
|
|
Modify IPv6 variants of SET_ADDR_LOOPBACK and SET_ADDR_ANY to use
in6addr_loopback and in6addr_any.
|
|
* kj/epmd-port2resp-trunc-extra:
Handle "extra" field according to specs in ALIVE2_REQ and PORT2_RESP.
OTP-8361 EPMD now correctly handles the extra data field which can be
given in the ALIVE2_REQ request and retrieved in the PORT2_RESP
response. (Thanks to Klas Johansson.)
|
|
Don't let the length field pollute the value of the "extra" field in
ALIVE2_REQ. Extra was read, starting at the second byte of the two
byte length field, which meant that it was included in the result and
the last byte of the value was skipped:
if "extra" is <<1, 2>>, return <<0, 2, 1, 2>> not <<0, 2, 2, 1>>
Increment the offset correctly when sending PORT2_RESP, in order to
make sure the "extra" field won't be truncated:
if "extra" is <<>>, return <<0, 0>> not <<0>>
if "extra" is <<1, 2>>, return <<0, 2, 1, 2>> not <<0, 2, 1>>
Allow null characters in "extra".
|
|
|