-) using dupenv_s instead of getenv_s and calling strdup ourselves.
-) few impossible-to-obtain if checks.
-) various signed/unsigned casting.
-) using time_t instead of time32_t
-) checking output of FormatMessage for failures.
-) don't redefine _WIN32_WINNT without undefining it first.
-) fixed msvc's interlocked casting.
-) renamed AddPort to AddListeningPort.
-) added protobuf's third_party includes to search path.
-) added a missing definition for inet_ntop in mingw32.
-) removed useless declarations.
The mappings are a combination of useless, inaccurate, and harmful.
Leave them out until they are helpful and correct.
Fundamental issues:
- If in need of mappings, a user would need HTTP -> gRPC code mappings.
But the docs don't provide that since the mappings are not 1:1.
- There _is no_ gRPC -> HTTP code mapping taking place in gRPC. This
may change in the future, but until then the docs are misleading.
But even given those were resolved, there are additional issues. Two
obvious examples:
- 501 Not Implemented is refering to HTTP methods such as GET and POST
not being implement. That should not be used for gRPC methods not
found (UNIMPLEMENTED).
- 404 Not Found is for when the resource is not found. In gRPC, the
resource is the gRPC method, not the parameters (NOT_FOUND). If there
is a REST conversion layer on top of gRPC, then 404 would be
appropriate, but that just shows that the mapping can not be
canonical.