cryptomgmtlibs/securitytestfw/test/autotesting/configchangebats.pl
changeset 8 35751d3474b7
parent 0 2c201484c85f
--- a/cryptomgmtlibs/securitytestfw/test/autotesting/configchangebats.pl	Tue Jul 21 01:04:32 2009 +0100
+++ b/cryptomgmtlibs/securitytestfw/test/autotesting/configchangebats.pl	Thu Sep 10 14:01:51 2009 +0300
@@ -1,329 +1,334 @@
-#
-# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of the License "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description: 
-# This script is designed to provide a working ethernet setup
-# for EKA1 or EKA2.  It works by running Netcards.exe
-# then taking the output from Netcards (ethernet.ini)
-# and appending the ethernet settings to epoc.ini for EKA2
-# or creating ethermac.dat and etherdriver.dat for EKA1
-# The script can
-# - create a working ethernet setup with "ethernet" config option
-# - restore previous setup with "restore" config option
-# Please note: The script assumes that target wins is running on EKA1
-# Copied from configchange.pl to make use of environment varible for mac address
-# Copied from configchangebats.pl to adapt for multiple network cards in "Blade" type servers.
-#
-
-use Getopt::Long;
-use Cwd;
-
-use Getopt::Long;
-use Cwd;
-
-my $config="default";
-my $target="default";
-my $kernel="default";
-my $showhelp='0';
-
-my $etherNif;
-my $etherMac = $ENV{'WINSCW_MAC'};
-my $etherSpeed; 
-
-# this variable is passed as an argument to netcards.exe
-# specifies which interface to use in case of multiple interfaces
-
-my $interface=0;
-
-$/ = "\n";
-
-GetOptions('config=s' => \$config, 'kernel=s' => \$kernel, 'target=s' => \$target, 'variant=s' => \$variant, 'help' => \$showhelp, 'interface:i' => \$interface);
-
-$config = lc( $config );
-$kernel = lc( $kernel );
-$target = lc( $target );
-$variant = lc( $variant );
-
-
-
-if( $showhelp || ( $kernel ne "eka1" && $kernel ne "eka2" ) ||
- ( $target ne "wins" && $target ne "winscw" ) ||
- ( $config ne "ethernetwithcommdb" && $config ne "restorecommdb" && $config ne "ethernetnocommdb" ) ||
- ( $variant ne "udeb" && $variant ne "urel" ) )
-	{
-	print "Command usage: configchange --config [ethernetWithCommDB|restoreCommDB|ethernetNoCommDB] --kernel [EKA1|EKA2] --target [wins|winscw] --variant [UDEB|UREL]\n";
-	print "\t\t--config   \tSelect required configuration\n";
-	print "\t\t--kernel   \tKernel variant\n";
-	print "\t\t--target   \tTarget emulator\n";
-	print "\t\t--variant  \tBuild type\n";
-	print "\t\t--interface  \tInterface Number\n";
-	print "\t\t--help   \tThis text\n";
-	exit 0;
-	}
-
-my $epocroot = &getEpocroot;
-my $drive = &getDrive;
-
-if($ENV{'SERVER_TYPE'} && $ENV{'SERVER_TYPE'} =~ /blade/i){
-  $interface=1;
-}
-
-
-my $netIF = "";
-my $netConfigOutput  = `net config rdr`;
-
-# Sample output:
-#J:\epoc32\winscw\c>net config rdr
-#Computer name                        \\SYWINPAP0005
-#Full Computer name                   SYWINPAP0005.prod.ad.symbian.intra
-#User name                            extkesavanathimoolam
-#
-#Workstation active on
-#        NetbiosSmb (000000000000)
-#        NetBT_Tcpip_{0B887A6F-A34C-4A43-85A4-FA5D58BEEE8A} (00215E2CB2F6)
-
-
-# capture the network-interface info to compare it later with netcards output
-if($netConfigOutput =~ /NetBT_Tcpip_\{(.*)?\}/i){
-        $netIF = $1;
-}
-
-
-# netcards output sample
-#J:\epoc32\winscw\c>\epoc32\tools\netcards.exe 1
-#Adapters installed:
-#N/A - \Device\NPF_GenericDialupAdapter
-#        Adapter for generic dialup and VPN capture
-#
-#  1 - \Device\NPF_{0B887A6F-A34C-4A43-85A4-FA5D58BEEE8A}
-#        Broadcom Advanced Server Program Driver for Windows Server 2003 with SNP
-#
-#
-#  2 - \Device\NPF_{11F02767-7BDE-49FF-87F2-FD7F46FA8C60}
-#        Broadcom L2 NDIS client driver
-#
-#  3 - \Device\NPF_{9672396E-2361-42BF-80CF-1E03AF7BD59F}
-#        Broadcom L2 NDIS client driver
-#
-#Using adapter 1
-#Physical address read: 00:21:5e:2c:b2:f6
-#Writing settings to ethernet.ini.
-
-
-$netCardsCommand = "$drive\\$epocroot\\epoc32\\tools\\netcards $interface";
-foreach (split("\n",`$netCardsCommand`)){
-        if(/\s*(\d)\s+\-\s+.*?$netIF/){
-               $interface = $1;
-			   last;
-	}
-}
-
-
- 
-
-if( $config ne "restorecommdb" )
-	{
-	# must be creating some ethernet setup
-	if( $config eq "ethernetwithcommdb" )
-		{
-		# write an appropriate commDB setup
-		print( "Setting up CommDB for ethernet\n" );
-		system( "$drive\\$epocroot\\epoc32\\release\\$target\\$variant\\ceddump" ) == 0 
-				or die "Error running ceddump!\n";
-		system( "move $drive\\$epocroot\\epoc32\\$target\\c\\cedout.cfg $drive\\$epocroot\\epoc32\\$target\\c\\nonethernetced.cfg" ) == 0
-				or die "Failed to rename cedout.cfg!\n";
-		system( "$drive\\$epocroot\\epoc32\\release\\$target\\$variant\\ced -dtextshell -- -i c:\\EthernetCed.xml") == 0
-				or die "Error running ced!\n";
-  		}
-  	print( "Running Netcards to obtain adapter info\n" );
-	system( "$drive\\$epocroot\\epoc32\\tools\\netcards $interface" ) == 0
-			or die "Error running netcards!\n";
-
-	open ( INFILE, "ethernet.ini" ) or die "Can't find netcards output file, ethernet.ini!\n";					 # get from current directory where netcards wrote it to
-
-	if ($kernel eq "eka1")
-		{
-	   	open ( ETHERDRV, ">$drive\\$epocroot\\epoc32\\$target\\c\\system\\data\\etherdriver.dat" ) or die "Can't open $drive\\$epocroot\\epoc32\\$target\\c\\system\\data\\etherdriver.dat!\n";
-	   	}
-
-	while( <INFILE> )
-		{
-		chomp;
-	   	my $sLine = $_;
-
-		if( $sLine =~ /ETHER_NIF=(.*)/i )
-			{
-			#print "Matched ETHER_NIF\n";
-			if ($kernel eq "eka1")
-				{
-				print ETHERDRV "$1";
-    			}
-			else
-				{
-				$etherNif = $1;
-				}
-			}
-		elsif( $sLine =~ /ETHER_SPEED=(.*)/i )
-			{
-			#print "Matched ETHER_SPEED\n";
-			if ($kernel eq "eka2")
-				{
-				$etherSpeed = $1;
-    			}
-			}
-		#print "line: $sLine\n";
-		}
-	if ($kernel eq "eka1")
-		{
-		close( ETHERDRV );
-  		}
-  	else
-  		{
-  		# do the insertion to epoc.ini
-  		&generateEpocIni;
-    	}
-	close( INFILE );
-	}
-else
-	{
-	if( -f "$drive\\$epocroot\\epoc32\\$target\\c\\nonethernetced.cfg" )
-		{
-		system( "$drive\\$epocroot\\epoc32\\release\\$target\\$variant\\ced -i c:\\nonethernetced.cfg" ) == 0
-				or die "Can't find backup ced file!\n";
-		system( "move $drive\\$epocroot\\epoc32\\$target\\c\\nonethernetced.cfg $drive\\$epocroot\\epoc32\\$target\\c\\cedout.cfg" ) == 0
-				or die "Can't rename backup ced file!\n";
-		}
-	else
-		{
-		print "No restore file found!\n";
-		}
-	}
-
-
-
-
-#
-# Determines, validates, and returns EPOCROOT.
-#
-sub getEpocroot
-{
-    my $epocroot = $ENV{EPOCROOT};
-    die "ERROR: Must set the EPOCROOT environment variable.\n"
-	if (!defined($epocroot));
-    $epocroot =~ s-/-\\-go;	# for those working with UNIX shells
-    die "ERROR: EPOCROOT must be an absolute path, " .
-	"not containing a drive letter.\n" if ($epocroot !~ /^\\/);
-    die "ERROR: EPOCROOT must not be a UNC path.\n" if ($epocroot =~ /^\\\\/);
-    die "ERROR: EPOCROOT must end with a backslash.\n" if ($epocroot !~ /\\$/);
-    die "ERROR: EPOCROOT must specify an existing directory.\n"
-	if (!-d $epocroot);
-    return $epocroot;
-}
-
-#
-# Determines and returns the current drive, if any.
-#
-sub getDrive
-{
-    my $wd = cwd;
-    my $drive;
-    if($wd =~ /^([a-zA-Z]:)/) {
-	$drive = $1;
-    } else {
-	# Perhaps we're on a machine that has no drives.
-	$drive = "";
-    }
-    return $drive;
-}
-
-#
-#
-#
-sub generateEpocIni
-{
-	my @outLines;
-	my $length = 0;
-	my $needToAppend = TRUE;
-	my $epocIniAlreadyExists = FALSE;
-	my $finished = FALSE;
- 	print "generating epoc ini\n";
-	if ( -e "$drive\\$epocroot\\epoc32\\data\\epoc.ini" )
-	   {
-	   $epocIniAlreadyExists = TRUE;
- 	   open( EPOCINI, "+<$drive\\$epocroot\\epoc32\\data\\epoc.ini" );
-	   seek( EPOCINI, 0, 0 );
-	   while( <EPOCINI> )
-	   		{
-			chomp;
-	   		my $sLine = $_;
-			if( $sLine =~ /ETHER_NIF=(.*)/i )
-				{
-				#print "matched etherNIF\n";
-				$length = length( $etherNif );
-				
-    			substr( $sLine, (index( $sLine, "=" )+1), $length ) = $etherNif;
-				$needToAppend = FALSE;
-				}
-			elsif( $sLine =~ /ETHER_MAC=(.*)/i )
-				{
-				print "Matched ETHER_MAC\n";
-				$length = length( $etherMac );
-				substr( $sLine, (index( $sLine, "=" )+1), $length ) = $etherMac;
-				$needToAppend = FALSE;
-	    		}
-			elsif( $sLine =~ /ETHER_SPEED=(.*)/i )
-				{
-				#print "Matched etherSpeed\n";
-    			$length = length( $etherSpeed );
-				substr( $sLine, (index( $sLine, "=" )+1), $length ) = $etherSpeed;
-				$needToAppend = FALSE;
-	   			}
-			push( @outLines, $sLine );
-			push( @outLines, "\n" );
-	   		}
-	   	if ( $needToAppend eq FALSE )
-	   	   	{
-	   	   	print "Writing new settings into epoc.ini\n";
-	   	   	# we have read the entire file and replaced what we need to
-	   	   	# now lets write it back to the file
-		   	seek( EPOCINI, 0, 0 );
-	   	   	print EPOCINI @outLines;
-	   	   	$finished = TRUE;
-           	}
-        close ( EPOCINI );
-		}
-
-	if ( $finished eq FALSE )
-	    {
-       	if ( ($needToAppend eq TRUE) && ($epocIniAlreadyExists eq TRUE) )
-       	    {
-       	    print "Appending settings to current epoc.ini\n";
-       	  	# we must append all the settings onto the end of the current epoc.ini
-	   	  	open( EPOCINI, ">>$drive\\$epocroot\\epoc32\\data\\epoc.ini" ) or die "Can't open epoc.ini!\n";
-       	  	}
-    	elsif ( $epocIniAlreadyExists eq FALSE )
-       	 	{
-       	 	print "Creating new epoc.ini\n";
-       	  	# create new file
-	   	  	open( EPOCINI, ">$drive\\$epocroot\\epoc32\\data\\epoc.ini" );
-       	  	}
-
-		print EPOCINI "\nETHER_NIF=";
-	   	print EPOCINI "$etherNif\n";
-	   	print EPOCINI "ETHER_MAC=";
-	   	print EPOCINI "$etherMac\n";
-	   	print EPOCINI "ETHER_SPEED=";
-	   	print EPOCINI "$etherSpeed\n";
-	   	close ( EPOCINI );
-     	}
-}
+#
+# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: 
+# This script is designed to provide a working ethernet setup
+# for EKA1 or EKA2.  It works by running Netcards.exe
+# then taking the output from Netcards (ethernet.ini)
+# and appending the ethernet settings to epoc.ini for EKA2
+# or creating ethermac.dat and etherdriver.dat for EKA1
+# The script can
+# - create a working ethernet setup with "ethernet" config option
+# - restore previous setup with "restore" config option
+# Please note: The script assumes that target wins is running on EKA1
+# Copied from configchange.pl to make use of environment varible for mac address
+# Copied from configchangebats.pl to adapt for multiple network cards in "Blade" type servers.
+#
+
+use Getopt::Long;
+use Cwd;
+
+use Getopt::Long;
+use Cwd;
+
+my $config="default";
+my $target="default";
+my $kernel="default";
+my $showhelp='0';
+
+my $etherNif;
+my $etherMac = $ENV{'WINSCW_MAC'};
+my $etherSpeed; 
+
+# this variable is passed as an argument to netcards.exe
+# specifies which interface to use in case of multiple interfaces
+
+my $interface=0;
+
+$/ = "\n";
+
+GetOptions('config=s' => \$config, 'kernel=s' => \$kernel, 'target=s' => \$target, 'variant=s' => \$variant, 'help' => \$showhelp, 'interface:i' => \$interface);
+
+$config = lc( $config );
+$kernel = lc( $kernel );
+$target = lc( $target );
+$variant = lc( $variant );
+
+
+
+if( $showhelp || ( $kernel ne "eka1" && $kernel ne "eka2" ) ||
+ ( $target ne "wins" && $target ne "winscw" ) ||
+ ( $config ne "ethernetwithcommdb" && $config ne "restorecommdb" && $config ne "ethernetnocommdb" ) ||
+ ( $variant ne "udeb" && $variant ne "urel" ) )
+	{
+	print "Command usage: configchange --config [ethernetWithCommDB|restoreCommDB|ethernetNoCommDB] --kernel [EKA1|EKA2] --target [wins|winscw] --variant [UDEB|UREL]\n";
+	print "\t\t--config   \tSelect required configuration\n";
+	print "\t\t--kernel   \tKernel variant\n";
+	print "\t\t--target   \tTarget emulator\n";
+	print "\t\t--variant  \tBuild type\n";
+	print "\t\t--interface  \tInterface Number\n";
+	print "\t\t--help   \tThis text\n";
+	exit 0;
+	}
+
+my $epocroot = &getEpocroot;
+my $drive = &getDrive;
+
+if($ENV{'SERVER_TYPE'} && $ENV{'SERVER_TYPE'} =~ /blade/i){
+  $interface=1;
+}
+
+
+my $netIF = "";
+my $netConfigOutput  = `net config rdr`;
+
+# Sample output:
+#J:\epoc32\winscw\c>net config rdr
+#Computer name                        \\SYWINPAP0005
+#Full Computer name                   SYWINPAP0005.prod.ad.symbian.intra
+#User name                            extkesavanathimoolam
+#
+#Workstation active on
+#        NetbiosSmb (000000000000)
+#        NetBT_Tcpip_{0B887A6F-A34C-4A43-85A4-FA5D58BEEE8A} (00215E2CB2F6)
+
+
+# capture the network-interface info to compare it later with netcards output
+if($netConfigOutput =~ /NetBT_Tcpip_\{(.*)?\}/i){
+        $netIF = $1;
+}
+
+
+# netcards output sample
+#J:\epoc32\winscw\c>\epoc32\tools\netcards.exe 1
+#Adapters installed:
+#N/A - \Device\NPF_GenericDialupAdapter
+#        Adapter for generic dialup and VPN capture
+#
+#  1 - \Device\NPF_{0B887A6F-A34C-4A43-85A4-FA5D58BEEE8A}
+#        Broadcom Advanced Server Program Driver for Windows Server 2003 with SNP
+#
+#
+#  2 - \Device\NPF_{11F02767-7BDE-49FF-87F2-FD7F46FA8C60}
+#        Broadcom L2 NDIS client driver
+#
+#  3 - \Device\NPF_{9672396E-2361-42BF-80CF-1E03AF7BD59F}
+#        Broadcom L2 NDIS client driver
+#
+#Using adapter 1
+#Physical address read: 00:21:5e:2c:b2:f6
+#Writing settings to ethernet.ini.
+
+
+$netCardsCommand = "$drive\\$epocroot\\epoc32\\tools\\netcards $interface";
+foreach (split("\n",`$netCardsCommand`)){
+        if(/\s*(\d)\s+\-\s+.*?$netIF/){
+               $interface = $1;
+			   last;
+	}
+}
+
+
+ 
+
+if( $config ne "restorecommdb" )
+	{
+	# must be creating some ethernet setup
+	if( $config eq "ethernetwithcommdb" )
+		{
+		# write an appropriate commDB setup
+		print( "Setting up CommDB for ethernet\n" );
+		system( "$drive\\$epocroot\\epoc32\\release\\$target\\$variant\\ceddump" ) == 0 
+				or die "Error running ceddump!\n";
+		system( "move $drive\\$epocroot\\epoc32\\$target\\c\\cedout.cfg $drive\\$epocroot\\epoc32\\$target\\c\\nonethernetced.cfg" ) == 0
+				or die "Failed to rename cedout.cfg!\n";
+		system( "$drive\\$epocroot\\epoc32\\release\\$target\\$variant\\ced -dtextshell -- -i c:\\EthernetCed.xml") == 0
+				or die "Error running ced!\n";
+  		}
+  	print( "Running Netcards to obtain adapter info\n" );
+	system( "$drive\\$epocroot\\epoc32\\tools\\netcards $interface" ) == 0
+			or die "Error running netcards!\n";
+
+	open ( INFILE, "ethernet.ini" ) or die "Can't find netcards output file, ethernet.ini!\n";					 # get from current directory where netcards wrote it to
+
+	if ($kernel eq "eka1")
+		{
+	   	open ( ETHERDRV, ">$drive\\$epocroot\\epoc32\\$target\\c\\system\\data\\etherdriver.dat" ) or die "Can't open $drive\\$epocroot\\epoc32\\$target\\c\\system\\data\\etherdriver.dat!\n";
+	   	}
+
+	while( <INFILE> )
+		{
+		chomp;
+	   	my $sLine = $_;
+
+		if( $sLine =~ /ETHER_NIF=(.*)/i )
+			{
+			#print "Matched ETHER_NIF\n";
+			if ($kernel eq "eka1")
+				{
+				print ETHERDRV "$1";
+    			}
+			else
+				{
+				$etherNif = $1;
+				}
+			}
+		elsif( $sLine =~ /ETHER_SPEED=(.*)/i )
+			{
+			#print "Matched ETHER_SPEED\n";
+			if ($kernel eq "eka2")
+				{
+				$etherSpeed = $1;
+    			}
+			}
+		#print "line: $sLine\n";
+		}
+	if ($kernel eq "eka1")
+		{
+		close( ETHERDRV );
+  		}
+  	else
+  		{
+  		# do the insertion to epoc.ini
+  		&generateEpocIni;
+    	}
+	close( INFILE );
+	}
+else
+	{
+	if( -f "$drive\\$epocroot\\epoc32\\$target\\c\\nonethernetced.cfg" )
+		{
+		system( "$drive\\$epocroot\\epoc32\\release\\$target\\$variant\\ced -i c:\\nonethernetced.cfg" ) == 0
+				or die "Can't find backup ced file!\n";
+		system( "move $drive\\$epocroot\\epoc32\\$target\\c\\nonethernetced.cfg $drive\\$epocroot\\epoc32\\$target\\c\\cedout.cfg" ) == 0
+				or die "Can't rename backup ced file!\n";
+		}
+	else
+		{
+		print "No restore file found!\n";
+		}
+	}
+
+
+
+
+#
+# Determines, validates, and returns EPOCROOT.
+#
+sub getEpocroot
+{
+    my $epocroot = $ENV{EPOCROOT};
+    die "ERROR: Must set the EPOCROOT environment variable.\n"
+	if (!defined($epocroot));
+    $epocroot =~ s-/-\\-go;	# for those working with UNIX shells
+    die "ERROR: EPOCROOT must be an absolute path, " .
+	"not containing a drive letter.\n" if ($epocroot !~ /^\\/);
+    die "ERROR: EPOCROOT must not be a UNC path.\n" if ($epocroot =~ /^\\\\/);
+    die "ERROR: EPOCROOT must end with a backslash.\n" if ($epocroot !~ /\\$/);
+    die "ERROR: EPOCROOT must specify an existing directory.\n"
+	if (!-d $epocroot);
+    return $epocroot;
+}
+
+#
+# Determines and returns the current drive, if any.
+#
+sub getDrive
+{
+    my $wd = cwd;
+    my $drive;
+    if($wd =~ /^([a-zA-Z]:)/) {
+	$drive = $1;
+    } else {
+	# Perhaps we're on a machine that has no drives.
+	$drive = "";
+    }
+    return $drive;
+}
+
+#
+#
+#
+sub generateEpocIni
+{
+	my @outLines;
+	my $length = 0;
+	my $needToAppend = TRUE;
+	my $epocIniAlreadyExists = FALSE;
+	my $finished = FALSE;
+ 	print "generating epoc ini\n";
+	if ( -e "$drive\\$epocroot\\epoc32\\data\\epoc.ini" )
+	   {
+	   $epocIniAlreadyExists = TRUE;
+ 	   open( EPOCINI, "+<$drive\\$epocroot\\epoc32\\data\\epoc.ini" );
+	   seek( EPOCINI, 0, 0 );
+	   while( <EPOCINI> )
+	   		{
+			chomp;
+	   		my $sLine = $_;
+			if( $sLine =~ /ETHER_NIF=(.*)/i )
+				{
+				#print "matched etherNIF\n";
+				$length = length( $etherNif );
+				
+    			substr( $sLine, (index( $sLine, "=" )+1), $length ) = $etherNif;
+				$needToAppend = FALSE;
+				}
+			elsif( $sLine =~ /ETHER_MAC=(.*)/i )
+				{
+				print "Matched ETHER_MAC\n";
+				$length = length( $etherMac );
+				substr( $sLine, (index( $sLine, "=" )+1), $length ) = $etherMac;
+				$needToAppend = FALSE;
+	    		}
+			elsif( $sLine =~ /ETHER_SPEED=(.*)/i )
+				{
+				#print "Matched etherSpeed\n";
+    			$length = length( $etherSpeed );
+				substr( $sLine, (index( $sLine, "=" )+1), $length ) = $etherSpeed;
+				$needToAppend = FALSE;
+	   			}
+			push( @outLines, $sLine );
+			push( @outLines, "\n" );
+	   		}
+	   	if ( $needToAppend eq FALSE )
+	   	   	{
+	   	   	print "Writing new settings into epoc.ini\n";
+	   	   	# we have read the entire file and replaced what we need to
+	   	   	# now lets write it back to the file
+		   	seek( EPOCINI, 0, 0 );
+	   	   	print EPOCINI @outLines;
+	   	   	$finished = TRUE;
+           	}
+        close ( EPOCINI );
+		}
+
+	if ( $finished eq FALSE )
+	    {
+       	if ( ($needToAppend eq TRUE) && ($epocIniAlreadyExists eq TRUE) )
+       	    {
+       	    print "Appending settings to current epoc.ini\n";
+       	  	# we must append all the settings onto the end of the current epoc.ini
+	   	  	open( EPOCINI, ">>$drive\\$epocroot\\epoc32\\data\\epoc.ini" ) or die "Can't open epoc.ini!\n";
+       	  	}
+    	elsif ( $epocIniAlreadyExists eq FALSE )
+       	 	{
+       	 	print "Creating new epoc.ini\n";
+       	  	# create new file
+	   	  	open( EPOCINI, ">$drive\\$epocroot\\epoc32\\data\\epoc.ini" );
+       	  	}
+
+		print EPOCINI "\nETHER_NIF=";
+	   	print EPOCINI "$etherNif\n";
+	   	print EPOCINI "ETHER_MAC=";
+	   	print EPOCINI "$etherMac\n";
+	   	print EPOCINI "ETHER_SPEED=";
+	   	print EPOCINI "$etherSpeed\n";
+	   	close ( EPOCINI );
+     	}
+}
+
+
+
+
+