OSDN Git Service

シーン遷移時の不具合を修正
authorh2so5 <h2so5@git.sourceforge.jp>
Fri, 28 Sep 2012 10:02:24 +0000 (19:02 +0900)
committerh2so5 <h2so5@git.sourceforge.jp>
Fri, 28 Sep 2012 10:02:24 +0000 (19:02 +0900)
公開鍵の受信が受信量制限に引っかかる不具合を修正

client/scene/Base.cpp
client/scene/Base.hpp
common/network/Session.cpp
common/network/Session.hpp
server/main.cpp

index 378e9fc..4a99666 100644 (file)
@@ -9,4 +9,11 @@ Base::~Base()
 {
 
 }
+
+BasePtr Base::NextScene() {
+       BasePtr ptr;
+       std::swap(ptr, next_scene_);
+       return ptr;
+}
+
 }
index a7edec1..9f2d41c 100644 (file)
@@ -21,7 +21,7 @@ class Base : public std::enable_shared_from_this<Base> {
                virtual void ProcessInput(InputManager*) = 0;
            virtual void Draw() = 0;
            virtual void End() = 0;
-           virtual BasePtr NextScene() {return next_scene_;};
+           BasePtr NextScene();
 
        protected:
                BasePtr next_scene_;
index 1b5f65d..3d16ad0 100644 (file)
@@ -94,6 +94,18 @@ namespace network {
         }\r
     }\r
 \r
+       void Session::ResetReadByteAverage()\r
+       {\r
+               read_start_time_ = time(nullptr);\r
+               read_byte_sum_ = 0;\r
+       }\r
+\r
+       void Session::ResetWriteByteAverage()\r
+       {\r
+               write_start_time_ = time(nullptr);\r
+               write_byte_sum_ = 0;\r
+       }\r
+\r
     void Session::EnableEncryption()\r
     {\r
         encryption_ = true;\r
index 52b65c4..0667da1 100644 (file)
@@ -48,6 +48,9 @@ namespace network {
             double GetReadByteAverage() const;\r
             double GetWriteByteAverage() const;\r
 \r
+                       void ResetReadByteAverage();\r
+                       void ResetWriteByteAverage();\r
+\r
             tcp::socket& tcp_socket();\r
             Encrypter& encrypter();\r
 \r
index 45c63e2..e03ece1 100644 (file)
@@ -187,6 +187,9 @@ int main(int argc, char* argv[])
                 uint32_t user_id = account.RegisterPublicKey(c.body());\r
                                assert(user_id > 0);\r
 \r
+                               // 公開鍵で大量データを受信するので受信量制限をリセット\r
+                               session->ResetReadByteAverage();\r
+\r
                 // ログイン\r
                 session->set_id(user_id);\r
                 account.LogIn(user_id);\r