From 9e1f1baaeadd282977c68e9f68735f9f29db3c4e Mon Sep 17 00:00:00 2001 From: Frank Bergkemper Date: Tue, 18 Aug 2015 13:11:48 +0200 Subject: [PATCH] Bugfix and some minor improvements - Fixes an ugly bug in the BareosBSock class of the Bareos vendor module - Updates the composer.phar - Some indentation changes for readability - A few RestoreController improvements - Sets the header content-type info in the filebrowser view --- composer.phar | Bin 1054749 -> 1117018 bytes module/Application/Module.php | 66 +++++------ .../Restore/Controller/RestoreController.php | 112 +++++++++++------- .../view/restore/restore/filebrowser.phtml | 1 + .../library/Bareos/BSock/BareosBSock.php | 33 ++++-- 5 files changed, 124 insertions(+), 88 deletions(-) diff --git a/composer.phar b/composer.phar index 8a7d11f0036a530d3d13d894ecd2eafb648d2849..f756931e5f537217111ac8be3084fd40f5229f96 100755 GIT binary patch delta 87351 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 Qv(o%O|MNe!l?|2uA6Ef`>;M1& delta 41484 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 z+Mj^%9Q`BvA;g7O#OrgetApplication()->getEventManager(); $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager); - $this->initSession($e); + $this->initSession($e); } public function getConfig() @@ -55,10 +55,10 @@ public function initSession($e) if(!isset($container->init)) { $serviceManager = $e->getApplication()->getServiceManager(); - $request = $serviceManager->get('Request'); + $request = $serviceManager->get('Request'); $session->regenerateId(true); - $container->init = 1; + $container->init = 1; $container->remoteAddr = $request->getServer()->get('REMOTE_ADDR'); $container->httpUserAgent = $request->getServer()->get('HTTP_USER_AGENT'); $container->username = ""; @@ -72,22 +72,22 @@ public function initSession($e) $sessionConfig = $config['session']; - if (isset($sessionConfig['validators'])) { - $chain = $session->getValidatorChain(); - foreach ($sessionConfig['validators'] as $validator) { - switch ($validator) { - case 'Zend\Session\Validator\HttpUserAgent': - $validator = new $validator($container->httpUserAgent); - break; - case 'Zend\Session\Validator\RemoteAddr': - $validator = new $validator($container->remoteAddr); - break; - default: - $validator = new $validator(); - } - $chain->attach('session.validate', array($validator, 'isValid')); - } - } + if(isset($sessionConfig['validators'])) { + $chain = $session->getValidatorChain(); + foreach($sessionConfig['validators'] as $validator) { + switch ($validator) { + case 'Zend\Session\Validator\HttpUserAgent': + $validator = new $validator($container->httpUserAgent); + break; + case 'Zend\Session\Validator\RemoteAddr': + $validator = new $validator($container->remoteAddr); + break; + default: + $validator = new $validator(); + } + $chain->attach('session.validate', array($validator, 'isValid')); + } + } } @@ -109,33 +109,33 @@ public function getServiceConfig() if(isset($session['config'])) { $class = isset($session['config']['class']) ? $session['config']['class'] : 'Zend\Session\Config\SessionConfig'; $options = isset($session['config']['options']) ? $session['config']['options'] : array(); - $sessionConfig = new $class(); - $sessionConfig->setOptions($options); + $sessionConfig = new $class(); + $sessionConfig->setOptions($options); } $sessionStorage = null; if (isset($session['storage'])) { - $class = $session['storage']; - $sessionStorage = new $class(); - } + $class = $session['storage']; + $sessionStorage = new $class(); + } $sessionSaveHandler = null; if (isset($session['save_handler'])) { - // class should be fetched from service manager since it will require constructor arguments - $sessionSaveHandler = $sm->get($session['save_handler']); - } + // class should be fetched from service manager since it will require constructor arguments + $sessionSaveHandler = $sm->get($session['save_handler']); + } $sessionManager = new SessionManager($sessionConfig, $sessionStorage, $sessionSaveHandler); - } else { - $sessionManager = new SessionManager(); - } + } else { + $sessionManager = new SessionManager(); + } - Container::setDefaultManager($sessionManager); - return $sessionManager; - } + Container::setDefaultManager($sessionManager); + return $sessionManager; + } ), ); } diff --git a/module/Restore/src/Restore/Controller/RestoreController.php b/module/Restore/src/Restore/Controller/RestoreController.php index 3fea166f..d559b748 100644 --- a/module/Restore/src/Restore/Controller/RestoreController.php +++ b/module/Restore/src/Restore/Controller/RestoreController.php @@ -27,7 +27,7 @@ use Zend\Mvc\Controller\AbstractActionController; use Zend\View\Model\ViewModel; -use Zend\ViewModel\JsonModel; +use Zend\View\Model\JsonModel; use Restore\Model\Restore; use Restore\Form\RestoreForm; @@ -140,11 +140,11 @@ public function indexAction() public function filebrowserAction() { if($_SESSION['bareos']['authenticated'] == true) { - $result = new ViewModel(array( + $this->getRestoreParams(); + $this->layout('layout/json'); + return new ViewModel(array( 'items' => $this->buildSubtree() )); - $this->layout('layout/json'); - return $result; } else{ return $this->redirect()->toRoute('auth', array('action' => 'login')); @@ -161,18 +161,34 @@ private function buildSubtree() // Get directories if($this->restore_params['type'] == "client") { - $directories = $this->getDirectories($this->getJobIds($this->restore_params['jobid'], $this->restore_params['mergefilesets'], $this->restore_params['mergejobs']), $this->restore_params['id']); + $directories = $this->getDirectories( + $this->getJobIds($this->restore_params['jobid'], + $this->restore_params['mergefilesets'], + $this->restore_params['mergejobs']), + $this->restore_params['id'] + ); } else { - $directories = $this->getDirectories($this->restore_params['jobid'], $this->restore_params['id']); + $directories = $this->getDirectories( + $this->restore_params['jobid'], + $this->restore_params['id'] + ); } // Get files if($this->restore_params['type'] == "client") { - $files = $this->getFiles($this->getJobIds($this->restore_params['jobid'], $this->restore_params['mergefilesets'], $this->restore_params['mergejobs']), $this->restore_params['id']); + $files = $this->getFiles( + $this->getJobIds($this->restore_params['jobid'], + $this->restore_params['mergefilesets'], + $this->restore_params['mergejobs']), + $this->restore_params['id'] + ); } else { - $files = $this->getFiles($this->restore_params['jobid'], $this->restore_params['id']); + $files = $this->getFiles( + $this->restore_params['jobid'], + $this->restore_params['id'] + ); } $dnum = count($directories); @@ -182,47 +198,55 @@ private function buildSubtree() // Build Json for JStree $items = '['; - foreach($directories as $dir) { - if($dir['name'] == ".") { - --$dnum; - next($directories); - } - elseif($dir['name'] == "..") { - --$dnum; - next($directories); - } - else { - --$dnum; - $items .= '{'; - $items .= '"id":"-' . $dir['pathid'] . '"'; - $items .= ',"text":"' . $dir["name"] . '"'; - $items .= ',"icon":"glyphicon glyphicon-folder-close"'; - $items .= ',"state":""'; - $items .= ',"data":' . \Zend\Json\Json::encode($dir, \Zend\Json\Json::TYPE_OBJECT); - $items .= ',"children":true'; - $items .= '}'; - if($dnum > 0) { - $items .= ","; + if($dnum > 0) { + + foreach($directories as $dir) { + if($dir['name'] == ".") { + --$dnum; + next($directories); + } + elseif($dir['name'] == "..") { + --$dnum; + next($directories); + } + else { + --$dnum; + $items .= '{'; + $items .= '"id":"-' . $dir['pathid'] . '"'; + $items .= ',"text":"' . $dir["name"] . '"'; + $items .= ',"icon":"glyphicon glyphicon-folder-close"'; + $items .= ',"state":""'; + $items .= ',"data":' . \Zend\Json\Json::encode($dir, \Zend\Json\Json::TYPE_OBJECT); + $items .= ',"children":true'; + $items .= '}'; + if($dnum > 0) { + $items .= ","; + } } } + } if( $tmp > 2 && $fnum > 0 ) { $items .= ","; } - foreach($files as $file) { - $items .= '{'; - $items .= '"id":"' . $file["fileid"] . '"'; - $items .= ',"text":"' . $file["name"] . '"'; - $items .= ',"icon":"glyphicon glyphicon-file"'; - $items .= ',"state":""'; - $items .= ',"data":' . \Zend\Json\Json::encode($file, \Zend\Json\Json::TYPE_OBJECT); - $items .= '}'; - --$fnum; - if($fnum > 0) { - $items .= ","; + if($fnum > 0) { + + foreach($files as $file) { + $items .= '{'; + $items .= '"id":"' . $file["fileid"] . '"'; + $items .= ',"text":"' . $file["name"] . '"'; + $items .= ',"icon":"glyphicon glyphicon-file"'; + $items .= ',"state":""'; + $items .= ',"data":' . \Zend\Json\Json::encode($file, \Zend\Json\Json::TYPE_OBJECT); + $items .= '}'; + --$fnum; + if($fnum > 0) { + $items .= ","; + } } + } $items .= ']'; @@ -437,11 +461,11 @@ private function getJobIds($jobid=null, $mergefilesets=0, $mergejobs=0) $result = null; $director = $this->getServiceLocator()->get('director'); - if($mergefilesets == 0) { + if($mergefilesets == 0 && $mergejobs == 0) { $cmd = ".bvfs_get_jobids jobid=$jobid all"; $result = $director->send_command($cmd, 2); } - elseif($mergefilesets == 1) { + elseif($mergefilesets == 1 && $mergejobs == 0) { $cmd = ".bvfs_get_jobids jobid=$jobid"; $result = $director->send_command($cmd, 2); } @@ -452,7 +476,8 @@ private function getJobIds($jobid=null, $mergefilesets=0, $mergejobs=0) $jobids = \Zend\Json\Json::decode($result, \Zend\Json\Json::TYPE_ARRAY); $result = ""; - $jnum = count($jobids['result']['jobids']); + + $jnum = count($jobids['result']['jobids']); foreach($jobids['result']['jobids'] as $jobid) { $result .= $jobid['id']; @@ -463,6 +488,7 @@ private function getJobIds($jobid=null, $mergefilesets=0, $mergejobs=0) } $this->restore_params['jobids'] = $result; + return $result; } diff --git a/module/Restore/view/restore/restore/filebrowser.phtml b/module/Restore/view/restore/restore/filebrowser.phtml index 1aae23ea..30fd6e4d 100644 --- a/module/Restore/view/restore/restore/filebrowser.phtml +++ b/module/Restore/view/restore/restore/filebrowser.phtml @@ -1,3 +1,4 @@ items; ?> diff --git a/vendor/Bareos/library/Bareos/BSock/BareosBSock.php b/vendor/Bareos/library/Bareos/BSock/BareosBSock.php index d491fc75..0a44dde7 100644 --- a/vendor/Bareos/library/Bareos/BSock/BareosBSock.php +++ b/vendor/Bareos/library/Bareos/BSock/BareosBSock.php @@ -125,6 +125,11 @@ public function set_user_credentials($username=null, $password=null) { $this->config['console_name'] = $username; $this->config['password'] = $password; + + if($this->config['debug']) { + // extended debug: print config array + var_dump($this->config); + } } /** @@ -146,7 +151,7 @@ public function set_config($config) if($this->config['debug']) { // extended debug: print config array - //var_dump($this->config); + var_dump($this->config); } } @@ -273,17 +278,13 @@ private function receive_message() if ($len == 0) { break; } - if ($len > 0 && $len < 8192) { - $msg .= fread($this->socket, $len); - } elseif($len > 8192) { - $rlen = 8192; - while ($len > 0) { + if ($len > 0) { + $rlen = 1024; + while (floor($len / $rlen) > 0) { $msg .= fread($this->socket, $rlen); $len -= $rlen; - if($len < $rlen) { - $rlen = $len; - } } + $msg .= fread($this->socket, $len); } elseif ($len < 0) { // signal received switch ($len) { @@ -457,7 +458,14 @@ private function connect($username, $password) $port = $this->config['port']; $remote = "tcp://" . $this->config['host'] . ":" . $port; - $context = stream_context_create(); + // set default stream context options + $opts = array( + 'socket' => array( + 'bindto' => '0:0', + ), + ); + + $context = stream_context_create($opts); /* * It only makes sense to setup the whole TLS context when we as client support or @@ -498,8 +506,9 @@ private function connect($username, $password) } } - $this->socket = stream_socket_client($remote, $error, $errstr, 60, - STREAM_CLIENT_CONNECT | STREAM_CLIENT_PERSISTENT, $context); + //$this->socket = stream_socket_client($remote, $error, $errstr, 60, STREAM_CLIENT_CONNECT | STREAM_CLIENT_PERSISTENT, $context); + $this->socket = stream_socket_client($remote, $error, $errstr, 60, STREAM_CLIENT_CONNECT, $context); + if (!$this->socket) { throw new \Exception("Error Connecting Socket: " . $errstr . "\n"); }