After master.k.org upgrade, I started seeing these warning messages: transport.c: In function 'get_refs_via_curl': transport.c:458: error: call to '_curl_easy_setopt_err_write_callback' declared with attribute warning: curl_easy_setopt expects a curl_write_callback argument for this option It appears that the header wants to enforce the function signature for fwrite_buffer to be compatible with that of fwrite() or (*curl_write_callback). This patch seems to work the issue around. --- http.c | 13 +++++++------ http.h | 9 +++------ 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/http.c b/http.c index 105dc93..ad14640 100644 --- a/http.c +++ b/http.c @@ -30,10 +30,11 @@ static struct curl_slist *pragma_header; static struct active_request_slot *active_queue_head = NULL; -size_t fread_buffer(void *ptr, size_t eltsize, size_t nmemb, - struct buffer *buffer) +size_t fread_buffer(void *ptr, size_t eltsize, size_t nmemb, void *buffer_) { size_t size = eltsize * nmemb; + struct buffer *buffer = buffer_; + if (size > buffer->buf.len - buffer->posn) size = buffer->buf.len - buffer->posn; memcpy(ptr, buffer->buf.buf + buffer->posn, size); @@ -42,17 +43,17 @@ size_t fread_buffer(void *ptr, size_t eltsize, size_t nmemb, return size; } -size_t fwrite_buffer(const void *ptr, size_t eltsize, - size_t nmemb, struct strbuf *buffer) +size_t fwrite_buffer(const void *ptr, size_t eltsize, size_t nmemb, void *buffer_) { size_t size = eltsize * nmemb; + struct strbuf *buffer = buffer_; + strbuf_add(buffer, ptr, size); data_received++; return size; } -size_t fwrite_null(const void *ptr, size_t eltsize, - size_t nmemb, struct strbuf *buffer) +size_t fwrite_null(const void *ptr, size_t eltsize, size_t nmemb, void *strbuf) { data_received++; return eltsize * nmemb; diff --git a/http.h b/http.h index a04fc6a..905b462 100644 --- a/http.h +++ b/http.h @@ -64,12 +64,9 @@ struct buffer }; /* Curl request read/write callbacks */ -extern size_t fread_buffer(void *ptr, size_t eltsize, size_t nmemb, - struct buffer *buffer); -extern size_t fwrite_buffer(const void *ptr, size_t eltsize, - size_t nmemb, struct strbuf *buffer); -extern size_t fwrite_null(const void *ptr, size_t eltsize, - size_t nmemb, struct strbuf *buffer); +extern size_t fread_buffer(void *ptr, size_t eltsize, size_t nmemb, void *strbuf); +extern size_t fwrite_buffer(const void *ptr, size_t eltsize, size_t nmemb, void *strbuf); +extern size_t fwrite_null(const void *ptr, size_t eltsize, size_t nmemb, void *strbuf); /* Slot lifecycle functions */ extern struct active_request_slot *get_active_slot(void); -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html