]> git.stg.codes - stg.git/blobdiff - projects/sgconf/admins.cpp
Optimized sending answers in sgconfig.
[stg.git] / projects / sgconf / admins.cpp
index 739a8aef2239ed8e9443424874273ad7979e4cf5..c16e6e2b2d981dfb1897e585c8fa209b00f6be25 100644 (file)
@@ -120,6 +120,8 @@ bool GetAdminsFunction(const SGCONF::CONFIG & config,
 {
 STG::SERVCONF proto(config.server.data(),
                     config.port.data(),
+                    config.localAddress.data(),
+                    config.localPort.data(),
                     config.userName.data(),
                     config.userPass.data());
 return proto.GetAdmins(GetAdminsCallback, NULL) == STG::st_ok;
@@ -131,6 +133,8 @@ bool GetAdminFunction(const SGCONF::CONFIG & config,
 {
 STG::SERVCONF proto(config.server.data(),
                     config.port.data(),
+                    config.localAddress.data(),
+                    config.localPort.data(),
                     config.userName.data(),
                     config.userPass.data());
 // STG currently doesn't support <GetAdmin login="..."/>.
@@ -145,6 +149,8 @@ bool DelAdminFunction(const SGCONF::CONFIG & config,
 {
 STG::SERVCONF proto(config.server.data(),
                     config.port.data(),
+                    config.localAddress.data(),
+                    config.localPort.data(),
                     config.userName.data(),
                     config.userPass.data());
 return proto.DelAdmin(arg, SimpleCallback, NULL) == STG::st_ok;
@@ -154,13 +160,14 @@ bool AddAdminFunction(const SGCONF::CONFIG & config,
                       const std::string & arg,
                       const std::map<std::string, std::string> & options)
 {
-// TODO
 ADMIN_CONF_RES conf;
 conf.login = arg;
 SGCONF::MaybeSet(options, "priv", conf.priv, ConvPriv);
 SGCONF::MaybeSet(options, "password", conf.password);
 STG::SERVCONF proto(config.server.data(),
                     config.port.data(),
+                    config.localAddress.data(),
+                    config.localPort.data(),
                     config.userName.data(),
                     config.userPass.data());
 return proto.AddAdmin(arg, conf, SimpleCallback, NULL) == STG::st_ok;
@@ -170,9 +177,17 @@ bool ChgAdminFunction(const SGCONF::CONFIG & config,
                       const std::string & arg,
                       const std::map<std::string, std::string> & options)
 {
-// TODO
-std::cerr << "Unimplemented.\n";
-return false;
+ADMIN_CONF_RES conf;
+conf.login = arg;
+SGCONF::MaybeSet(options, "priv", conf.priv, ConvPriv);
+SGCONF::MaybeSet(options, "password", conf.password);
+STG::SERVCONF proto(config.server.data(),
+                    config.port.data(),
+                    config.localAddress.data(),
+                    config.localPort.data(),
+                    config.userName.data(),
+                    config.userPass.data());
+return proto.ChgAdmin(conf, SimpleCallback, NULL) == STG::st_ok;
 }
 
 } // namespace anonymous