]> rtime.felk.cvut.cz Git - frescor/fna.git/commitdiff
bug corrected: ss_new->size was not set
authorsangorrin <sangorrin@35b4ef3e-fd22-0410-ab77-dab3279adceb>
Mon, 24 Nov 2008 16:41:18 +0000 (16:41 +0000)
committersangorrin <sangorrin@35b4ef3e-fd22-0410-ab77-dab3279adceb>
Mon, 24 Nov 2008 16:41:18 +0000 (16:41 +0000)
git-svn-id: http://www.frescor.org/private/svn/frescor/fna/trunk@1407 35b4ef3e-fd22-0410-ab77-dab3279adceb

src_frescan/frescan_bwres_threads.c

index a33b36db54eb6f8e1d90f61103d7041ec32ca3c9..111985c2cecb42363f264c9dec4be0b4df89f90d 100644 (file)
@@ -276,9 +276,11 @@ static void frescan_manager_req_gn(frescan_bwres_request_data_t *req_data)
                 frescan_manager_gn_restore_scenario(scenario, req_data);
         }
 
-        if (req_data->request_node == me) {
+        if ((req_data->request_node == me) &&
+            (req_data->return_value == FRESCAN_BWRES_REQ_ACCEPTED)) {
                 // create servers for new contracts
-                for(i=0; i<req_data->contracts_to_neg->size; i++) {
+                req_data->ss_new->size = req_data->contracts_to_neg->size;
+                for(i=0; i<req_data->ss_new->size; i++) {
                         vres = &frescan_data[req_data->net].scenario.
                                         vres_pool[me]
                                                  [req_data->ss_new->ss[i]];
@@ -336,6 +338,8 @@ static void frescan_manager_gn_prepare_scenario
                 assert(ret == 0);
         }
 
+        req_data->ss_new->size = req_data->contracts_to_neg->size;
+
         // RENEG-GROUP
         scenario->backup_contracts_to_reneg.size =
                                         req_data->contracts_to_reneg->size;
@@ -423,14 +427,16 @@ static void frescan_manager_rep_gn(frescan_bwres_request_data_t *req_data)
         ret = frescan_bwres_requests_get_data(req_data->req, &caller_req);
         assert(ret == 0);
 
-        DEBUG(FRESCAN_BWRES_MANAGER_ENABLE_DEBUG,
-              "reply to gn, return value:%d\n", req_data->return_value);
-
         caller_req->return_value = req_data->return_value;
-
         assert (req_data->ss_new->size == caller_req->contracts_to_neg->size);
+        caller_req->ss_new->size = req_data->ss_new->size;
+
+        DEBUG(FRESCAN_BWRES_MANAGER_ENABLE_DEBUG,
+              "ret:%d ss_new->size:%u\n",
+              req_data->return_value,
+              caller_req->ss_new->size);
 
-        for (i=0; i<req_data->ss_new->size; i++) {
+        for (i=0; i<caller_req->ss_new->size; i++) {
                 caller_req->ss_new->ss[i] = req_data->ss_new->ss[i];
         }