|  | @@ -250,7 +250,7 @@  discard block | 
                                                    
                                                        |  |  |  block discarded – undo | 
                                                                                                                                                                                                                    
                                                            | 250 | 250 |                  $serverCandidates[IdPlist::geoDistance($adminLocation, ['lat' => $iterator->location_lat, 'lon' => $iterator->location_lon])] = $iterator->server_id; | 
                                                                                                            
                                                            | 251 | 251 |              } | 
                                                                                                            
                                                            | 252 | 252 |              if ($clients > $maxSupportedClients * 0.9) { | 
                                                                                                            
                                                            | 253 |  | -                $this->loggerInstance->debug(1, "A RADIUS server for Managed SP (" . $iterator->server_id . ") is serving at more than 90% capacity!"); | 
                                                                                                            
                                                            |  | 253 | +                $this->loggerInstance->debug(1, "A RADIUS server for Managed SP (".$iterator->server_id.") is serving at more than 90% capacity!"); | 
                                                                                                            
                                                            | 254 | 254 |              } | 
                                                                                                            
                                                            | 255 | 255 |          } | 
                                                                                                            
                                                            | 256 | 256 |          if (count($serverCandidates) == 0 && $federation != "DEFAULT") { | 
                                                                                                                                                        
                                                        |  | @@ -281,28 +281,28 @@  discard block | 
                                                    
                                                        |  |  |  block discarded – undo | 
                                                                                                                                                                                                                    
                                                            | 281 | 281 |              $ourLocation = ['lon' => $geoip['geo']['lon'], 'lat' => $geoip['geo']['lat']]; | 
                                                                                                            
                                                            | 282 | 282 |          } | 
                                                                                                            
                                                            | 283 | 283 |          $inst = new IdP($this->institution); | 
                                                                                                            
                                                            | 284 |  | -        $ourserver = $this->findGoodServerLocation($ourLocation, $inst->federation , []); | 
                                                                                                            
                                                            |  | 284 | +        $ourserver = $this->findGoodServerLocation($ourLocation, $inst->federation, []); | 
                                                                                                            
                                                            | 285 | 285 |          // now, find an unused port in the preferred server | 
                                                                                                            
                                                            | 286 | 286 |          $foundFreePort1 = 0; | 
                                                                                                            
                                                            | 287 | 287 |          while ($foundFreePort1 == 0) { | 
                                                                                                            
                                                            | 288 | 288 |              $portCandidate = random_int(1200, 65535); | 
                                                                                                            
                                                            | 289 |  | -            $check = $this->databaseHandle->exec("SELECT port_instance_1 FROM deployment WHERE radius_instance_1 = '" . $ourserver . "' AND port_instance_1 = $portCandidate"); | 
                                                                                                            
                                                            |  | 289 | +            $check = $this->databaseHandle->exec("SELECT port_instance_1 FROM deployment WHERE radius_instance_1 = '".$ourserver."' AND port_instance_1 = $portCandidate"); | 
                                                                                                            
                                                            | 290 | 290 |              if (mysqli_num_rows(/** @scrutinizer ignore-type */ $check) == 0) { | 
                                                                                                            
                                                            | 291 | 291 |                  $foundFreePort1 = $portCandidate; | 
                                                                                                            
                                                            | 292 | 292 |              } | 
                                                                                                            
                                                            | 293 | 293 |          } | 
                                                                                                            
                                                            | 294 |  | -        $ourSecondServer = $this->findGoodServerLocation($ourLocation, $inst->federation , [$ourserver]); | 
                                                                                                            
                                                            |  | 294 | +        $ourSecondServer = $this->findGoodServerLocation($ourLocation, $inst->federation, [$ourserver]); | 
                                                                                                            
                                                            | 295 | 295 |          $foundFreePort2 = 0; | 
                                                                                                            
                                                            | 296 | 296 |          while ($foundFreePort2 == 0) { | 
                                                                                                            
                                                            | 297 | 297 |              $portCandidate = random_int(1200, 65535); | 
                                                                                                            
                                                            | 298 |  | -            $check = $this->databaseHandle->exec("SELECT port_instance_2 FROM deployment WHERE radius_instance_2 = '" . $ourSecondServer . "' AND port_instance_2 = $portCandidate"); | 
                                                                                                            
                                                            |  | 298 | +            $check = $this->databaseHandle->exec("SELECT port_instance_2 FROM deployment WHERE radius_instance_2 = '".$ourSecondServer."' AND port_instance_2 = $portCandidate"); | 
                                                                                                            
                                                            | 299 | 299 |              if (mysqli_num_rows(/** @scrutinizer ignore-type */ $check) == 0) { | 
                                                                                                            
                                                            | 300 | 300 |                  $foundFreePort2 = $portCandidate; | 
                                                                                                            
                                                            | 301 | 301 |              } | 
                                                                                                            
                                                            | 302 | 302 |          } | 
                                                                                                            
                                                            | 303 | 303 |          // and make up a shared secret that is halfways readable | 
                                                                                                            
                                                            | 304 | 304 |          $futureSecret = $this->randomString(16, "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"); | 
                                                                                                            
                                                            | 305 |  | -        $this->databaseHandle->exec("UPDATE deployment SET radius_instance_1 = '" . $ourserver . "', radius_instance_2 = '" . $ourSecondServer . "', port_instance_1 = $foundFreePort1, port_instance_2 = $foundFreePort2, secret = '$futureSecret' WHERE deployment_id = $this->identifier"); | 
                                                                                                            
                                                            |  | 305 | +        $this->databaseHandle->exec("UPDATE deployment SET radius_instance_1 = '".$ourserver."', radius_instance_2 = '".$ourSecondServer."', port_instance_1 = $foundFreePort1, port_instance_2 = $foundFreePort2, secret = '$futureSecret' WHERE deployment_id = $this->identifier"); | 
                                                                                                            
                                                            | 306 | 306 |          return ["port_instance_1" => $foundFreePort1, "port_instance_2" => $foundFreePort2, "secret" => $futureSecret, "radius_instance_1" => $ourserver, "radius_instance_2" => $ourserver]; | 
                                                                                                            
                                                            | 307 | 307 |      } | 
                                                                                                            
                                                            | 308 | 308 |   | 
                                                                                                                                                        
                                                        |  | @@ -345,7 +345,7 @@  discard block | 
                                                    
                                                        |  |  |  block discarded – undo | 
                                                                                                                                                                                                                    
                                                            | 345 | 345 |       * @return void | 
                                                                                                            
                                                            | 346 | 346 |       */ | 
                                                                                                            
                                                            | 347 | 347 |      public function deactivate() { | 
                                                                                                            
                                                            | 348 |  | -        $this->databaseHandle->exec("UPDATE deployment SET status = " . DeploymentManaged::INACTIVE . " WHERE deployment_id = $this->identifier"); | 
                                                                                                            
                                                            |  | 348 | +        $this->databaseHandle->exec("UPDATE deployment SET status = ".DeploymentManaged::INACTIVE." WHERE deployment_id = $this->identifier"); | 
                                                                                                            
                                                            | 349 | 349 |      } | 
                                                                                                            
                                                            | 350 | 350 |   | 
                                                                                                            
                                                            | 351 | 351 |      /** | 
                                                                                                                                                        
                                                        |  | @@ -355,7 +355,7 @@  discard block | 
                                                    
                                                        |  |  |  block discarded – undo | 
                                                                                                                                                                                                                    
                                                            | 355 | 355 |       * @return void | 
                                                                                                            
                                                            | 356 | 356 |       */ | 
                                                                                                            
                                                            | 357 | 357 |      public function activate() { | 
                                                                                                            
                                                            | 358 |  | -        $this->databaseHandle->exec("UPDATE deployment SET status = " . DeploymentManaged::ACTIVE . " WHERE deployment_id = $this->identifier"); | 
                                                                                                            
                                                            |  | 358 | +        $this->databaseHandle->exec("UPDATE deployment SET status = ".DeploymentManaged::ACTIVE." WHERE deployment_id = $this->identifier"); | 
                                                                                                            
                                                            | 359 | 359 |      } | 
                                                                                                            
                                                            | 360 | 360 |   | 
                                                                                                            
                                                            | 361 | 361 |      /** | 
                                                                                                                                                        
                                                        |  | @@ -381,15 +381,15 @@  discard block | 
                                                    
                                                        |  |  |  block discarded – undo | 
                                                                                                                                                                                                                    
                                                            | 381 | 381 |      public function sendToRADIUS($idx, $post) { | 
                                                                                                            
                                                            | 382 | 382 |               | 
                                                                                                            
                                                            | 383 | 383 |          $hostname = "radius_hostname_$idx"; | 
                                                                                                            
                                                            | 384 |  | -        $ch = curl_init( "http://" . $this->$hostname ); | 
                                                                                                            
                                                            |  | 384 | +        $ch = curl_init("http://".$this->$hostname); | 
                                                                                                            
                                                            | 385 | 385 |          if ($ch) { | 
                                                                                                            
                                                            | 386 |  | -            curl_setopt( $ch, CURLOPT_POST, 1); | 
                                                                                                            
                                                            | 387 |  | -            curl_setopt( $ch, CURLOPT_POSTFIELDS, $post); | 
                                                                                                            
                                                            | 388 |  | -            $this->loggerInstance->debug(1, "Posting to http://" . $this->$hostname . ": $post\n"); | 
                                                                                                            
                                                            | 389 |  | -            curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1); | 
                                                                                                            
                                                            | 390 |  | -            curl_setopt( $ch, CURLOPT_HEADER, 0); | 
                                                                                                            
                                                            | 391 |  | -            curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1); | 
                                                                                                            
                                                            | 392 |  | -            $res = curl_exec( $ch ); | 
                                                                                                            
                                                            |  | 386 | +            curl_setopt($ch, CURLOPT_POST, 1); | 
                                                                                                            
                                                            |  | 387 | +            curl_setopt($ch, CURLOPT_POSTFIELDS, $post); | 
                                                                                                            
                                                            |  | 388 | +            $this->loggerInstance->debug(1, "Posting to http://".$this->$hostname.": $post\n"); | 
                                                                                                            
                                                            |  | 389 | +            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); | 
                                                                                                            
                                                            |  | 390 | +            curl_setopt($ch, CURLOPT_HEADER, 0); | 
                                                                                                            
                                                            |  | 391 | +            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); | 
                                                                                                            
                                                            |  | 392 | +            $res = curl_exec($ch); | 
                                                                                                            
                                                            | 393 | 393 |              if ($res === FALSE) { | 
                                                                                                            
                                                            | 394 | 394 |                  $res = 'FAILURE'; | 
                                                                                                            
                                                            | 395 | 395 |              } | 
                                                                                                                                                        
                                                        |  | @@ -397,7 +397,7 @@  discard block | 
                                                    
                                                        |  |  |  block discarded – undo | 
                                                                                                                                                                                                                    
                                                            | 397 | 397 |          } else { | 
                                                                                                            
                                                            | 398 | 398 |              $res = 'FAILURE'; | 
                                                                                                            
                                                            | 399 | 399 |          } | 
                                                                                                            
                                                            | 400 |  | -        $this->databaseHandle->exec("UPDATE deployment SET radius_status_$idx = " . ($res == 'OK'? \core\AbstractDeployment::RADIUS_OK : \core\AbstractDeployment::RADIUS_FAILURE) . " WHERE deployment_id = $this->identifier"); | 
                                                                                                            
                                                            |  | 400 | +        $this->databaseHandle->exec("UPDATE deployment SET radius_status_$idx = ".($res == 'OK' ? \core\AbstractDeployment::RADIUS_OK : \core\AbstractDeployment::RADIUS_FAILURE)." WHERE deployment_id = $this->identifier"); | 
                                                                                                            
                                                            | 401 | 401 |          return $res; | 
                                                                                                            
                                                            | 402 | 402 |      } | 
                                                                                                            
                                                            | 403 | 403 |       | 
                                                                                                                                                        
                                                        |  | @@ -409,12 +409,12 @@  discard block | 
                                                    
                                                        |  |  |  block discarded – undo | 
                                                                                                                                                                                                                    
                                                            | 409 | 409 |       */ | 
                                                                                                            
                                                            | 410 | 410 |      public function setRADIUSconfig($remove = 0) { | 
                                                                                                            
                                                            | 411 | 411 |          $toPost = array(1 => '', 2 => ''); | 
                                                                                                            
                                                            | 412 |  | -        $toPost[1] = 'instid=' . $this->institution . '&deploymentid=' . $this->identifier . '&secret=' . $this->secret . '&country=' . $this->getAttributes("internal:country")[0]['value'] . '&'; | 
                                                                                                            
                                                            |  | 412 | +        $toPost[1] = 'instid='.$this->institution.'&deploymentid='.$this->identifier.'&secret='.$this->secret.'&country='.$this->getAttributes("internal:country")[0]['value'].'&'; | 
                                                                                                            
                                                            | 413 | 413 |          if ($remove) { | 
                                                                                                            
                                                            | 414 |  | -            $toPost[1] = $toPost[1] . 'remove=1&'; | 
                                                                                                            
                                                            |  | 414 | +            $toPost[1] = $toPost[1].'remove=1&'; | 
                                                                                                            
                                                            | 415 | 415 |          } else { | 
                                                                                                            
                                                            | 416 | 416 |              if ($this->getAttributes("managedsp:operatorname")[0]['value'] ?? NULL) { | 
                                                                                                            
                                                            | 417 |  | -                $toPost[1] = $toPost[1] . 'operatorname=' . $this->getAttributes("managedsp:operatorname")[0]['value'] . '&'; | 
                                                                                                            
                                                            |  | 417 | +                $toPost[1] = $toPost[1].'operatorname='.$this->getAttributes("managedsp:operatorname")[0]['value'].'&'; | 
                                                                                                            
                                                            | 418 | 418 |              } | 
                                                                                                            
                                                            | 419 | 419 |              if ($this->getAttributes("managedsp:vlan")[0]['value'] ?? NULL) { | 
                                                                                                            
                                                            | 420 | 420 |                  $idp = new IdP($this->institution); | 
                                                                                                                                                        
                                                        |  | @@ -431,16 +431,16 @@  discard block | 
                                                    
                                                        |  |  |  block discarded – undo | 
                                                                                                                                                                                                                    
                                                            | 431 | 431 |                      } | 
                                                                                                            
                                                            | 432 | 432 |                  } | 
                                                                                                            
                                                            | 433 | 433 |                  if (!empty($allRealms)) { | 
                                                                                                            
                                                            | 434 |  | -                    $toPost[1] = $toPost[1] . 'vlan=' . $this->getAttributes("managedsp:vlan")[0]['value'] . '&'; | 
                                                                                                            
                                                            | 435 |  | -                    $toPost[1] = $toPost[1] . 'realmforvlan[]=' . implode('&realmforvlan[]=', $allRealms) . '&'; | 
                                                                                                            
                                                            |  | 434 | +                    $toPost[1] = $toPost[1].'vlan='.$this->getAttributes("managedsp:vlan")[0]['value'].'&'; | 
                                                                                                            
                                                            |  | 435 | +                    $toPost[1] = $toPost[1].'realmforvlan[]='.implode('&realmforvlan[]=', $allRealms).'&'; | 
                                                                                                            
                                                            | 436 | 436 |                  } | 
                                                                                                            
                                                            | 437 | 437 |              } | 
                                                                                                            
                                                            | 438 | 438 |          } | 
                                                                                                            
                                                            | 439 | 439 |          $toPost[2] = $toPost[1]; | 
                                                                                                            
                                                            | 440 |  | -        $toPost[1] = $toPost[1] . 'port=' . $this->port1; | 
                                                                                                            
                                                            | 441 |  | -        $toPost[2] = $toPost[2] . 'port=' . $this->port2; | 
                                                                                                            
                                                            |  | 440 | +        $toPost[1] = $toPost[1].'port='.$this->port1; | 
                                                                                                            
                                                            |  | 441 | +        $toPost[2] = $toPost[2].'port='.$this->port2; | 
                                                                                                            
                                                            | 442 | 442 |          $response = array(); | 
                                                                                                            
                                                            | 443 |  | -        for ($idx=1; $idx<=2; $idx++) { | 
                                                                                                            
                                                            |  | 443 | +        for ($idx = 1; $idx <= 2; $idx++) { | 
                                                                                                            
                                                            | 444 | 444 |              $response[$idx] = $this->sendToRADIUS($idx, $toPost[$idx]); | 
                                                                                                            
                                                            | 445 | 445 |          } | 
                                                                                                            
                                                            | 446 | 446 |          return $response; |