diff options
Diffstat (limited to 'src/protocol.c')
-rw-r--r-- | src/protocol.c | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/src/protocol.c b/src/protocol.c deleted file mode 100644 index 6b3861796..000000000 --- a/src/protocol.c +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (C) 2009-2012 the libgit2 contributors - * - * This file is part of libgit2, distributed under the GNU GPL v2 with - * a Linking Exception. For full terms see the included COPYING file. - */ -#include "common.h" -#include "protocol.h" -#include "pkt.h" -#include "buffer.h" - -int git_protocol_store_refs(git_protocol *p, const char *data, size_t len) -{ - git_buf *buf = &p->buf; - git_vector *refs = p->refs; - int error; - const char *line_end, *ptr; - - if (len == 0) { /* EOF */ - if (git_buf_len(buf) != 0) { - giterr_set(GITERR_NET, "Unexpected EOF"); - return p->error = -1; - } else { - return 0; - } - } - - git_buf_put(buf, data, len); - ptr = buf->ptr; - while (1) { - git_pkt *pkt; - - if (git_buf_len(buf) == 0) - return 0; - - error = git_pkt_parse_line(&pkt, ptr, &line_end, git_buf_len(buf)); - if (error == GIT_EBUFS) - return 0; /* Ask for more */ - if (error < 0) - return p->error = -1; - - git_buf_consume(buf, line_end); - - if (pkt->type == GIT_PKT_ERR) { - giterr_set(GITERR_NET, "Remote error: %s", ((git_pkt_err *)pkt)->error); - git__free(pkt); - return -1; - } - - if (git_vector_insert(refs, pkt) < 0) - return p->error = -1; - - if (pkt->type == GIT_PKT_FLUSH) - p->flush = 1; - } - - return 0; -} |