Hi Liviu, On the below topic, I have double checked that call back function is not at called in the case of failure response. This is confirmed by adding some debug statements in write_func(). I have not made any changes with respect to functionality. Only in success case I could able to see the call back called. I could also confirm by seeing the Wireshark traces am getting response body in the case of failure as well.
In our case since call back function is not called, hence no response body is returned. Can you please check in your end whether call back is called in the case when curl_easy_perform fails. Regards, Agalya From: Ramachandran, Agalya (Contractor) Sent: Friday, June 24, 2016 5:03 PM To: OpenSIPS users mailling list <[email protected]> Subject: RE: [OpenSIPS-Users] CURL library with respect to REST_API calls Hi Liviu, I have not changed anything in the write_func(). Also I tried by adding some debug statements. I observed that only in the case of success write_func() is being called and I get the debug statements in my logs. In the case of failure, the callback function is never called. This is what I observe. If you try for failure case, let me know how it worked for you. Regards, Agalya From: [email protected]<mailto:[email protected]> [mailto:[email protected]] On Behalf Of Liviu Chircu Sent: Thursday, June 23, 2016 5:52 AM To: [email protected]<mailto:[email protected]> Subject: Re: [OpenSIPS-Users] CURL library with respect to REST_API calls Hi, Ramachandran! I read the "CURLOPT_WRITEFUNCTION" section [1] one more time, and it really looks like it should pass the body of the reply to the "write_func" callback we register before sending the HTTP PUT, even if we got an error code (3XX or higher). Did you change anything in the "write_func()"? Notice how their docs say that if a proper "len" is not returned, the transfer will be aborted. Apart from that, I have no other ideas for now but to try and fetch the body myself on an error HTTP ret code of a CUROPT_PUT operation, see how (or if) it works for me, and give you more feedback. [1]: https://curl.haxx.se/libcurl/c/CURLOPT_WRITEFUNCTION.html All the best, Liviu Chircu OpenSIPS Developer http://www.opensips-solutions.com On 22.06.2016 20:19, Ramachandran, Agalya (Contractor) wrote: Hi team, Any one has any clue on the below topic? Regards, Agalya From: Ramachandran, Agalya (Contractor) Sent: Monday, June 20, 2016 1:45 PM To: OpenSIPS users mailling list <[email protected]><mailto:[email protected]> Subject: CURL library with respect to REST_API calls Hi team, I have a question regarding curl library behavior with respect to curl_easy_perform API call. Here is the snippet of the code that am using in "rest_put" API call in rest_methods.c file w_curl_easy_setopt(handle, CURLOPT_WRITEFUNCTION, write_func); w_curl_easy_setopt(handle, CURLOPT_WRITEDATA, &res_body); When curl_easy_perform API call is success, I could able to retrieve the result body from the res_body. But in the case of API call failure am not getting any details of the message. But getting only the http response code. Is there a way to get the message details as well in the case where curl_easy_perform API fails? LM_INFO(" Actual result body is %s\n", res_body.s); When I print this, in the case of success, am getting a http response message in detail. But in case of failure, the call back function write_func is not at all called. Why it is so? Please guide me if there is a way to the message details in case of failure too. Regards, Agalya _______________________________________________ Users mailing list [email protected]<mailto:[email protected]> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
_______________________________________________ Users mailing list [email protected] http://lists.opensips.org/cgi-bin/mailman/listinfo/users
