OpenSolaris_b135/pkgdefs/common_files/i.sock2path

#!/bin/sh
#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#

while read src dest
do
	if [ ! -f $dest ] ; then
		cp $src $dest
	else
		# Remove AF_INET-specific /dev/rts entry introduced in 2.6
		grep -v "[ 	]*24[ 	]\{1,\}4[ 	]\{1,\}2[ 	]\{1,\}/dev/rts" \
			$dest > /tmp/d.$$
		cp /tmp/d.$$ $dest
		rm -f /tmp/d.$$
		grep '/dev/rts' $dest > /dev/null 2>&1
		if [ $? != 0 ] ; then
			echo >> $dest
			grep '/dev/rts' $src >> $dest
		fi
		grep '/dev/tcp6' $dest > /dev/null 2>&1
		if [ $? != 0 ] ; then
			echo >> $dest
			grep '/dev/tcp6' $src >> $dest
		fi
		grep '/dev/udp6' $dest > /dev/null 2>&1
		if [ $? != 0 ] ; then
			echo >> $dest
			grep '/dev/udp6' $src >> $dest
		fi
		grep '/dev/rawip6' $dest > /dev/null 2>&1
		if [ $? != 0 ] ; then
			echo >> $dest
			grep '/dev/rawip6' $src >> $dest
		fi
		grep '/dev/sctp\>' $dest > /dev/null 2>&1
		if [ $? != 0 ] ; then
			grep '/dev/sctp\>' $src >> $dest
		fi
		grep '/dev/sctp6' $dest > /dev/null 2>&1
		if [ $? != 0 ] ; then
			grep '/dev/sctp6' $src >> $dest
		fi
		grep '/dev/keysock' $dest > /dev/null 2>&1
		if [ $? != 0 ] ; then
			echo >> $dest
			grep '/dev/keysock' $src >> $dest
		fi
		grep '/dev/nca' $dest > /dev/null 2>&1
		if [ $? != 0 ] ; then
			echo >> $dest
			grep '/dev/nca' $src >> $dest
		fi
		grep '/dev/spdsock' $dest > /dev/null 2>&1
		if [ $? != 0 ] ; then
			echo >> $dest
			grep '/dev/spdsock' $src >> $dest
		fi
		grep 'trill' $dest > /dev/null 2>&1
		if [ $? != 0 ] ; then
			echo >> $dest
			grep 'trill' $src >> $dest
		fi
		grep "^#" $dest | awk '{
			if ($5=="Path") {print $0 "|Module"}
			else {print $0}}' > /tmp/i.$$
		grep -v "^#" $dest | awk '{
			if ($4=="/dev/tcp" || $4=="/dev/tcp6") {
				print "\t" $1 "\t" $2 "\t" $3 "\ttcp"
			} else if ($4=="/dev/udp" || $4=="/dev/udp6") {
				print "\t" $1 "\t" $2 "\t" $3 "\tudp"
			} else if ($4=="/dev/rawip" || $4=="/dev/rawip6") {
				print "\t" $1 "\t" $2 "\t" $3 "\ticmp"
			} else if ($4=="/dev/sctp" || $4=="/dev/sctp6") {
				print "\t" $1  "\t" $2 "\t" $3 "\tsocksctp"
			} else if ($4=="/dev/rts") {
				print "\t" $1 "\t" $2 "\t" $3 "\trts"
			} else if ($4=="/dev/sdp" || $4=="/dev/sdp6") {
				print "\t" $1 "\t" $2 "\t" $3  "\tsocksdp"
			} else {print $0}}' >> /tmp/i.$$
		cp /tmp/i.$$ $dest
		rm -f /tmp/i.$$

		# Set correct permissions
		chmod 0644 $dest
	fi
done

exit 0