| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef _CRASH_REPORTER_CRASH_COLLECTOR_H_ | 5 #ifndef _CRASH_REPORTER_CRASH_COLLECTOR_H_ |
| 6 #define _CRASH_REPORTER_CRASH_COLLECTOR_H_ | 6 #define _CRASH_REPORTER_CRASH_COLLECTOR_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 #include <sys/stat.h> | 9 #include <sys/stat.h> |
| 10 | 10 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 | 25 |
| 26 // Initialize the crash collector for detection of crashes, given a | 26 // Initialize the crash collector for detection of crashes, given a |
| 27 // crash counting function, metrics collection enabled oracle, and | 27 // crash counting function, metrics collection enabled oracle, and |
| 28 // system logger facility. | 28 // system logger facility. |
| 29 void Initialize(CountCrashFunction count_crash, | 29 void Initialize(CountCrashFunction count_crash, |
| 30 IsFeedbackAllowedFunction is_metrics_allowed, | 30 IsFeedbackAllowedFunction is_metrics_allowed, |
| 31 SystemLogging *logger); | 31 SystemLogging *logger); |
| 32 | 32 |
| 33 protected: | 33 protected: |
| 34 friend class CrashCollectorTest; | 34 friend class CrashCollectorTest; |
| 35 FRIEND_TEST(CrashCollectorTest, CheckHasCapacityOverCore); |
| 36 FRIEND_TEST(CrashCollectorTest, CheckHasCapacityOverNonCore); |
| 35 FRIEND_TEST(CrashCollectorTest, GetCrashDirectoryInfo); | 37 FRIEND_TEST(CrashCollectorTest, GetCrashDirectoryInfo); |
| 36 FRIEND_TEST(CrashCollectorTest, FormatDumpBasename); | 38 FRIEND_TEST(CrashCollectorTest, FormatDumpBasename); |
| 37 FRIEND_TEST(CrashCollectorTest, Initialize); | 39 FRIEND_TEST(CrashCollectorTest, Initialize); |
| 38 | 40 |
| 41 // Set maximum enqueued crashes in a crash directory. |
| 42 static const int kMaxCrashDirectorySize; |
| 43 |
| 39 // For testing, set the directory always returned by | 44 // For testing, set the directory always returned by |
| 40 // GetCreatedCrashDirectoryByEuid. | 45 // GetCreatedCrashDirectoryByEuid. |
| 41 void ForceCrashDirectory(const char *forced_directory) { | 46 void ForceCrashDirectory(const char *forced_directory) { |
| 42 forced_crash_directory_ = forced_directory; | 47 forced_crash_directory_ = forced_directory; |
| 43 } | 48 } |
| 44 | 49 |
| 45 FilePath GetCrashDirectoryInfo(uid_t process_euid, | 50 FilePath GetCrashDirectoryInfo(uid_t process_euid, |
| 46 uid_t default_user_id, | 51 uid_t default_user_id, |
| 47 gid_t default_user_group, | 52 gid_t default_user_group, |
| 48 mode_t *mode, | 53 mode_t *mode, |
| 49 uid_t *directory_owner, | 54 uid_t *directory_owner, |
| 50 gid_t *directory_group); | 55 gid_t *directory_group); |
| 51 bool GetUserInfoFromName(const std::string &name, | 56 bool GetUserInfoFromName(const std::string &name, |
| 52 uid_t *uid, | 57 uid_t *uid, |
| 53 gid_t *gid); | 58 gid_t *gid); |
| 54 // Determines the crash directory for given eud, and creates the | 59 // Determines the crash directory for given eud, and creates the |
| 55 // directory if necessary with appropriate permissions. Returns | 60 // directory if necessary with appropriate permissions. Returns |
| 56 // true whether or not directory needed to be created, false on any | 61 // true whether or not directory needed to be created, false on any |
| 57 // failure. | 62 // failure. If the crash directory is already full, returns false. |
| 58 bool GetCreatedCrashDirectoryByEuid(uid_t euid, | 63 bool GetCreatedCrashDirectoryByEuid(uid_t euid, |
| 59 FilePath *crash_file_path); | 64 FilePath *crash_file_path); |
| 65 |
| 66 // Format crash name based on components. |
| 60 std::string FormatDumpBasename(const std::string &exec_name, | 67 std::string FormatDumpBasename(const std::string &exec_name, |
| 61 time_t timestamp, | 68 time_t timestamp, |
| 62 pid_t pid); | 69 pid_t pid); |
| 63 | 70 |
| 71 // Check given crash directory still has remaining capacity for another |
| 72 // crash. |
| 73 bool CheckHasCapacity(const FilePath &crash_directory); |
| 74 |
| 64 CountCrashFunction count_crash_function_; | 75 CountCrashFunction count_crash_function_; |
| 65 IsFeedbackAllowedFunction is_feedback_allowed_function_; | 76 IsFeedbackAllowedFunction is_feedback_allowed_function_; |
| 66 SystemLogging *logger_; | 77 SystemLogging *logger_; |
| 67 const char *forced_crash_directory_; | 78 const char *forced_crash_directory_; |
| 68 }; | 79 }; |
| 69 | 80 |
| 70 #endif // _CRASH_REPORTER_CRASH_COLLECTOR_H_ | 81 #endif // _CRASH_REPORTER_CRASH_COLLECTOR_H_ |
| OLD | NEW |