From 38ea14e1f5c74bbab2640d9f702af8b25b27dcad Mon Sep 17 00:00:00 2001
From: Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Date: Wed, 23 Mar 2011 11:54:34 +0100
Subject: [PATCH] encode/decode previous initscript code

---
 planetlab/common/actions.php | 2 +-
 planetlab/slices/slice.php   | 8 +++++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/planetlab/common/actions.php b/planetlab/common/actions.php
index 9950d5b..c4290af 100644
--- a/planetlab/common/actions.php
+++ b/planetlab/common/actions.php
@@ -714,7 +714,7 @@ Our support team will be glad to answer any question that you might have.
    $slice_id = intval ($_POST['slice_id']); 	
    $previous_initscript=$_POST['previous-initscript'];
    $initscript=$_POST['initscript'];
-   $previous_initscript_code=$_POST['previous-initscript-code'];
+   $previous_initscript_code=html_entity_decode($_POST['previous-initscript-code']);
    $initscript_code=$_POST['initscript-code'];
 
    $changes=FALSE;
diff --git a/planetlab/slices/slice.php b/planetlab/slices/slice.php
index 2c87bca..d5e743d 100644
--- a/planetlab/slices/slice.php
+++ b/planetlab/slices/slice.php
@@ -930,11 +930,17 @@ if ($local_peer) {
   $toggle->start();
 
   $details=new PlekitDetails(TRUE);
+  // we expose the previous values so that actions.php can know if changes are really needed
+  // the code needs to be encoded as it may contain any character
+  // as far as the code, this does not work too well b/c what actions.php receives
+  // seems to have spurrious \r chars, and the comparison between old and new values 
+  // is not reliable, which results in changes being made although the code hasn't changed
+  // hve spent too much time on this, good enough for now...
   $details->form_start(l_actions(),array('action'=>'update-initscripts',
 					 'slice_id'=>$slice_id,
 					 'name'=>$name,
 					 'previous-initscript'=>$initscript,
-					 'previous-initscript-code'=>$initscript_code));
+					 'previous-initscript-code'=>htmlentities($initscript_code)));
   $details->start();
   // comppute a pulldown with available names
   $selectors=array();
-- 
2.47.0