list-stat: initialize timer with the current time, not zero
Merge branch 'master' of github.com:reverbrain/elliptics
addr: switched C API to dnet_addr structure

Even more, it accepts array of addresses. This has been made to allow
parallel connect to multiple remote nodes in the subsequent commits.
Neither C++ API nor ABI should be changed.
Added batch connect/listen mechanism.

It is used for bach connect only though. We create array of addresses,
then create multiple sockets and put them all into epoll. Epoll waits
for at most required amount of time and checks all successfully connected
sockets.

This allows to quickly connect multiple nodes and quickly detect that
some sockets can not be connected because of timeouts. This is extremely
useful when some remote servers were shutdown. In this case timeout
drops from number of sockets multiplied by wait timeout just to wait timeout.

Exported new add_remote() method.
Pytests: added group_id check in result entries.
Received state processing should correctly check whether it was able to connect to received address
Merge pull request #488 from shaitan/master

Pytests: added group_id check in result entries address.
cpp: do not throw error if address parsing failed when adding multiple addresses
Merge branch 'master' of github.com:reverbrain/elliptics
Drop unused code
route: switched route reqeust to dnet_trans_alloc_send_state() instead of handmade transaction. Switched route reply processing to dnet_add_state()
server: fixed socket structure leak if socket was not successfully initialized
trans: added comments about dnet_trans_alloc_send_state()
net: only connect to addresses whose sockets are set to -ENOENT when parsing array of dnet_addr_socket structure. It is possible to have -EEXIST there if given address already exist in the route table
route: new batch request completion logic

Completion function stores array of remote addresses when they
are coming from remote node (route reply commands). When transaction
is completed, we add multiple addresses using batch dnet_add_state().

This new operation is a bit more costly - it runs over all addresses,
checks whether they exist in the route table or not, connects to those
addresses which are not yet present in the route table,
sends, receives and processes REVERSE LOOKUP command (bunch of log cleanups there).

Previously route reply parsed reply and used ids received in ROUTE reply command.
It sends REVERSE LOOKUP now. This allows to unify code, drop old functions
and (!) use batch new dnet_add_state() method to connect to multiple nodes in parallel.
Python: Use socket.AF_UNSPEC instead of magic number 0 to

specialize any family in Address.
Copuple of small fixes:
* make Address.__init__ docstring more clear.
* put missing space in into warning message.
Let's use Travis-CI to check every commit
Make travis.sh executable
Add repos from reverbrain.com to install cocaine
Merge pull request #489 from noxiouz/fix_python_address

python: A tiny improvement in route.Address.