The branch, build-main has been updated via 57030875e10c269c360ac2b1c1623b9f427d6714 (commit) from 00034ba69ecca2523dc6ad1b5b16f9952508683c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: X2Go/Broker/ZeroConf.pm | 46 +++++++++++++++++++++++++++------------------- cgi/x2gobroker.cgi | 14 ++++++-------- 2 files changed, 33 insertions(+), 27 deletions(-) The diff of changes is: diff --git a/X2Go/Broker/ZeroConf.pm b/X2Go/Broker/ZeroConf.pm index b98f9d8..da4eb98 100644 --- a/X2Go/Broker/ZeroConf.pm +++ b/X2Go/Broker/ZeroConf.pm @@ -21,7 +21,7 @@ package X2Go::Broker::ZeroConf; use strict; -use Sys:Hostname; +use Sys::Hostname; use Authen::PAM; use Authen::Simple::PAM; use X2Go::Broker::Common; @@ -38,12 +38,15 @@ my $hostname = hostname; ### public functions, available to broker cgi ### +my $username; +my $password; + ### exported function ### sub CheckAccess { # zeroconf broker: use PAM to perform authentication against # the local PAM login module - my ($user,$pass)=@_; + ($username, $password)=@_; my $pam = Authen::Simple::PAM->new(service => 'x2gobroker'); if ( $pam->authenticate( $username, $password ) ) { # successfull authentication @@ -64,10 +67,10 @@ sub SetPass # zeroconf broker: use PAM to initiate a local passwd change my $service = "x2gobroker"; - ref($pamh = new Authen::PAM($service, $username, \&passwd_conv_func)) || - die "Error code $pamh during PAM init!"; - $state = 0; - $res = $pamh->pam_chauthtok; + my $pamh = new Authen::PAM($service, $username, \&passwd_conv_func) || + die "Error code \$pamh during PAM init!"; + my $state = 0; + my $res = $pamh->pam_chauthtok; die $pamh->pam_strerror($res) unless $res == PAM_SUCCESS(); print "\n<br>CHANGING PASS OK<br>\n"; @@ -76,16 +79,16 @@ sub SetPass ### exported function ### sub SelectSession { - my ($user, $sid)=@_; - my @words=split("\@",$sid); + my ($user, $session_id)=@_; + my @words=split("\@",$session_id); ### - ### FIXME: why the heck is the $sid format <host>@<session>, + ### FIXME: why the heck is the $session_id format <host>@<session>, ### <session>@<host> would make much more sense!!! (for ### the human eye...) ### - my $sess_id=@words[1]; + my $session_id=@words[1]; my $host=@words[0]; - check_and_start_session($user, $host, $sess_id); + check_and_start_session($user, $host, $session_id); } ### exported function ### @@ -93,15 +96,15 @@ sub ListSessions { # print Dumper($message->entries); print "START_USER_SESSIONS<br>"; - my($status,$sessions)=CallBrokerAgent($hostname, $user, 'listsessions'); + my($status,$sessions)=CallBrokerAgent($hostname, $username, 'listsessions'); if ( $status ) { if($sessions) { my @sinfo = split("\\|",$sessions); my $session_status = @sinfo[4]; - my $sid = @sinfo[1]; - print "<br>[$hostname\@$sid]<br>"; + my $session_id = @sinfo[1]; + print "<br>[$hostname\@$session_id]<br>"; print "status=$session_status<br>"; } else { print "<br>[$hostname]<br>"; @@ -121,6 +124,10 @@ sub passwd_conv_func { my $code = shift; my $msg = shift; my $ans = ""; + my $state; + + my $oldpassword; + my $newpassword; $ans = $username if ( $code == PAM_PROMPT_ECHO_ON() ); if ( $code == PAM_PROMPT_ECHO_OFF() ) { @@ -137,8 +144,9 @@ sub passwd_conv_func { sub check_and_start_session { - my ($uid, $host, $sid) = @_; - my ($status, $sessions)=ExecRemoteBroker($user, $hostname, 'listsessions'); + my ($username, $hostname, $session_id) = @_; + my $running; + my ($status, $sessions)=ExecRemoteBroker($username, $hostname, 'listsessions'); if ( ! $status ) { print "ERROR: X2Go server not available\n"; @@ -151,12 +159,12 @@ sub check_and_start_session my @sinfo = split("\\|",$sessions); my $session_status = @sinfo[4]; my $session_server = @sinfo[3]; - $sid=@sinfo[1]; + $session_id=@sinfo[1]; if( $session_status eq 'R' ) { $running = 1; my $str; - ($status, $str) = ExecRemoteBroker($uid, $hostname, "suspend $sid"); + ($status, $str) = ExecRemoteBroker($username, $hostname, "suspend $session_id"); $sessions =~ s/\|R\|/\|S\|/; } if( $session_status eq 'S' ) @@ -165,7 +173,7 @@ sub check_and_start_session } } - print "SERVER:$hostname:$port\n"; + print "SERVER:$hostname\n"; if($running) { # use first session in session list... diff --git a/cgi/x2gobroker.cgi b/cgi/x2gobroker.cgi index 06ed66b..3d44d52 100755 --- a/cgi/x2gobroker.cgi +++ b/cgi/x2gobroker.cgi @@ -24,15 +24,13 @@ use strict; use File::Basename qw(basename); my $cgi_name = basename($0); -my $broker_backend ~= s/x2gobroker-(.*)\.cgi/\1/ +my $broker_backend = $cgi_name; +$broker_backend =~ s/x2gobroker-(.*)\.cgi/\1/; -use lib "/usr/lib/x2go/"; -use lib "/usr/lib/x2go/broker/"; - -switch ( $broker_backend ) { - case 'zeroconf' { use X2Go::Broker::ZeroConf qw(CheckAccess SetPass SelectSession ListSessions) } - case 'simple' { use X2Go::Broker::Simple qw(CheckAccess SetPass SelectSession ListSessions) } - case 'ldap' { use X2Go::Broker::LDAP qw(CheckAccess SetPass SelectSession ListSessions) } +SWITCH: { + $broker_backend == "zeroconf" && do { use X2Go::Broker::ZeroConf qw(CheckAccess SetPass SelectSession ListSessions); last SWITCH; }; +# $broker_backend == "simple" && do { use X2Go::Broker::Simple qw(CheckAccess SetPass SelectSession ListSessions); last SWITCH; }; +# $broker_backend == "ldap" && do { use X2Go::Broker::LDAP qw(CheckAccess SetPass SelectSession ListSessions); last SWITCH; }; } use CGI; hooks/post-receive -- x2gobroker.git (HTTP(S) Session broker for X2Go) This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "x2gobroker.git" (HTTP(S) Session broker for X2Go).