From 4a0674cf55a8e2a76da1f88cce520acc3098774b Mon Sep 17 00:00:00 2001 From: root Date: Tue, 12 Sep 2023 13:46:41 +0100 Subject: new supermicro bug for portunus --- INF/SuperMicro.pm | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/INF/SuperMicro.pm b/INF/SuperMicro.pm index 121d36a..151735d 100644 --- a/INF/SuperMicro.pm +++ b/INF/SuperMicro.pm @@ -21,6 +21,7 @@ sub login($) { my $self = shift; my $post = POST( $self->{bmc_url} . '/cgi/login.cgi' ); + $post->header( 'Referer' => $self->{bmc_url}.'/'); my $form_content = 'name=' . $self->{user} . '&' . 'pwd=' . $self->{password}; @@ -55,11 +56,14 @@ sub view($) { $self->login() unless defined $self->{logged_in}; - my $get = GET( $self->{bmc_url} - . '/cgi/url_redirect.cgi?url_name=ikvm&url_type=jwsk' ); + my $get = GET( $self->{bmc_url} . '/cgi/url_redirect.cgi?url_name=ikvm&url_type=jwsk' ); + $get->header( 'Referer' => $self->{bmc_url}.'/'); + my $res = $self->{ua}->request($get); + print $res->request->as_string; + unless ( $res->is_success ) { print STDERR "JWSK frequest failed - did not get 200\n"; return -1; @@ -89,17 +93,18 @@ sub view($) { if ( -d $prefix . $v ) { printf "Known version\n"; - $prefix .= $v . '/'; } elsif ( scalar(@$args) == 8 ) { printf "Unknow version $v, 8 args using 1.69.21\n"; - $prefix .= '1.69.21.0x0/'; + $v = '1.69.21.0x0'; } else { printf "Unknow version $v, 10 args using 1.69.25\n"; - $prefix .= '1.69.25.0x0/'; + $v = '1.69.21.0x0'; } + $prefix .= $v . '/'; + if ( defined $self->{proxy_host} ) { my $tmp = File::Temp->new( UNLINK => 0, SUFFIX => '.cnf' ); @@ -134,6 +139,7 @@ sub get_host_power($) { $self->login() unless defined $self->{logged_in}; my $post = POST( $self->{bmc_url} . '/cgi/ipmi.cgi' ); + $post->header( 'Referer' => $self->{bmc_url}.'/'); my $form_content = 'op=POWER_INFO.XML&r=(0%2C0)'; $post->header( 'Content-Type' => 'application/x-www-form-urlencoded' ); @@ -168,6 +174,7 @@ sub set_host_power($$) { $self->login() unless defined $self->{logged_in}; my $post = POST( $self->{bmc_url} . '/cgi/ipmi.cgi' ); + $post->header( 'Referer' => $self->{bmc_url}.'/'); my $form_content = 'op=POWER_INFO.XML&r=(1%2C' . $what . ')'; $post->header( 'Content-Type' => 'application/x-www-form-urlencoded' ); @@ -265,7 +272,7 @@ sub new ($;$) { my ( $class, $parm ) = @_; my $self; - $self->{ua} = my $ua = LWP::UserAgent->new; + $self->{ua} = my $ua = LWP::UserAgent->new(agent => 'Mozilla/5.0 (X11; Linux x86_64; rv:107.0) Gecko/20100101 Firefox/107.0'); $self->{cookie_jar} = HTTP::Cookies->new(); $self->{ua}->cookie_jar( $self->{cookie_jar} ); @@ -277,7 +284,7 @@ sub new ($;$) { $self->{name} = $parm->{name} || $self->{host}; $self->{bmc_url} = $parm->{bmc_url} - || 'https://' . $self->{host}; + || 'http://' . $self->{host}; $self->{ua}->ssl_opts( SSL_verify_mode => IO::Socket::SSL::SSL_VERIFY_NONE, -- cgit v1.2.3