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.