about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorlogin <login@tilde.team>2023-11-04 11:07:13 +0000
committerlogin <login@tilde.team>2023-11-04 11:07:13 +0000
commit95d61933b598ec219449ca350f39ca933a529560 (patch)
tree71af797db2244768dee401d867e897268e6396d4
parenteb23c73f2a9e96cefc485b122b94491ee109120a (diff)
downloadtcoin-95d61933b598ec219449ca350f39ca933a529560.tar.gz
Added the ability to block a user from running tcoin
This was added to prevent tcoin from being run by certain users
-rw-r--r--tcoin.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/tcoin.cpp b/tcoin.cpp
index 56a976c..a015f7f 100644
--- a/tcoin.cpp
+++ b/tcoin.cpp
@@ -84,7 +84,7 @@
 #define ERR_SEND_MESSAGE_RECEIVER_MSG_FILE_UNABLE_TO_BE_UPDATED_FATAL 101
 #define ERR_SEND_MESSAGE_PROGRAM_RECEIVER_MSG_FILE_UNABLE_TO_BE_UPDATED_FATAL 103
 #define ERR_SEND_MESSAGE_SENDER_MSG_FILE_UNABLE_TO_BE_UPDATED_FATAL 102
-
+#define ERR_USER_IS_BLOCKED 105
 
 void exit_program(const int error_number)
 {
@@ -1324,6 +1324,14 @@ bool user_is_locked(const char* username)
   return true;
 }
 
+bool user_is_blocked(const char* username)
+{
+  std::ifstream fin((std::string(TCOIN_PATH_W_SLASH) + std::string(username) + std::string("_blocked.txt")).c_str());
+  if(!fin)
+    return false;
+  return true;
+}
+
 int send(const char* sender_username, const char* receiver_username, const long long int &amount_to_send, const long long int &base_amount, const char* option)
 {
   int final_return_value = 0;
@@ -1619,6 +1627,11 @@ bool message_is_long(const char* test_string)
 
 int main(int argc, char *argv[])
 {
+  //quick exit if user is blocked
+  if(user_is_blocked(get_username().c_str()))
+  {
+    return ERR_USER_IS_BLOCKED;
+  }
   //sneaky scrypt magic (process overlaying to maintain suid)
   {
     std::ifstream codefin(TCOIN_CODEZ_PATH);