X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/900527c952b8cd0140317cb7dc9d4b80eb1239bf..73ff333eec2793138265afd36f716a23e0f8bff6:/projects/stargazer/plugins/configuration/rpcconfig/rpcconfig.cpp?ds=sidebyside diff --git a/projects/stargazer/plugins/configuration/rpcconfig/rpcconfig.cpp b/projects/stargazer/plugins/configuration/rpcconfig/rpcconfig.cpp index d4419b40..86072bcf 100644 --- a/projects/stargazer/plugins/configuration/rpcconfig/rpcconfig.cpp +++ b/projects/stargazer/plugins/configuration/rpcconfig/rpcconfig.cpp @@ -2,6 +2,7 @@ #include #include #include +#include #include #include @@ -9,6 +10,7 @@ #include #include #include +#include // xmlrpc-c devs have missed something :) #include "stg/common.h" #include "stg/admin.h" @@ -94,7 +96,8 @@ RPC_CONFIG::RPC_CONFIG() tid(), cookies(), dayFee(0), - dirNames() + dirNames(), + logger(GetPluginLogger(GetStgLogger(), "conf_rpc")) { } @@ -132,6 +135,7 @@ fd = socket(AF_INET, SOCK_STREAM, 0); if (fd < 0) { errorStr = "Failed to create socket"; + logger("Cannot create a socket: %s", strerror(errno)); printfd(__FILE__, "Failed to create listening socket: %s\n", strerror(errno)); return -1; } @@ -141,6 +145,7 @@ int flag = 1; if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &flag, sizeof(flag))) { errorStr = "Setsockopt failed."; + logger("setsockopt error: %s", strerror(errno)); printfd(__FILE__, "Setsockopt failed: %s\n", strerror(errno)); return -1; } @@ -152,6 +157,7 @@ addr.sin_addr.s_addr = inet_addr("0.0.0.0"); if (bind(fd, (struct sockaddr *)&addr, sizeof(addr))) { + logger("Cannot bind the socket: %s", strerror(errno)); errorStr = "Failed to bind socket"; printfd(__FILE__, "Failed to bind listening socket: %s\n", strerror(errno)); return -1; @@ -159,6 +165,7 @@ if (bind(fd, (struct sockaddr *)&addr, sizeof(addr))) if (listen(fd, 10)) { + logger("Cannot listen the socket: %s", strerror(errno)); errorStr = "Failed to listen socket"; printfd(__FILE__, "Failed to listen listening socket: %s\n", strerror(errno)); return -1; @@ -174,6 +181,7 @@ rpcServer = new xmlrpc_c::serverAbyss( if (pthread_create(&tid, NULL, Run, this)) { errorStr = "Failed to create RPC thread"; + logger("Cannot create RPC thread."); printfd(__FILE__, "Failed to crate RPC thread\n"); return -1; } @@ -193,6 +201,7 @@ for (int i = 0; i < 5 && !stopped; ++i) if (!stopped) { running = true; + logger("Cannot stop RPC thread."); printfd(__FILE__, "Failed to stop RPC thread\n"); errorStr = "Failed to stop RPC thread"; return -1; @@ -260,6 +269,7 @@ ADMIN * admin = NULL; if (!admins->Correct(login, password, &admin)) { + logger("Attempt to connect with invalid credentials. Login: %s", login.c_str()); return true; }