| commit | fcf8541b87c13d4fe02d1fc4812b7f6df92c8c27 | [log] [tgz] |
|---|---|---|
| author | Vernon Mauery <vernon.mauery@linux.intel.com> | Tue Dec 18 15:16:38 2018 -0800 |
| committer | Vernon Mauery <vernon.mauery@linux.intel.com> | Tue Dec 18 15:16:38 2018 -0800 |
| tree | 18cc5c8135b50eb42f0fe7583ee81e4b571d7e99 | |
| parent | 1864435759305800aeda41fc3e37baceb5762116 [diff] |
obmc-console-server: bind/connect with the correct sockaddr size
Abstract unix sockets start with the nul-charater, but are not nul
terminated. In fact, the nul-character has no meaning in the path.
According to the man page unix(7),
abstract: an abstract socket address is distinguished (from a pathname
socket) by the fact that sun_path[0] is a null byte ('\0').
The socket's address in this namespace is given by the
additional bytes in sun_path that are covered by the
specified length of the address structure. (Null bytes in
the name have no special significance.)
This means that when calling bind/connect, the size of the sockaddr
structure is not sizeof(sockaddr_un), it is sizeof(sockaddr_un) -
sizeof(sun_path) + (path_len)
Change-Id: I6560ba8b2a25a60644873adf66f02a60ded42b1d
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
Note: In addition to a toolchain and autoconf tools, this requires autotools-archive to be installed.
To build this project, run the following shell commands:
./bootstrap.sh
./configure ${CONFIGURE_FLAGS}
make
To fully clean the repository, run:
./bootstrap.sh clean
Running the server requires a serial port (e.g. /dev/ttyS0):
touch obmc-console.conf ./obmc-console-server --config obmc-console.conf ttyS0
To connect to the server, simply run the client:
./obmc-console-client
To disconnect the client, use the standard ~. combination.