diff options
author | Carlos Martín Nieto <cmn@dwim.me> | 2014-11-01 16:58:20 +0100 |
---|---|---|
committer | Carlos Martín Nieto <cmn@dwim.me> | 2014-12-10 01:39:09 +0100 |
commit | 02b4c1e2a426404ad7cad8e8a114f7f36bdb8b59 (patch) | |
tree | a25b5c8a9b07d1d75f05e6fec5b1f407ac203de1 /src/netops.c | |
parent | 468d7b11f9642f37a2c54e6fd6d539b223a103aa (diff) | |
download | libgit2-02b4c1e2a426404ad7cad8e8a114f7f36bdb8b59.tar.gz |
Port the TCP transport to the new stream API
Diffstat (limited to 'src/netops.c')
-rw-r--r-- | src/netops.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/netops.c b/src/netops.c index 23e7e9d3c..ab135c46b 100644 --- a/src/netops.c +++ b/src/netops.c @@ -104,6 +104,16 @@ static int ssl_set_error(gitno_ssl *ssl, int error) int gitno_recv(gitno_buffer *buf) { + if (buf->io) { + int ret; + ret = git_stream_read(buf->io, buf->data + buf->offset, buf->len - buf->offset); + if (ret < 0) + return -1; + + buf->offset += ret; + return ret; + } + return buf->recv(buf); } @@ -168,6 +178,15 @@ void gitno_buffer_setup(gitno_socket *socket, gitno_buffer *buf, char *data, siz gitno_buffer_setup_callback(socket, buf, data, len, gitno__recv, NULL); } +void gitno_buffer_setup_fromstream(git_stream *st, gitno_buffer *buf, char *data, size_t len) +{ + memset(data, 0x0, len); + buf->data = data; + buf->len = len; + buf->offset = 0; + buf->io = st; +} + /* Consume up to ptr and move the rest of the buffer to the beginning */ void gitno_consume(gitno_buffer *buf, const char *ptr) { |