On Fri, Sep 14, 2018 at 01:57:13PM -0700, Geoff Hill wrote: > The imsg_init(3) man page currently doesn't make it clear whether > this library can be used for remote communication. > > The current text reads: > > The imsg functions provide a simple mechanism for communication > between processes using sockets. Each transmitted message is > guaranteed to be presented to the receiving program whole. They > are commonly used in privilege separated processes, where > processes with different rights are required to cooperate. > > It also mentions socketpair(2) later but does not specify whether > this would work over tcp(4) connections. > > Looking at the libutil imsg code, it doesn't look like there's any > htonl(3) or byte order swapping when accessing the sizes, so this was > probably not intended for network use. > > So my questions are: >
not that i know anything about this subject, but according to nicm: > (a) Am I correct in understanding imsg cannot be used to > communicate over networks in an architecture-independent way? > yes > (b) Should the manual page be updated to reflect this reality, > so users can better compare possible IPC mechanisms? > possibly (i did) > (c) Should the library itself be updated to use network byte > order, so it could be used between different architectures > over an established TCP connection? > pass (from me, not nicm) > Simplest possible patch for (b) below. > committed, thanks. jmc > Index: imsg_init.3 > =================================================================== > RCS file: /cvs/src/lib/libutil/imsg_init.3,v > retrieving revision 1.21 > diff -u -p -u -r1.21 imsg_init.3 > --- imsg_init.3 16 Feb 2018 07:42:07 -0000 1.21 > +++ imsg_init.3 14 Sep 2018 20:53:10 -0000 > @@ -106,7 +106,7 @@ > .Sh DESCRIPTION > The > .Nm imsg > -functions provide a simple mechanism for communication between processes > +functions provide a simple mechanism for communication between local > processes > using sockets. > Each transmitted message is guaranteed to be presented to the receiving > program > whole. >
