@@ -43,8 +43,8 @@ check_available_memory(){
4343 if [ " $available " -ge " $required " ]; then
4444 echo " 0"
4545 else
46- [ " $VERBOSE_MODE " -eq " 1" ] && logger -s " Not enough memory available" \
47- -p daemon.err
46+ [ " $VERBOSE_MODE " -eq " 1" ] && logger -s " Not enough memory available, skipping collect data. " \
47+ -p daemon.warn
4848 echo " 1"
4949 fi
5050}
@@ -84,7 +84,7 @@ set_url_and_curl(){
8484
8585 URL=" $BASE_URL /api/v1/monitoring/device/$UUID /?key=$KEY "
8686
87- CURL_COMMAND=" curl -s -w " %{http_code}" "
87+ CURL_COMMAND=" curl -s -w " %{http_code}" --output " $TMP_DIR " /response.txt "
8888 [ " $VERIFY_SSL " -eq " 0" ] && CURL_COMMAND=" $CURL_COMMAND -k"
8989 [ " $VERBOSE_MODE " -eq " 1" ] && CURL_COMMAND=" $CURL_COMMAND -v"
9090 MAX_RETRIES=${MAX_RETRIES:- 5}
@@ -135,6 +135,10 @@ send_data() {
135135 trap " " USR1
136136 basefilename=${file##*/ }
137137 filename=${basefilename% .* }
138+ # remove previous saved response if exist
139+ if [ " $filename " = " response" ]; then
140+ rm " $RESPONSE_FILE " 2> /dev/null && continue
141+ fi
138142 # extra zeroes are added for nanoseconds precision
139143 url=" $URL &time=$filename .000000"
140144 # retry sending data in case of failure
@@ -145,12 +149,15 @@ send_data() {
145149 while true
146150 do
147151 if [ " $failures " -eq " $MAX_RETRIES " ]; then
152+ [ -f " $RESPONSE_FILE " ] && error_message=" \" $( cat " $RESPONSE_FILE " ) \" " || error_message=' "".'
148153 if [ " $VERBOSE_MODE " -eq " 1" ]; then
149- logger -s " Data not sent successfully. Response received is $response_code " \
154+ logger -s " Data not sent successfully. Response code is \" $response_code \" ." \
155+ " Error message is $error_message " \
150156 -p daemon.err
151157 elif [ " $FAILING " -eq " 0" ]; then
152158 FAILING=1
153- logger -s " Data not sent successfully. Response received is $response_code " \
159+ logger -s " Data not sent successfully. Response code is \" $response_code \" ." \
160+ " Error message is $error_message " \
154161 " Run with verbose mode to find more." \
155162 -t openwisp_monitoring \
156163 -p daemon.err
@@ -169,9 +176,10 @@ send_data() {
169176 -t openwisp_monitoring \
170177 -p daemon.info
171178 FAILING=0
179+ [ -f " $RESPONSE_FILE " ] && rm " $RESPONSE_FILE "
172180 fi
173181 # remove saved data
174- rm " $file "
182+ [ -f " $file " ] && rm " $file "
175183 break
176184 else
177185 timeout=$(( timeout* 2 ))
@@ -199,6 +207,7 @@ if [ "$MODE" = "collect" ]; then
199207 save_data
200208elif [ " $MODE " = " send" ]; then
201209 VERIFY_SSL=${VERIFY_SSL:- 0}
210+ RESPONSE_FILE=" $TMP_DIR " /response.txt
202211 set_url_and_curl && send_data
203212else
204213 echoerr " The supplied mode is invalid. Only send and collect are allowed"
0 commit comments