W dniu 2021-06-20 22:22, Dan Fandrich via curl-library napisaƂ(a):
On Sun, Jun 20, 2021 at 05:34:00PM +0200, Daniel F via curl-library wrote:
I am writing app which will receive updates (in JSON format) from server.
Server uses HTTP chunked transfer encoding. I also use TLS to encrypt
transmission. If I read curl code in lib/http_chunks.c correctly, library
guarantees that contents of multiple chunks is not mixed when callback
registered with CURLOPT_WRITEFUNCTION option is called. However opposite is not true, write callback may be called multiple times for one chunk. This means that I need some extra callback in order to detect chunk boundaries,
but I do not see such callback in the code. I think of two possible
callbacks: one called before first part of a chunk is delivered to the app (it may have chunk size as a param), and another called after last part of chunk is delivered to the app. Any of them would be fine for me. Could you
add it?

HTTP chunking is part of HTTP and should be transparent to the application. It sounds like what you're doing is a layer violation. What is the purpose of
knowing chunking boundaries?
-------------------------------------------------------------------
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.se/mail/etiquette.html

My app needs to watch updates done to some Kubernetes objects. Every update is sent as a new HTTP chunk with JSON object inside. I need to know boundaries to know when I can start parsing received JSON. Currently I do not know this, so JSON parsing would report error if only part of chunk is received. I could ignore this error, assume that chunk is not complete, then later append next part of received data to previous one and try to parse again. This usually would work, except for case when server would send invalid JSON - in such case code would generate parse error again and again. So I look for better way to handle this.
-------------------------------------------------------------------
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.se/mail/etiquette.html

Reply via email to