: # # $Header: network_src/utl/adapters.sh.pp /stpl_db_11.2.0.3.0_gen/2 2011/01/26 23:24:30 prateeks Exp $ # # Find which protocol adapters, security products and naming adapters # are installed and echo results to STDOUT. # Invoked without an argument, this utility looks at # both ntcontab.o and libn9.a for sane installation of pa's. # Invoked with one argument, this utility returns which pa's # are actually linked in with an executable. # # syntax: adapters if [ "$ORACLE_TRACE" ]; then set -x fi if [ -z "$TMPDIR" ] ; then TMPDIR=/tmp fi COMMAND="nm -X32_64 -p" ################################## NAME=`uname -m` if [ "$NAME" = "ia64" ] ; then SO_EXT=so else SO_EXT=so fi ################################## if [ "x$1" = "x-64" ] ; then LIBDIR=lib64 else LIBDIR=lib fi case "$WORKDIR" in "") WORKDIR="$TMPDIR" ;; esac VER=11 LIBPATH=$ORACLE_HOME/$LIBDIR NAMING_TITLE="Oracle Net naming methods" TRANSPORT_TITLE="Oracle Net transport protocols" SECURITY_TITLE="Oracle Advanced Security options" TRANSPORTS="us beq tcp tcps spx dec dce lu62 itcp ispx nmp raw sdp" TtoINI="us:ntusini tcp:nttini beq:ntpini tcps:ntzini spx:ntsini dec:ntdini dce:ntodrini lu62:ntlini itcp:ntitini ispx:ntsini nmp:ntnini raw:ntrini sdp:nttsdpini" TtoBAS="us:ntus tcp:ntt beq:ntp tcps:ntz spx:nts dec:ntd dce:ntodr lu62:ntl itcp:ntit ispx:ntis nmp:ntn raw:ntr sdp:ntt" TtoNAM="us:IPC tcp:TCP/IP beq:BEQ tcps:SSL spx:SPX dec:DECNet dce:DCE lu62:LU6.2 itcp:TLI/TCP ispx:TLI/SPX nmp:NamedPipes raw:RAW sdp:SDP/IB" TtoLIB="us:us tcp:tcp tcps:tcps spx:spx dec:dec dce:dce lu62:lu62 itcp:tlit ispx:tlis nmp:nmp beq:beq sdp:tcp raw:" # NOTE: Raw uses libn9. NATIVE="tns ldap host on nis nds cds" NtoBAS="tns:nnft on:nnfo nis:nnfy cds:nnfd nds:nnfn ldap:nnfl host:nnfh" NtoLIB="tns:tns on:oname nis:nis cds:cds nds:nds ldap:ldap host:host" NtoNAM="tns:Local~Naming~(tnsnames.ora) on:Oracle~Names~Server~Naming nis:NIS~Naming cds:DCE/CDS~Naming nds:NDS~Naming ldap:Oracle~Directory~Naming host:Oracle~Host~Naming" NAETAB="$ORACLE_HOME/$LIBDIR/naeet.o $ORACLE_HOME/$LIBDIR/naect.o" NAUTAB="$ORACLE_HOME/$LIBDIR/nautab.o" $COMMAND $NAETAB > $WORKDIR/naetab$$ 2> /dev/null $COMMAND $NAUTAB > $WORKDIR/nautab$$ 2> /dev/null if test $# -lt 1 then NTCONTAB=$ORACLE_HOME/$LIBDIR/ntcontab.o NTCONTABC=$ORACLE_HOME/network/$LIBDIR/ntcontab.c NNFGT=$ORACLE_HOME/$LIBDIR/nnfgt.o NNFGTC=$ORACLE_HOME/network/$LIBDIR/nnfgt.c LIBNET="libn${VER}" LIBNETPATH=${LIBPATH}/${LIBNET} if [ ! -r $NTCONTAB ] ; then echo "No ntcontab.o! Goodbye..." exit 0 fi $COMMAND $NNFGT > $WORKDIR/nnfgt$$ 2> /dev/null $COMMAND $NTCONTAB > $WORKDIR/ntcontab$$ 2> /dev/null for T in $TRANSPORTS; do LIB=`echo ${TtoLIB} | sed 's/ /\\ /g' | grep "^${T}:" | awk -F: '{print $2}'` if [ -z "${LIB}" ] ; then ln -s $WORKDIR/net$$ $WORKDIR/${T}$$ else $COMMAND ${LIBPATH}/libn${LIB}${VER}.* > $WORKDIR/${T}$$ 2>/dev/null fi done for N in $NATIVE; do LIB=`echo ${NtoLIB} | sed 's/ /\\ /g' | grep "^${N}:" | awk -F: '{print $2}'` if [ -z "${LIB}" ] ; then ln -s $WORKDIR/net$$ $WORKDIR/${N}$$ else $COMMAND ${LIBPATH}/libn${LIB}${VER}.* > $WORKDIR/${N}$$ 2>/dev/null fi done $COMMAND $LIBNETPATH.* > $WORKDIR/net$$ 2>/dev/null # # Adapter entry points should appear twice in libn9.a -- # once from ntcontab.o, and once for the actual entry point # echo "" echo "Installed ${TRANSPORT_TITLE} are:" echo "" for T in $TRANSPORTS; do INI=`echo ${TtoINI} | sed 's/ /\\ /g' | grep "^${T}:" | awk -F: '{print $2}'` BAS=`echo ${TtoBAS} | sed 's/ /\\ /g' | grep "^${T}:" | awk -F: '{print $2}'` NAM=`echo ${TtoNAM} | sed 's/ /\\ /g' | grep "^${T}:" | awk -F: '{print $2}'` LIB=`echo ${TtoLIB} | sed 's/ /\\ /g' | grep "^${T}:" | awk -F: '{print $2}'` if [ -z "${LIB}" ] ; then NUMENTRIES=2 else NUMENTRIES=1 fi if [ "`grep ${INI} $WORKDIR/ntcontab$$ 2> /dev/null`" != "" ] ; then entrypoint=`grep ${INI} $WORKDIR/${T}$$ 2> /dev/null | wc | awk '{ print $1 }'` if [ $entrypoint -ge ${NUMENTRIES} ] ; then echo " ${NAM}" else if [ "X`echo ${NAM} |grep -i spx`" = "X" ]; then echo " Error!!! ${NAM} is not completely installed!" echo " Present in ntcontab.o, but missing from libn${LIB}${VER}..." fi fi else if [ "`grep ${INI} $WORKDIR/${T}$$ 2> /dev/null`" != "" ] ; then echo " Error!!! ${NAM} is not completely installed!" echo " Present in libn${LIB}${VER}, but missing from ntcontab.o..." fi fi done # # OSI # if [ "`grep ntio4ini $WORKDIR/ntcontab$$ 2> /dev/null`" != "" ] ; then entrypoint=`grep ntio4ini $WORKDIR/net$$ 2> /dev/null | wc | awk '{ print $1 }'` if [ $entrypoint -ge 2 ] ; then echo " OSI" else echo " Error!!! OSI Protocol is not completely installed!" echo " Adapter present in ntcontab.o, but missing from $LIBNET..." fi else if [ "`grep ntio4ini $WORKDIR/net$$ 2> /dev/null`" != "" ] ; then echo " Error!!! OSI Protocol is not completely installed!" echo " Adapter present in $LIBNET, but missing from ntcontab.o..." fi fi # # AppleTalk # if [ "`grep ntatini $WORKDIR/ntcontab$$ 2> /dev/null`" != "" ] ; then entrypoint=`grep ntatini $WORKDIR/net$$ 2> /dev/null | wc | awk '{ print $1 }'` if [ $entrypoint -ge 2 ] ; then echo " AppleTalk" else echo " Error!!! AppleTalk Protocol is not completely installed!" echo " Adapter present in ntcontab.o, but missing from $LIBNET..." fi else if [ "`grep ntatini $WORKDIR/net$$ 2> /dev/null`" != "" ] ; then echo " Error!!! AppleTalk Protocol is not completely installed!" echo " Adapter present in $LIBNET, but missing from ntcontab.o..." fi fi echo "" echo "Installed ${NAMING_TITLE} are:" echo "" for N in $NATIVE; do BAS=`echo ${NtoBAS} | sed 's/ /\\ /g' | grep "^${N}:" | awk -F: '{print $2}'` NAM=`echo ${NtoNAM} | sed 's/ /\\ /g' | grep "^${N}:" | awk -F: '{print $2}' | sed 's/\~/ /g'` LIB=`echo ${NtoLIB} | sed 's/ /\\ /g' | grep "^${N}:" | awk -F: '{print $2}'` entries1=`grep ${BAS}boot $WORKDIR/${N}$$ 2>/dev/null | wc | awk '{ print $1 }'` if [ -z "${LIB}" ] ; then entries2=0 else entries2=`grep ${BAS}boot $WORKDIR/net$$ 2>/dev/null | wc | awk '{ print $1 }'` fi tot_entries=`expr $entries1 + $entries2` if [ $tot_entries -ge 2 ] ; then echo " $NAM" else if [ $entries2 -eq 1 ] ; then echo " Error!!! ${NAM} is not completely installed!" echo " Adapter present in nnfgt.o, but missing from libn${LIB}${VER}..." fi if [ $entries1 -eq 1 ] ; then echo " Error!!! ${NAM} is not completely installed!" fi fi done echo "" echo "Installed ${SECURITY_TITLE} are:" echo "" # # Oracle Advanced Security # if [ "`grep naereni $WORKDIR/naetab$$ 2> /dev/null`" != "" ] ; then echo " RC4 40-bit encryption" fi if [ "`grep naeren56i $WORKDIR/naetab$$ 2> /dev/null`" != "" ] ; then echo " RC4 56-bit encryption" fi if [ "`grep naeren128i $WORKDIR/naetab$$ 2> /dev/null`" != "" ] ; then echo " RC4 128-bit encryption" fi if [ "`grep naeren256i $WORKDIR/naetab$$ 2> /dev/null`" != "" ] ; then echo " RC4 256-bit encryption" fi if [ "`grep naed4ci $WORKDIR/naetab$$ 2> /dev/null`" != "" ] ; then echo " DES40 40-bit encryption" fi if [ "`grep naed5ci $WORKDIR/naetab$$ 2> /dev/null`" != "" ] ; then echo " DES 56-bit encryption" fi if [ "`grep naed112ci $WORKDIR/naetab$$ 2> /dev/null`" != "" ] ; then echo " 3DES 112-bit encryption" fi if [ "`grep naed168ci $WORKDIR/naetab$$ 2> /dev/null`" != "" ] ; then echo " 3DES 168-bit encryption" fi if [ "`grep naea128i $WORKDIR/naetab$$ 2> /dev/null`" != "" ] ; then echo " AES 128-bit encryption" fi if [ "`grep naea192i $WORKDIR/naetab$$ 2> /dev/null`" != "" ] ; then echo " AES 192-bit encryption" fi if [ "`grep naea256i $WORKDIR/naetab$$ 2> /dev/null`" != "" ] ; then echo " AES 256-bit encryption" fi if [ "`grep naemd5i $WORKDIR/naetab$$ 2> /dev/null`" != "" ] ; then echo " MD5 crypto-checksumming" fi if [ "`grep naeshai $WORKDIR/naetab$$ 2> /dev/null`" != "" ] ; then echo " SHA crypto-checksumming (for FIPS)" fi if [ "`grep naesh1i $WORKDIR/naetab$$ 2> /dev/null`" != "" ] ; then echo " SHA-1 crypto-checksumming" fi if [ "`grep nauk5akerberos $WORKDIR/nautab$$ 2> /dev/null`" != "" ] ; then echo " Kerberos v5 authentication" fi if [ "`grep nauradius $WORKDIR/nautab$$ 2> /dev/null`" != "" ] ; then echo " RADIUS authentication" fi if [ "`${COMMAND} $LIBPATH/libnnzentr${VER}.${SO_EXT} 2> /dev/null | grep nztwvelogin 2> /dev/null`" != "" ] ; then echo " ENTRUST authentication" fi elif test $# -eq 1 then EXECUTABLE=$1 if [ ! -x $EXECUTABLE ] ; then echo "Executable does not exist! Goodbye..." exit 0 fi $COMMAND $EXECUTABLE >$WORKDIR/exec$$ 2>/dev/null echo "" echo "${TRANSPORT_TITLE} linked with $EXECUTABLE are:" echo "" # IPC if [ "`grep ntusini $WORKDIR/exec$$ 2> /dev/null`" != "" ] ; then echo " IPC" fi # Named Pipes if [ "`grep ntnini $WORKDIR/exec$$ 2> /dev/null`" != "" ] ; then echo " Named Pipes" fi # Bequeath if [ "`grep ntpini $WORKDIR/exec$$ 2> /dev/null`" != "" ] ; then echo " BEQ" fi # TCP/IP if [ "`grep nttini $WORKDIR/exec$$ 2> /dev/null`" != "" ] ; then echo " TCP/IP" fi # SSL if [ "`grep ntzini $WORKDIR/exec$$ 2> /dev/null`" != "" ] ; then echo " SSL" fi # SDP/IB if [ "`grep nttsdpini $WORKDIR/exec$$ 2> /dev/null`" != "" ] ; then echo " SDP/IB" fi # RAW if [ "`grep ntrini $WORKDIR/exec$$ 2> /dev/null`" != "" ] ; then echo " RAW" fi # Async if [ "`grep ntasgini $WORKDIR/exec$$ 2> /dev/null`" != "" ] ; then echo " Async" fi # DECNet if [ "`grep ntdini $WORKDIR/exec$$ 2> /dev/null`" != "" ] ; then echo " DECnet" fi # SPX/IPX if [ "`grep ntsini $WORKDIR/exec$$ 2> /dev/null`" != "" ] ; then echo " SPX/IPX" fi # OSI if [ "`grep ntio4ini $WORKDIR/exec$$ 2> /dev/null`" != "" ] ; then echo " OSI" fi # LU6.2 if [ "`grep ntlini $WORKDIR/exec$$ 2> /dev/null`" != "" ] ; then echo " LU6.2" fi # Banyan if [ "`grep ntvini $WORKDIR/exec$$ 2> /dev/null`" != "" ] ; then echo " Banyan" fi # AppleTalk if [ "`grep ntatini $WORKDIR/exec$$ 2> /dev/null`" != "" ] ; then echo " AppleTalk" fi # DCE if [ "`grep ntodrini $WORKDIR/exec$$ 2> /dev/null`" != "" ] ; then echo " DCE" fi echo "" echo "${NAMING_TITLE} linked with $EXECUTABLE are:" echo "" # Naming Methods for N in ${NATIVE}; do BAS=`echo ${NtoBAS} | sed 's/ /\\ /g' | grep "^${N}:" | awk -F: '{print $2}'` NAM=`echo ${NtoNAM} | sed 's/ /\\ /g' | grep "^${N}:" | awk -F: '{print $2}' | sed 's/\~/ /g'` if [ "`grep ${BAS}boot $WORKDIR/exec$$ 2> /dev/null`" != "" ] ; then echo " ${NAM}" fi done # # Oracle Advanced Security # echo "" echo "${SECURITY_TITLE} linked with $EXECUTABLE are:" echo "" if [ "`grep naereni $WORKDIR/naetab$$ 2> /dev/null`" != "" ] ; then echo " RC4 40-bit encryption" fi if [ "`grep naeren56i $WORKDIR/naetab$$ 2> /dev/null`" != "" ] ; then echo " RC4 56-bit encryption" fi if [ "`grep naeren128i $WORKDIR/naetab$$ 2> /dev/null`" != "" ] ; then echo " RC4 128-bit encryption" fi if [ "`grep naeren256i $WORKDIR/naetab$$ 2> /dev/null`" != "" ] ; then echo " RC4 256-bit encryption" fi if [ "`grep naed4ci $WORKDIR/naetab$$ 2> /dev/null`" != "" ] ; then echo " DES40 40-bit encryption" fi if [ "`grep naed5ci $WORKDIR/naetab$$ 2> /dev/null`" != "" ] ; then echo " DES 56-bit encryption" fi if [ "`grep naed112ci $WORKDIR/naetab$$ 2> /dev/null`" != "" ] ; then echo " 3DES 112-bit encryption" fi if [ "`grep naed168ci $WORKDIR/naetab$$ 2> /dev/null`" != "" ] ; then echo " 3DES 168-bit encryption" fi if [ "`grep naea128i $WORKDIR/naetab$$ 2> /dev/null`" != "" ] ; then echo " AES 128-bit encryption" fi if [ "`grep naea192i $WORKDIR/naetab$$ 2> /dev/null`" != "" ] ; then echo " AES 192-bit encryption" fi if [ "`grep naea256i $WORKDIR/naetab$$ 2> /dev/null`" != "" ] ; then echo " AES 256-bit encryption" fi if [ "`grep naemd5i $WORKDIR/naetab$$ 2> /dev/null`" != "" ] ; then echo " MD5 crypto-checksumming" fi if [ "`grep naeshai $WORKDIR/naetab$$ 2> /dev/null`" != "" ] ; then echo " SHA crypto-checksumming (for FIPS)" fi if [ "`grep naesh1i $WORKDIR/naetab$$ 2> /dev/null`" != "" ] ; then echo " SHA-1 crypto-checksumming" fi if [ "`grep nauk5akerberos $WORKDIR/nautab$$ 2> /dev/null`" != "" ] ; then echo " Kerberos v5 authentication" fi if [ "`grep nauradius $WORKDIR/nautab$$ 2> /dev/null`" != "" ] ; then echo " RADIUS authentication" fi if [ "`${COMMAND} $LIBPATH/libnnzentr${VER}.${SO_EXT} 2> /dev/null | grep nztwvelogin 2> /dev/null`" != "" ] ; then echo " ENTRUST authentication" fi else echo "usage: adapters " exit 1 fi # Clean up all working files that are appended with this process id rm -f $WORKDIR/*$$