[X2Go-Commits] [x2goserver] 73/99: x2goserver/bin/x2goupdateoptionsstring: add non-functional extraction mode.

git-admin at x2go.org git-admin at x2go.org
Mon Dec 28 06:10:50 CET 2020


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch master
in repository x2goserver.

commit 74fe23368d747cb4e986f3827c03b94eb6e2acd3
Author: Mihai Moldovan <ionic at ionic.de>
Date:   Thu Nov 26 07:10:53 2020 +0100

    x2goserver/bin/x2goupdateoptionsstring: add non-functional extraction mode.
    
    Needs proper implementation.
---
 debian/changelog                       |  2 ++
 x2goserver/bin/x2goupdateoptionsstring | 33 +++++++++++++++++++++++++++++----
 2 files changed, 31 insertions(+), 4 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 3ebc9408..a27759b1 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -334,6 +334,8 @@ x2goserver (4.1.0.4-0x2go1.2) UNRELEASED; urgency=medium
     - {X2Go/Server/Agent/NX/Options.pm,
        x2goserver/bin/x2goupdateoptionsstring}: fatalize text coding errors.
     - x2goserver/bin/x2goupdateoptionsstring: sanitize/convert data in @ARGV.
+    - x2goserver/bin/x2goupdateoptionsstring: add non-functional extraction
+      mode. Needs proper implementation.
   * debian/control:
     + Build-depend upon lsb-release for distro version detection.
   * debian/x2goserver.manpages:
diff --git a/x2goserver/bin/x2goupdateoptionsstring b/x2goserver/bin/x2goupdateoptionsstring
index 9494c465..b0201629 100755
--- a/x2goserver/bin/x2goupdateoptionsstring
+++ b/x2goserver/bin/x2goupdateoptionsstring
@@ -45,6 +45,7 @@ use Pod::Usage;
 use Storable qw (dclone);
 use Data::Dumper qw (Dumper);
 use X2Go::Server::Agent::NX::Options;
+use MIME::Base64 qw (encode_base64);
 use List::Util qw (max);
 use Encode qw (encode decode);
 
@@ -523,7 +524,7 @@ sub Main {
       print {*STDERR} 'Dumping intermediate array after initial parsing: ' . Dumper ($intermediate);
     }
 
-    if ($compact) {
+    if (((MODE_EXTRACT_DATA)[1] == $mode) || ($compact)) {
       $intermediate = X2Go::Server::Agent::NX::Options::compact_intermediate ($intermediate);
 
       if (!(defined ($intermediate))) {
@@ -557,13 +558,37 @@ sub Main {
           last;
         }
       }
+      elsif ((MODE_EXTRACT_DATA)[1] == $mode) {
+        my $extract = extract_data ($intermediate, $cur_arg, $debug);
+
+        if (!(defined ($extract)) {
+          print {*STDERR} 'Unable to extract data for "' . $cur_arg . '"' . ", aborting.\n";
+          $error_detected = 11;
+        }
+        else {
+          # Convert into bytes.
+          $bytes = encode ("UTF-8", $extract, Encode::FB_CROAK);
+
+          # Encode the data.
+          my $base64 = base64_encode ($extract, q{});
+
+          if (!(defined ($out))) {
+            # Create it.
+            $out = $base64;
+          }
+          else {
+            # Otherwise, append and make sure to separate fields.
+            $out .= q{|} . $base64;
+          }
+        }
+      }
 
       # Skip pseudo-option, if necessary.
       $sanitized_options = sanitize_program_options (\@program_arguments, (!($found_separator)));
 
       if (!(defined ($sanitized_options))) {
         pod2usage (-exitval => 'NOEXIT');
-        $error_detected = 11;
+        $error_detected = 12;
         last;
       }
       elsif ($debug) {
@@ -577,7 +602,7 @@ sub Main {
 
     if ((!($error_detected)) && (!($operation))) {
       print {*STDERR} "No operation carried out, aborting.\n";
-      $error_detected = 12;
+      $error_detected = 13;
     }
   }
 
@@ -587,7 +612,7 @@ sub Main {
 
       if (!(defined ($out))) {
         print {*STDERR} "Unable to transform intermediate back into string, aborting.\n";
-        $error_detected = 13;
+        $error_detected = 14;
       }
     }
   }

--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2goserver.git


More information about the x2go-commits mailing list