OLD | NEW |
1 #!/bin/sh | 1 #!/bin/sh |
2 | 2 |
3 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. | 3 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
4 # Use of this source code is governed by a BSD-style license that can be | 4 # Use of this source code is governed by a BSD-style license that can be |
5 # found in the LICENSE file. | 5 # found in the LICENSE file. |
6 | 6 |
7 set -e | 7 set -e |
8 | 8 |
9 # Product ID in crash report | 9 # Product ID in crash report |
10 CHROMEOS_PRODUCT=ChromeOS | 10 CHROMEOS_PRODUCT=ChromeOS |
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
194 local meta_path="$1" | 194 local meta_path="$1" |
195 local kind="$(get_kind "${meta_path}")" | 195 local kind="$(get_kind "${meta_path}")" |
196 local exec_name="$(get_key_value "${meta_path}" "exec_name")" | 196 local exec_name="$(get_key_value "${meta_path}" "exec_name")" |
197 local sleep_time=$(generate_uniform_random $SECONDS_SEND_SPREAD) | 197 local sleep_time=$(generate_uniform_random $SECONDS_SEND_SPREAD) |
198 local url="${REPORT_UPLOAD_PROD_URL}" | 198 local url="${REPORT_UPLOAD_PROD_URL}" |
199 local chromeos_version="$(get_key_value "${meta_path}" "ver")" | 199 local chromeos_version="$(get_key_value "${meta_path}" "ver")" |
200 local board="$(get_board)" | 200 local board="$(get_board)" |
201 local hwclass="$(get_hardware_class)" | 201 local hwclass="$(get_hardware_class)" |
202 local payload_extension="${kind}" | 202 local payload_extension="${kind}" |
203 local write_payload_size="$(get_key_value "${meta_path}" "payload_size")" | 203 local write_payload_size="$(get_key_value "${meta_path}" "payload_size")" |
| 204 local sig="$(get_key_value "${meta_path}" "sig")" |
204 [ "${kind}" = "minidump" ] && payload_extension="dmp" | 205 [ "${kind}" = "minidump" ] && payload_extension="dmp" |
205 local report_payload="$(get_base "${meta_path}").${payload_extension}" | 206 local report_payload="$(get_base "${meta_path}").${payload_extension}" |
206 local send_payload_size="$(stat --printf=%s "${report_payload}")" | 207 local send_payload_size="$(stat --printf=%s "${report_payload}")" |
207 lecho "Sending crash:" | 208 lecho "Sending crash:" |
208 lecho " Scheduled to send in ${sleep_time}s" | 209 lecho " Scheduled to send in ${sleep_time}s" |
209 lecho " Metadata: ${meta_path} (${kind})" | 210 lecho " Metadata: ${meta_path} (${kind})" |
210 lecho " Payload: ${report_payload}" | 211 lecho " Payload: ${report_payload}" |
211 lecho " Version: ${chromeos_version}" | 212 lecho " Version: ${chromeos_version}" |
212 if is_mock; then | 213 if is_mock; then |
213 lecho " Product: ${CHROMEOS_PRODUCT}" | 214 lecho " Product: ${CHROMEOS_PRODUCT}" |
214 lecho " URL: ${url}" | 215 lecho " URL: ${url}" |
215 lecho " Board: ${board}" | 216 lecho " Board: ${board}" |
216 lecho " HWClass: ${hwclass}" | 217 lecho " HWClass: ${hwclass}" |
| 218 [ "${sig}" != "undefined" ] && lecho " Sig: ${sig}" |
217 fi | 219 fi |
218 lecho " Exec name: ${exec_name}" | 220 lecho " Exec name: ${exec_name}" |
219 if is_mock; then | 221 if is_mock; then |
220 local mock_in=$(cat "${MOCK_CRASH_SENDING}") | 222 local mock_in=$(cat "${MOCK_CRASH_SENDING}") |
221 if [ "${mock_in}" = "" ]; then | 223 if [ "${mock_in}" = "" ]; then |
222 lecho "Mocking successful send" | 224 lecho "Mocking successful send" |
223 return 0 | 225 return 0 |
224 else | 226 else |
225 lecho "Mocking unsuccessful send" | 227 lecho "Mocking unsuccessful send" |
226 return 1 | 228 return 1 |
227 fi | 229 fi |
228 fi | 230 fi |
229 | 231 |
230 if ! sleep ${sleep_time}; then | 232 if ! sleep ${sleep_time}; then |
231 lecho "Sleep failed" | 233 lecho "Sleep failed" |
232 return 1 | 234 return 1 |
233 fi | 235 fi |
234 | 236 |
235 local report_id="${TMP_DIR}/report_id" | 237 local report_id="${TMP_DIR}/report_id" |
236 local curl_stderr="${TMP_DIR}/curl_stderr" | 238 local curl_stderr="${TMP_DIR}/curl_stderr" |
237 | 239 |
| 240 local extra_key1="write_payload_size" |
| 241 local extra_value1="${write_payload_size}" |
| 242 local extra_key2="send_payload_size" |
| 243 local extra_value2="${send_payload_size}" |
| 244 if [ "${kind}" = "kcrash" ]; then |
| 245 extra_key1="sig" |
| 246 extra_value1="${sig}" |
| 247 extra_key2="sig2" |
| 248 extra_value2="${sig}" |
| 249 fi |
| 250 |
238 set +e | 251 set +e |
239 curl "${url}" \ | 252 curl "${url}" \ |
240 -F "prod=${CHROMEOS_PRODUCT}" \ | 253 -F "prod=${CHROMEOS_PRODUCT}" \ |
241 -F "ver=${chromeos_version}" \ | 254 -F "ver=${chromeos_version}" \ |
242 -F "upload_file_${kind}=@${report_payload}" \ | 255 -F "upload_file_${kind}=@${report_payload}" \ |
243 -F "board=${board}" \ | 256 -F "board=${board}" \ |
244 -F "hwclass=${hwclass}" \ | 257 -F "hwclass=${hwclass}" \ |
245 -F "exec_name=${exec_name}" \ | 258 -F "exec_name=${exec_name}" \ |
246 -F "write_payload_size=${write_payload_size}" \ | 259 -F "${extra_key1}=${extra_value1}" \ |
247 -F "send_payload_size=${send_payload_size}" \ | 260 -F "${extra_key2}=${extra_value2}" \ |
248 -F "guid=<${CONSENT_ID}" -o "${report_id}" 2>"${curl_stderr}" | 261 -F "guid=<${CONSENT_ID}" -o "${report_id}" 2>"${curl_stderr}" |
249 curl_result=$? | 262 curl_result=$? |
250 set -e | 263 set -e |
251 | 264 |
252 if [ ${curl_result} -eq 0 ]; then | 265 if [ ${curl_result} -eq 0 ]; then |
253 lecho "Crash report receipt ID $(cat ${report_id})" | 266 lecho "Crash report receipt ID $(cat ${report_id})" |
254 else | 267 else |
255 lecho "Crash sending failed with: $(cat ${curl_stderr})" | 268 lecho "Crash sending failed with: $(cat ${curl_stderr})" |
256 fi | 269 fi |
257 | 270 |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
373 TMP_DIR="$(mktemp -d /tmp/crash_sender.XXXX)" | 386 TMP_DIR="$(mktemp -d /tmp/crash_sender.XXXX)" |
374 | 387 |
375 # Send system-wide crashes | 388 # Send system-wide crashes |
376 send_crashes "/var/spool/crash" | 389 send_crashes "/var/spool/crash" |
377 | 390 |
378 # Send user-specific crashes | 391 # Send user-specific crashes |
379 send_crashes "/home/chronos/user/crash" | 392 send_crashes "/home/chronos/user/crash" |
380 } | 393 } |
381 | 394 |
382 main | 395 main |
OLD | NEW |