diff options
| author | Zdenek Prikryl <zprikryl@redhat.com> | 2009-06-17 11:48:43 +0200 |
|---|---|---|
| committer | Zdenek Prikryl <zprikryl@redhat.com> | 2009-06-17 11:48:43 +0200 |
| commit | 536c0b4efe3d20bb3351e01e8540730bfbce1eef (patch) | |
| tree | dae4d37fc2281ae3d2e65f311d9184732dfa3c3e /src/TUI | |
| parent | 8e8558fd67905923d0f0b6b1c081faa4ef4267ff (diff) | |
| download | abrt-536c0b4efe3d20bb3351e01e8540730bfbce1eef.tar.gz abrt-536c0b4efe3d20bb3351e01e8540730bfbce1eef.tar.xz abrt-536c0b4efe3d20bb3351e01e8540730bfbce1eef.zip | |
remaned to proper name (Command Line Interface)
Diffstat (limited to 'src/TUI')
| -rw-r--r-- | src/TUI/ABRTSocket.cpp | 130 | ||||
| -rw-r--r-- | src/TUI/ABRTSocket.h | 29 | ||||
| -rw-r--r-- | src/TUI/Cmd.cpp | 177 | ||||
| -rw-r--r-- | src/TUI/Makefile.am | 3 |
4 files changed, 0 insertions, 339 deletions
diff --git a/src/TUI/ABRTSocket.cpp b/src/TUI/ABRTSocket.cpp deleted file mode 100644 index a699bbd..0000000 --- a/src/TUI/ABRTSocket.cpp +++ /dev/null @@ -1,130 +0,0 @@ -#include "ABRTSocket.h" -#include "ABRTException.h" -#include "CrashTypesSocket.h" - -#include <string.h> -#include <sys/types.h> -#include <sys/socket.h> -#include <sys/un.h> -#include <string.h> - -CABRTSocket::CABRTSocket() : - m_nSocket(-1) -{} - -CABRTSocket::~CABRTSocket() -{ - DisConnect(); -} - -void CABRTSocket::Send(const std::string& pMessage) -{ - int ret = 0; - int len = pMessage.length(); - int offset = 0; - char* message = new char[len + 3]; - memcpy(message, pMessage.c_str(), len); - message[len] = MESSAGE_END_MARKER; - message[len + 1] = '\n'; - message[len + 2] = '\0'; - - while (ret != strlen(message + offset)) - { - offset += ret; - ret = send(m_nSocket, message + offset, strlen(message + offset), 0); - if (ret == -1) - { - throw CABRTException(EXCEP_FATAL, "CABRTSocket::Send(): Can not send data"); - } - } - delete[] message; -} - -void CABRTSocket::Recv(std::string& pMessage) -{ - std::string message; - bool receivingMessage = true; - char buff[1]; - int ret; - - pMessage = ""; - while (receivingMessage) - { - ret = recv(m_nSocket, buff, 1, 0); - if (ret == -1) - { - throw CABRTException(EXCEP_FATAL, "CABRTSocket::Recv(): Can not recv data"); - } - else if (ret == 0) - { - throw CABRTException(EXCEP_FATAL, "CABRTSocket::Recv(): Connection closed by abrt server"); - } - - message += buff[0]; - - if (message.length() > 2 && - message[message.length() - 2] == MESSAGE_END_MARKER && - message[message.length() - 1] == '\n') - { - receivingMessage = false; - message = message.substr(0, message.length() - 2); - } - } - pMessage = message; -} - - -void CABRTSocket::Connect(const std::string& pPath) -{ - int len; - struct sockaddr_un remote; - if ((m_nSocket = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) - { - throw CABRTException(EXCEP_FATAL, "CABRTSocket::Connect(): Can not create socket"); - } - remote.sun_family = AF_UNIX; - strcpy(remote.sun_path, pPath.c_str()); - len = strlen(remote.sun_path) + sizeof(remote.sun_family); - if (connect(m_nSocket, (struct sockaddr *)&remote, len) == -1) - { - throw CABRTException(EXCEP_FATAL, "CABRTSocket::Connect(): Can not connect to remote"); - } -} - -void CABRTSocket::DisConnect() -{ - if (m_nSocket != -1) - { - close(m_nSocket); - } -} - -vector_crash_infos_t CABRTSocket::GetCrashInfos() -{ - std::string message = MESSAGE_GET_CRASH_INFOS; - Send(message); - Recv(message); - message.erase(0, sizeof(MESSAGE_GET_CRASH_INFOS) - 1); - return string_to_crash_infos(message); -} - -map_crash_report_t CABRTSocket::CreateReport(const std::string &pUUID) -{ - std::string message = MESSAGE_CREATE_REPORT + pUUID; - Send(message); - Recv(message); - message.erase(0, sizeof(MESSAGE_CREATE_REPORT) - 1); - return string_to_crash_report(message); -} - -void CABRTSocket::Report(map_crash_report_t pReport) -{ - std::string message = MESSAGE_REPORT + crash_report_to_string(pReport); - Send(message); -} - -void CABRTSocket::DeleteDebugDump(const std::string& pUUID) -{ - std::string message = MESSAGE_DELETE_DEBUG_DUMP + pUUID; - Send(message); -} diff --git a/src/TUI/ABRTSocket.h b/src/TUI/ABRTSocket.h deleted file mode 100644 index 6e8a777..0000000 --- a/src/TUI/ABRTSocket.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef ABRTSOCKET_H_ -#define ABRTSOCKET_H_ - -#include <string> - -#include "CrashTypes.h" - -class CABRTSocket -{ - private: - int m_nSocket; - - void Send(const std::string& pMessage); - void Recv(std::string& pMessage); - - public: - CABRTSocket(); - ~CABRTSocket(); - - void Connect(const std::string& pPath); - void DisConnect(); - - vector_crash_infos_t GetCrashInfos(); - map_crash_report_t CreateReport(const std::string& pUUID); - void Report(map_crash_report_t pReport); - void DeleteDebugDump(const std::string& pUUID); -}; - -#endif /* ABRTSOCKET_H_ */ diff --git a/src/TUI/Cmd.cpp b/src/TUI/Cmd.cpp deleted file mode 100644 index 0700ebf..0000000 --- a/src/TUI/Cmd.cpp +++ /dev/null @@ -1,177 +0,0 @@ -#include "ABRTSocket.h" -#include "ABRTException.h" -#include <iostream> - -#include <string.h> - -#define SOCKET_PATH "/tmp/abrt.socket" - -typedef enum {HELP, - GET_LIST, - GET_LIST_FULL, - REPORT, - REPORT_ALWAYS, - DELETE} param_mode_t; - -typedef struct param_s -{ - param_mode_t m_Mode; - char* m_sUUID; -} param_t; - -void print_usage(char* pProgramName) -{ - std::cout << pProgramName << " [OPTION]" << std::endl << std::endl; - std::cout << "[OPTION]" << std::endl; - std::cout << "\t--help - prints this text" << std::endl; - std::cout << "\t--get-list - prints list of crashes which are not reported" << std::endl; - std::cout << "\t--get-list-full - prints list of all crashes" << std::endl; - std::cout << "\t--report <uuid> - create and send a report" << std::endl; - std::cout << "\t--report-always <uuid> - create and send a report without asking" << std::endl; - std::cout << "\t--delete <uuid> - delete crash" << std::endl; -} - -void parse_args(int argc, char** argv, param_t& param) -{ - if (argc == 2) - { - if (!strcmp(argv[1], "--help") || !strcmp(argv[1], "--version")) - { - param.m_Mode = HELP; - } - else if (!strcmp(argv[1], "--get-list")) - { - param.m_Mode = GET_LIST; - } - else if (!strcmp(argv[1], "--get-list-full")) - { - param.m_Mode = GET_LIST_FULL; - } - else - { - param.m_Mode = HELP; - } - } - else if (argc == 3) - { - if (!strcmp(argv[1], "--report")) - { - param.m_Mode = REPORT; - param.m_sUUID = argv[2]; - } - else if (!strcmp(argv[1], "--report-always")) - { - param.m_Mode = REPORT_ALWAYS; - param.m_sUUID = argv[2]; - } - else if (!strcmp(argv[1], "--delete")) - { - param.m_Mode = DELETE; - param.m_sUUID = argv[2]; - } - else - { - param.m_Mode = HELP; - } - } - else - { - param.m_Mode = HELP; - } -} - -void print_crash_infos(const vector_crash_infos_t& pCrashInfos, - const param_mode_t& pMode) -{ - unsigned int ii; - for (ii = 0; ii < pCrashInfos.size(); ii++) - { - if (pCrashInfos[ii].find(CD_REPORTED)->second[CD_CONTENT] != "1" || pMode == GET_LIST_FULL) - { - std::cout << ii << ". " << std::endl; - std::cout << "\tUID : " << pCrashInfos[ii].find(CD_UID)->second[CD_CONTENT] << std::endl; - std::cout << "\tUUID : " << pCrashInfos[ii].find(CD_UUID)->second[CD_CONTENT] << std::endl; - std::cout << "\tPackage : " << pCrashInfos[ii].find(CD_PACKAGE)->second[CD_CONTENT] << std::endl; - std::cout << "\tExecutable: " << pCrashInfos[ii].find(CD_EXECUTABLE)->second[CD_CONTENT] << std::endl; - std::cout << "\tCrash time: " << pCrashInfos[ii].find(CD_TIME)->second[CD_CONTENT] << std::endl; - std::cout << "\tCrash Rate: " << pCrashInfos[ii].find(CD_COUNT)->second[CD_CONTENT] << std::endl; - } - } -} - -void print_crash_report(const map_crash_report_t& pCrashReport) -{ - map_crash_report_t::const_iterator it; - for (it = pCrashReport.begin(); it != pCrashReport.end(); it++) - { - if (it->second[CD_TYPE] != CD_SYS) - { - std::cout << std::endl << it->first << std::endl; - std::cout << "-----" << std::endl; - std::cout << it->second[CD_CONTENT] << std::endl; - } - } -} - -int main(int argc, char** argv) -{ - CABRTSocket ABRTSocket; - vector_crash_infos_t ci; - map_crash_report_t cr; - param_t param; - std::string answer = "n"; - - parse_args(argc, argv, param); - - if (param.m_Mode == HELP) - { - print_usage(argv[0]); - return 1; - } - - try - { - ABRTSocket.Connect(SOCKET_PATH); - - switch (param.m_Mode) - { - case GET_LIST: - ci = ABRTSocket.GetCrashInfos(); - print_crash_infos(ci, GET_LIST); - break; - case GET_LIST_FULL: - ci = ABRTSocket.GetCrashInfos(); - print_crash_infos(ci, GET_LIST_FULL); - break; - case REPORT: - cr = ABRTSocket.CreateReport(param.m_sUUID); - print_crash_report(cr); - std::cout << std::endl << "Do you want to send the report? [y/n]: "; - std::flush(std::cout); - std::cin >> answer; - if (answer == "Y" || answer == "y") - { - ABRTSocket.Report(cr); - } - break; - case REPORT_ALWAYS: - cr = ABRTSocket.CreateReport(param.m_sUUID); - ABRTSocket.Report(cr); - break; - case DELETE: - ABRTSocket.DeleteDebugDump(param.m_sUUID); - break; - default: - print_usage(argv[0]); - break; - } - - ABRTSocket.DisConnect(); - } - catch (CABRTException& e) - { - std::cout << e.what() << std::endl; - } - - return 0; -} diff --git a/src/TUI/Makefile.am b/src/TUI/Makefile.am deleted file mode 100644 index cfc16df..0000000 --- a/src/TUI/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ -bin_PROGRAMS = abrt-cmd -abrt_cmd_SOURCES = ABRTSocket.cpp ABRTSocket.h Cmd.cpp -abrt_cmd_CPPFLAGS = -I$(srcdir)/../../inc
\ No newline at end of file |
