#!/bin/bash
# Copyright (C) 2004 Networks Associates Technology Inc. All rights reserved.

if [ -f $NETAWSS/.profile.vars ]; then 
 . $NETAWSS/.profile.vars 
else 
 . /var/NAIENV/.profile.vars 
fi 
PATH=$wsPATH:$PATH
shopt -s extglob

# we don't want stdin
exec </dev/null

xsltproc -  ${XMLCONFDIR}/machine.xml <<-END
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>

<xsl:template match="/">
	<xsl:for-each select="/PolicySet/GlobalSettings[@name='machine']/Policy[@name='system_variables']/PolicyStatement/Settings[@name='network-settings'][1]">
		<xsl:call-template name="config"/>
	</xsl:for-each>
</xsl:template>

<xsl:template name="config">
 [req]
 distinguished_name     = req_distinguished_name
 prompt                 = no
 x509_extensions        = req_extensions

 [req_distinguished_name]
 C                      = GB
 ST                     = .
 L                      = WebShield Configuration 
 O                      = Network Associates Inc.
 OU                     = McAfee
 CN                     = <xsl:call-template name="first_ip"/>
 emailAddress           = support@nai.com

 [req_extensions]
 subjectAltName         = <xsl:call-template name="dns_name"/><xsl:call-template name="ip_list"/>IP:127.0.0.1
</xsl:template>

<xsl:template name="dns_name">
	<xsl:text>DNS:</xsl:text>
	<xsl:value-of select="Attr[@name='IPHostname']/@value"/>
	<xsl:text>,</xsl:text>
	<xsl:text>DNS:</xsl:text>
	<xsl:value-of select="Attr[@name='IPHostname']/@value"/>
	<xsl:text>.</xsl:text>
	<xsl:value-of select="Attr[@name='IPDomainName']/@value"/>
	<xsl:text>,</xsl:text>
</xsl:template>

<xsl:template name="first_ip">
	<xsl:value-of select="NetObjectList[@type='NIC']/NetObject[@type='NIC'][State/@value='on'][1]/Address/@value"/>
</xsl:template>

<xsl:template name="ip_list">
	<xsl:for-each select="NetObjectList[@type='NIC']/NetObject[@type='NIC'][State/@value='on']">
		<xsl:text>IP:</xsl:text>
		<xsl:value-of select="Address/@value"/>
		<xsl:text>,</xsl:text>
	</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
END
exit 0
