Panoptes 1.0.0
Endpoint Detection and Response
Loading...
Searching...
No Matches
ResourceCore.cpp
Go to the documentation of this file.
1#define RESOURCES_EXPORTS
2#include "ResourceCore.h"
3#include <string>
4#include <unordered_map>
5
6// Define the error code mappings
7static const std::unordered_map<std::string, int> errorCodeMap = {
8 {"NOT_SET", NOT_SET},
9 {"PANO_SUCCESS", PANO_SUCCESS},
10 {"FILE_NOT_FOUND", FILE_NOT_FOUND},
11 {"PERMISSION_DENIED", PERMISSION_DENIED},
12 {"INVALID_INPUT", INVALID_INPUT},
13 {"MUTEX_NOT_SET", MUTEX_NOT_SET},
14 {"MUTEX_SET", MUTEX_SET},
15 {"DB_INITIALIZATION", DB_INITIALIZATION},
16 {"DB_DELETE", DB_DELETE},
17 {"CONTAINER_START", CONTAINER_START},
18 {"WINDOWS_ERR", WINDOWS_ERR},
19 {"INVALID_HANDLE", INVALID_HANDLE},
20 {"IOCTL_FAILED", IOCTL_FAILED},
21 {"EVENT_CREATE", EVENT_CREATE},
22 {"NAMED_PIPE_CREATE", NAMED_PIPE_CREATE},
23 {"KERNEL_PIPE", KERNEL_PIPE},
24 {"NOT_INSTALLED", NOT_INSTALLED},
25 {"CONTROL_SERVICE", CONTROL_SERVICE},
26 {"PANO_SERVICE_RUNNING", PANO_SERVICE_RUNNING},
27 {"PANO_SERVICE_STOPPED", PANO_SERVICE_STOPPED},
28 {"ERROR_STARTING_SERVICE", ERROR_STARTING_SERVICE},
29 {"ERROR_STOPPING_SERVICE", ERROR_STOPPING_SERVICE},
30 {"CLEAN_HANDLE", CLEAN_HANDLE},
31 {"EXT_SELECTED", EXT_SELECTED},
32 {"NOT_ADMIN", NOT_ADMIN},
33 {"NO_CONFIG", NO_CONFIG},
34 {"START_TRACE", START_TRACE},
35 {"GRPC_SERVER_ERROR", GRPC_SERVER_ERROR},
36 {"EXT_INVALID", EXT_INVALID},
37 {"DEBUGGER", DEBUGGER}
38};
39
40static const std::unordered_map<int, const char*> errorStringMap = {
41 {NOT_SET, "Not Set"},
42 {PANO_SUCCESS, "Operation successful"},
43 {FILE_NOT_FOUND, "File not found"},
44 {PERMISSION_DENIED, "Permission denied"},
45 {INVALID_INPUT, "Invalid input"},
46 {MUTEX_NOT_SET, "Mutex was not set"},
47 {MUTEX_SET, "Could not set service mutex"},
48 {DB_INITIALIZATION, "Cant initialize database"},
49 {DB_DELETE, "Unable to delete database"},
50 {CONTAINER_START, "Unable to start container instances"},
51 {WINDOWS_ERR, "Windows Internal Error"},
52 {INVALID_HANDLE, "Invalid Handle"},
53 {IOCTL_FAILED, "An invalid IOCTL"},
54 {EVENT_CREATE, "An error occured when attempting to create an event"},
55 {NAMED_PIPE_CREATE, "An error occured when attempting to create a named pipe"},
56 {KERNEL_PIPE, "An error occured when attempting to connect to kernel pipe."},
57 {NOT_INSTALLED, "The feature was not installed"},
58 {CONTROL_SERVICE, "Can't control the supplied service"},
59 {PANO_SERVICE_RUNNING, "The service is running"},
60 {PANO_SERVICE_STOPPED, "The service is stopped"},
61 {ERROR_STARTING_SERVICE, "Failed to start service"},
62 {ERROR_STOPPING_SERVICE, "Failed to stop service"},
63 {CLEAN_HANDLE, "An error occured when attempting to clean up handles"},
64 {EXT_SELECTED, "No extensibility has been selected"},
65 {NOT_ADMIN, "The program is not running as administrator"},
66 {NO_CONFIG, "Not config file was provided"},
67 {START_TRACE, "Unable to start ETW trace session. Try Restarting Panoptes"},
68 {GRPC_SERVER_ERROR, "An error occured attempting to start local server"},
69 {EXT_INVALID, "An invalid extensibility was selected"},
70 {DEBUGGER, "Debugger Detected"}
71};
72
73extern "C" {
74
75RESOURCES_API int GetResourceErrorCode(const char* errorName) {
76 auto it = errorCodeMap.find(errorName);
77 return (it != errorCodeMap.end()) ? it->second : NOT_SET;
78}
79
80RESOURCES_API const char* GetResourceErrorString(int errorCode) {
81 auto it = errorStringMap.find(errorCode);
82 return (it != errorStringMap.end()) ? it->second : "Unknown error code";
83}
84
85}
RESOURCES_API int GetResourceErrorCode(const char *errorName)
RESOURCES_API const char * GetResourceErrorString(int errorCode)
#define START_TRACE
#define ERROR_STARTING_SERVICE
#define PANO_SUCCESS
#define DEBUGGER
#define CONTAINER_START
#define INVALID_INPUT
#define PANO_SERVICE_STOPPED
#define RESOURCES_API
Definition ResourceCore.h:6
#define NOT_ADMIN
#define EXT_SELECTED
#define PANO_SERVICE_RUNNING
#define NOT_SET
#define ERROR_STOPPING_SERVICE
#define CONTROL_SERVICE
#define IOCTL_FAILED
#define INVALID_HANDLE
#define FILE_NOT_FOUND
#define KERNEL_PIPE
#define WINDOWS_ERR
#define DB_DELETE
#define PERMISSION_DENIED
#define NO_CONFIG
#define MUTEX_SET
#define DB_INITIALIZATION
#define EVENT_CREATE
#define GRPC_SERVER_ERROR
#define EXT_INVALID
#define NAMED_PIPE_CREATE
#define NOT_INSTALLED
#define CLEAN_HANDLE
#define MUTEX_NOT_SET