OSDN Git Service

fix for_gcc4.7 degrade #30300 patch.
[ultramonkey-l7/ultramonkey-l7-v3.git] / l7vsd / module / protocol / protocol_module_ip.cpp
index 76b3a5d..417505b 100644 (file)
@@ -324,7 +324,6 @@ protocol_module_base::check_message_result protocol_module_ip::check_parameter(c
         bool timeout_flag = false;
         bool reschedule_flag = false;
         bool no_reschedule_flag = false;
-        bool forward_checked = false;
         bool sorryuri_checked = false;
         bool stats_checked = false;
 
@@ -449,8 +448,9 @@ protocol_module_base::check_message_result protocol_module_ip::check_parameter(c
                         }
                         //option string = "-F"
                         else if (*it == "-F" || *it == "--forwarded-for") {
-                                //set forward flag  ON
-                                forward_checked = true;
+                                //set forward flag ON
+                                ++it;
+                                continue;
                         }
                         //option string = "-S"
                         else if (*it == "-S" || *it == "--sorry-uri") {
@@ -2088,7 +2088,7 @@ protocol_module_base::EVENT_TAG protocol_module_ip::handle_realserver_select(
                                 //reschedule is off
                                 else {
                                         //set return status
-                                        status = CLIENT_DISCONNECT;
+                                        status = FINALIZE;
                                 }
                         }
                 }
@@ -3112,7 +3112,7 @@ protocol_module_base::EVENT_TAG protocol_module_ip::handle_sorryserver_connectio
                 session_data_ptr = session_thread_it->second;
 
                 //set return status
-                status = CLIENT_DISCONNECT;
+                status = FINALIZE;
 
                 //set last status
                 session_data_ptr->last_status = status;
@@ -5657,6 +5657,11 @@ bool protocol_module_ip::put_data_into_sendbuffer(
                         buffer_element.first += sendbuffer_rest_size;
                         buffer_element.second -= sendbuffer_rest_size;
                         sendbuffer_rest_size = 0;
+
+                        //add remain item
+                        data_ptr->buffer_sequence.push_back(buffer_element);
+                        //delete the item
+                        data_ptr->buffer_sequence.pop_front();
                         break;
                 }
         }