Commit 9a5f2118 by Vicent Martí

Merge pull request #1906 from libgit2/cmn/net-cb-errors

transport: let the progress output return an error
parents 1c74686e 5cb13670
......@@ -410,7 +410,7 @@ struct git_remote_callbacks {
* progress side-band will be passed to this function (this is
* the 'counting objects' output.
*/
void (*progress)(const char *str, int len, void *data);
int (*progress)(const char *str, int len, void *data);
/**
* Completion is called when different parts of the download
......
......@@ -170,7 +170,7 @@ typedef enum {
GIT_TRANSPORTFLAGS_NO_CHECK_CERT = 1
} git_transport_flags_t;
typedef void (*git_transport_message_cb)(const char *str, int len, void *data);
typedef int (*git_transport_message_cb)(const char *str, int len, void *data);
typedef struct git_transport git_transport;
......
......@@ -509,7 +509,10 @@ int git_smart__download_pack(
if (pkt->type == GIT_PKT_PROGRESS) {
if (t->progress_cb) {
git_pkt_progress *p = (git_pkt_progress *) pkt;
t->progress_cb(p->data, p->len, t->message_cb_payload);
if (t->progress_cb(p->data, p->len, t->message_cb_payload)) {
giterr_set(GITERR_NET, "The fetch was cancelled by the user");
return GIT_EUSER;
}
}
git__free(pkt);
} else if (pkt->type == GIT_PKT_DATA) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment