diff options
author | Aanand Prasad <aanand.prasad@gmail.com> | 2016-07-13 16:52:15 -0400 |
---|---|---|
committer | Aanand Prasad <aanand.prasad@gmail.com> | 2016-07-13 17:08:17 -0400 |
commit | ce2b60ecf6aa56de73ee3b8ab6c67ee10905e0ac (patch) | |
tree | 83afd9265ab42f6d7949ad0602d34b4cde0381d7 | |
parent | 3e2f4a61424c434949a4a080657506ee4eaaa776 (diff) | |
download | docker-py-ce2b60ecf6aa56de73ee3b8ab6c67ee10905e0ac.tar.gz |
Document all socket utility methods
Signed-off-by: Aanand Prasad <aanand.prasad@gmail.com>
-rw-r--r-- | docker/utils/socket.py | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/docker/utils/socket.py b/docker/utils/socket.py index fbbf1e6..47b2320 100644 --- a/docker/utils/socket.py +++ b/docker/utils/socket.py @@ -11,7 +11,9 @@ class SocketError(Exception): def read_socket(socket, n=4096): - """ Code stolen from dockerpty to read the socket """ + """ + Reads at most n bytes from socket + """ recoverable_errors = (errno.EINTR, errno.EDEADLK, errno.EWOULDBLOCK) # wait for data to become available @@ -27,8 +29,12 @@ def read_socket(socket, n=4096): def next_packet_size(socket): - """ Code stolen from dockerpty to get the next packet size """ + """ + Returns the size of the next frame of data waiting to be read from socket, + according to the protocol defined here: + https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/attach-to-a-container + """ try: data = read_data(socket, 8) except SocketError: @@ -39,6 +45,9 @@ def next_packet_size(socket): def read_data(socket, n): + """ + Reads exactly n bytes from socket + """ data = six.binary_type() while len(data) < n: next_data = read_socket(socket, n - len(data)) @@ -49,6 +58,9 @@ def read_data(socket, n): def read_iter(socket): + """ + Returns a generator of frames read from socket + """ n = next_packet_size(socket) while n > 0: yield read_socket(socket, n) |