The documentation says "To specify UNIX domain socket, the server address must contain a slash". The [code](https://github.com/lericson/pylibmc/blob/4633ad70070a70be9727e93e285b3f7e799af6e5/src/pylibmc/client.py#L16) says `spec.startswith("/")`. One of these is wrong. I'm guessing it's the documentation, hence this PR.
goto unpack_error *before* trying to use key_obj.
PyDict_SetItem does *not* steal references to items that it's given.
Otherwise, debug builds of Python dump core with python: Modules/gcmodule.c:379: visit_decref: Assertion `((gc)->gc.gc_refs >> (1)) != 0' failed. (manually word-wrapped)
Make the behavior a bit clearer by only using two keys, removing the call to incr_multi, and using more descriptive key names. It's too easy to miss the `b` string prefix when the key name is also `b`. Additionally, remove the broken call to sorted(): >>> sorted(['1', b'2']) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unorderable types: bytes() < str()
If something goes horribly wrong and we can't iterate over the keys provided to one of the "multi" calls, we previously returned NULL for the key translation mapping. This would then cause a segfault when we try to use this object later. Now, just return the valid (but empty) `dict`.