Hello,

I am using libcurl on Raspberry-Pi with a C++ Programm to connect to a webservice over https.


In my testcase the libcurl establishes a valid https connection to my webserver,. Then I simply stopped my Apache daemon (not graceful) to simulate a network failure. The drop of the connection was recognized well by libcurl, curl_easy_perform returned a valid error code and my program continued to work as expected. After I restarted my Apache daemon my program tried to reconnect, but doing this it crashed. Crashed means that the program stopped without any error message. I mean the process was not hanging, it has simply terminated and was not running any more.

I also tried to use CURLOPT_FRESH_CONNECT after an error was recognized by libcurl, but it didn't help.


My question: Would a newer version of libcurl solve this problem? Can I do anything within my program to catch the failure and prevent my program to crash?


I am using the following versions:


Package: libcurl4-openssl-dev

Version: 7.26.0-1+wheezy12

Package: openssl

Version: 1.0.1e-2+rvt+deb7u14

Linux raspi20501 3.12.35+ #730 PREEMPT Fri Dec 19 18:31:24 GMT 2014 armv6l GNU/Linux


This is the verbose output from libcurl:


* Connection #0 seems to be dead!

* Closing connection #0

* About to connect() to fmdevsignaldetection port 443 (#0)

* Trying 192.168.1.104...

* connected

* Connected to fmdevsignaldetection (192.168.1.104) port 443 (#0)

* successfully set certificate verify locations:

* CAfile: none

CApath: /etc/ssl/certs

* SSL re-using session ID

* SSL connection using DHE-RSA-AES256-SHA

* Server certificate:

* subject: C=at; ST=Steiermark; L=Graz; O=FactoryMiner e.U.; CN=fmdevsignaldetection

* start date: 2013-09-08 05:07:17 GMT

* expire date: 2023-09-06 05:07:17 GMT

* common name: fmdevsignaldetection (matched)

* issuer: C=at; ST=Steiermark; L=Graz; O=FactoryMiner e.U.; CN=fmdevsignaldetection

* SSL certificate verify result: self signed certificate (18), continuing anyway.

 POST /framework/scripts/app_portal.php HTTP/1.1

User-Agent: signaldetection.service

Host: fmdevsignaldetection

Accept: */*

Cookie: PHPSESSID=[deleted]

Content-Length: 3241

Expect: 100-continue

Content-Type: multipart/form-data; boundary=----------------------------d08b8f8f2e20

* Empty reply from server

* Connection #0 to host fmdevsignaldetection left intact

* Server returned nothing (no headers, no data)


→ *The connection is lost, but the program is still running fine. Libcurl returned a valid errorcode.*


* Connection #0 seems to be dead!

* Closing connection #0

→ *Here the program stops working. It crashed without any error messages...*




Best regards
Mario Reif



--
Dipl.-Ing. Mario Reif, B.Sc.

T: +43 (0)699 1129 1606
M: [email protected]
W: www.factoryminer.com

FACTORYMINER KG
Neubaugasse 34/5, 8020 Graz

Rechtsform: Kommanditgesellschaft
Firmenbuchnummer: 414866 y
Firmenbuchgericht: Landesgericht für ZRS Graz

-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html

Reply via email to