| commit | a870486d56be37d552066ca87fa1aa871db54140 | [log] [tgz] |
|---|---|---|
| author | Vernon Mauery <vernon.mauery@linux.intel.com> | Tue Dec 18 15:57:06 2018 -0800 |
| committer | Vernon Mauery <vernon.mauery@linux.intel.com> | Wed Jan 09 19:07:38 2019 +0000 |
| tree | 349a91fe8a76d8f54447774b6cce032a06e4d651 | |
| parent | f6150403cc5ff5fc69d5f9dca4d305c4aaac933e [diff] |
bmcweb: remove boost::asio::local::stream_protocol::endpoint hack
With the obmc-console-server binding to the correct socket, this is not
needed.
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: I2b19d0b9aa8e8ded9162890503c46cad95a6c7b6
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
This component attempts to be a "do everything" embedded webserver for openbmc.
At this time, the webserver implements a few interfaces:
BMCWeb is configured by setting -D flags that correspond to options in bmcweb/CMakeLists.txt and then compiling. For example, cmake -DBMCWEB_ENABLE_KVM=NO ... followed by make. The option names become C++ preprocessor symbols that control which code is compiled into the program.
When BMCWeb starts running, it reads persistent configuration data (such as UUID and session data) from a local file. If this is not usable, it generates a new configuration.
When BMCWeb SSL support is enabled and a usable certificate is not found, it will generate a self-sign a certificate before launching the server. The keys are generated by the prime256v1 algorithm. The certificate
C=US, O=Intel BMC, CN=testhost,SHA-256 algorithm.The crow project has had a number of additions to make it more useful for use in the OpenBmc Project. A non-exhaustive list is below. At the time of this writing, the crow project is not accepting patches, so for the time being crow will simply be checked in as is.