Skip to content

Commit

Permalink
Uncovered Cent7 issues, broke patches out to individual fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
gcoxmoz committed Dec 21, 2016
1 parent dc141be commit 473c98a
Show file tree
Hide file tree
Showing 5 changed files with 78 additions and 14 deletions.
39 changes: 39 additions & 0 deletions SDK/NetApp/NetApp-SDK-5.6-perlfix-NaServer-Socket6.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#
# I have not opened a case with NTAP support on this
# In CentOS7 and the like, Socket6 may be required even though straight Perl
# has ipv6 definitions built in, so the second require here causes...
#
# Subroutine NaServer::pack_sockaddr_in6 redefined at /usr/share/perl5/vendor_perl/Exporter.pm line 66.
# at /usr/lib64/perl5/vendor_perl/NetApp-SDK/NaServer.pm line 69.
#
# ... when 'use warnings' is in effect.
#
--- lib/perl/NetApp/NaServer-old.pm 2016-12-20 23:23:32.120266533 +0000
+++ lib/perl/NetApp/NaServer.pm 2016-12-20 23:33:28.768353186 +0000
@@ -65,18 +65,18 @@
# onwards and Pre 5.14 versions require Socket6 module installed.
# First prefer using Socket6 module routines on all versions if it
# is available, else prefer using Socket module from 5.14 version onwards.
- if (eval "require Socket6") {
- Socket6->import(qw(getaddrinfo pack_sockaddr_in6 in6addr_any));
- $na_in6addr_any = Socket6::in6addr_any();
- $na_can_use_socket6 = 1;
+ if ($] >= 5.014) {
+ Socket->import(qw(getaddrinfo pack_sockaddr_in6 IN6ADDR_ANY));
+ $na_in6addr_any = &Socket::IN6ADDR_ANY;
$na_can_use_ipv6 = 1;
} else {
- if ($] >= 5.014) {
- Socket->import(qw(getaddrinfo pack_sockaddr_in6 IN6ADDR_ANY));
- $na_in6addr_any = &Socket::IN6ADDR_ANY;
+ if (eval "require Socket6") {
+ Socket6->import(qw(getaddrinfo pack_sockaddr_in6 in6addr_any));
+ $na_in6addr_any = Socket6::in6addr_any();
+ $na_can_use_socket6 = 1;
$na_can_use_ipv6 = 1;
}
- }
+ }
};

#============================================================#
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,3 @@
my $hex_length;

## Perl socket timeout has no effect during socket read.
--- lib/perl/NetApp/OCUMAPI-old.pm 2016-09-27 17:06:10.000000000 +0000
+++ lib/perl/NetApp/OCUMAPI.pm 2016-11-18 19:05:55.794856254 +0000
@@ -5375,7 +5375,7 @@

sub IsArrayFlag {
my ($self, $flag) = @_;
- return ($flag & FIELD_ARRAY) == FIELD_ARRAY;
+ return $flag ? (($flag & FIELD_ARRAY) == FIELD_ARRAY) : 0;
}

sub IsEncryptedFlag {
15 changes: 15 additions & 0 deletions SDK/NetApp/NetApp-SDK-5.6-perlfix-NaServer-length-scalar.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#
# I have not opened a case with NTAP support on this
# This emits a warning, since it's arguably a mistake
#
--- lib/perl/NetApp/NaServer-old.pm 2016-12-20 23:00:28.551813172 +0000
+++ lib/perl/NetApp/NaServer.pm 2016-12-20 23:01:09.808933407 +0000
@@ -1159,7 +1159,7 @@
my @header;
@header = Net::SSLeay::ssl_read_until($ssl, "\r\n", $HTTP_HEADER_BUFFER_SIZE);

- my $len = length(@header);
+ my $len = scalar(@header);
if(! defined $len ) {
next if $!{EINTR} || $!{EAGAIN} || $!{EWOULDBLOCK} ;
die "Incomplete Response : $!";
15 changes: 15 additions & 0 deletions SDK/NetApp/NetApp-SDK-5.6-perlfix-OCUMAPI.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#
# I have not opened a case with NTAP support on this
# Certain times an empty $flag can make it through, which is noticed under use strict
#
--- lib/perl/NetApp/OCUMAPI-old.pm 2016-09-27 17:06:10.000000000 +0000
+++ lib/perl/NetApp/OCUMAPI.pm 2016-11-18 19:05:55.794856254 +0000
@@ -5375,7 +5375,7 @@

sub IsArrayFlag {
my ($self, $flag) = @_;
- return ($flag & FIELD_ARRAY) == FIELD_ARRAY;
+ return $flag ? (($flag & FIELD_ARRAY) == FIELD_ARRAY) : 0;
}

sub IsEncryptedFlag {
12 changes: 9 additions & 3 deletions SDK/NetApp/NetApp-SDK-5.6.spec
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,14 @@
Summary: NetApp's SDK for interacting with filers
Name: NetApp-SDK
Version: 5.6
Release: 2%{?dist}
Release: 3%{?dist}
License: NetApp SDK License Agreement v11-04-14
Group: Development/Libraries
Source: http://mysupport.netapp.com/NOW/download/software/nmsdk/%{version}/netapp-manageability-sdk-%{version}.zip
Patch0: %{name}-%{version}-perlfix.patch
Patch0: %{name}-%{version}-perlfix-NaServer-doubleresponse.patch
Patch1: %{name}-%{version}-perlfix-NaServer-length-scalar.patch
Patch2: %{name}-%{version}-perlfix-NaServer-Socket6.patch
Patch3: %{name}-%{version}-perlfix-OCUMAPI.patch
URL: http://support.netapp.com
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
Vendor: Mozilla IT
Expand All @@ -29,6 +32,9 @@ The NetApp Manageability SDK provides resources to develop applications that mon
%prep
%setup -q -n netapp-manageability-sdk-%{version}
%patch0 -p0
%patch1 -p0
%patch2 -p0
%patch3 -p0

%build

Expand All @@ -48,7 +54,7 @@ The NetApp Manageability SDK provides resources to develop applications that mon
%{perl_vendorlib}/%{name}/*

%changelog
* Wed Oct 24 2016 Greg Cox <[email protected]> 5.6
* Wed Dec 20 2016 Greg Cox <[email protected]> 5.6
- SDK 5.6

* Wed May 4 2016 Greg Cox <[email protected]> 5.4P2
Expand Down

0 comments on commit 473c98a

Please sign in to comment.