Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

366 lines
12 KiB

<%@ Language=VBScript %>
<% Option Explicit %>
<%
'-------------------------------------------------------------------------
' nicinterface_prop.asp: Serve the NIC Configuration Object Task Selector
'
' Copyright (c) Microsoft Corporation. All rights reserved.
'
' Date Description
'28-Feb-01 Creation date
'13-Mar-01 Modified date
'-------------------------------------------------------------------------
%>
<!-- #include virtual="/admin/inc_framework.asp" -->
<!-- #include virtual="/admin/ots_main.asp" -->
<!-- #include file="loc_nicspecific.asp" -->
<!-- #include file="inc_network.asp" -->
<%
'-------------------------------------------------------------------------
' Global Constants
'-------------------------------------------------------------------------
Const NIC_DIM = 6
Const NIC_ID = 0
Const NIC_DESC = 1
Const NIC_NAME = 2
Const NIC_IPADDRESS = 3
Const NIC_DHCP_ENABLED = 4
CONST NIC_SETTINGID = 5
Const NICCARDS_PER_PAGE = 19 'holds max not cards that can
'displayed on to the OTS
'-------------------------------------------------------------------------
' Global Variables
'-------------------------------------------------------------------------
Dim rc ' to hold return code for page
Dim page ' to hold page object
Dim g_bSortRequested
Dim g_iSortCol
Dim g_sSortSequence
Dim g_AppTalkInstalled ' whether appletalk protocol is installed
Dim SOURCE_FILE
SOURCE_FILE = SA_GetScriptFileName()
'======================================================
' Entry point
'======================================================
' Create Page
call SA_CreatePage(L_NIC_OTS_PAGE_TITLE, "", PT_AREA, page )
' Show page
call SA_ShowPage( page )
'======================================================
' Web Framework Event Handlers
'======================================================
'---------------------------------------------------------------------
' Function name: OnInitPage
' Description: Called to signal first time processing for this page.
' Input Variables: PageIn and EventArg
' Output Variables: PageIn, EventArg
' Return Values: TRUE to indicate initialization was successful. FALSE to indicate
' errors. Returning FALSE will cause the page to be abandoned.
' Global Variables: None
' Called to signal first time processing for this page. Use this method
' to do first time initialization tasks.
'---------------------------------------------------------------------
Public Function OnInitPage(ByRef PageIn, ByRef EventArg)
Call SA_TraceOut(SOURCE_FILE, "OnInitPage")
' Sort first column in ascending sequence
g_iSortCol = 0
g_sSortSequence = "A"
End Function
'---------------------------------------------------------------------
' Function name: OnServeAreaPage
' Description: Called when the page needs to be served.
' Input Variables: PageIn, EventArg
' Output Variables: PageIn, EventArg
' Return Values: TRUE to indicate no problems occured. FALSE to indicate errors.
' Returning FALSE will cause the page to be abandoned.
' Global Variables: In:L_(*)-Localization Strings
' Called when the page needs to be served. Use this method to serve content.
'---------------------------------------------------------------------
Public Function OnServeAreaPage(ByRef PageIn, ByRef EventArg)
Err.Clear
on error resume next
Dim table 'to hold table object
Dim colFlags 'to hold flag value
Dim nCount 'to hold count for the loop of NIC collection
Dim count 'to hold count for the loop of NIC collection
Dim cardCount 'to hold card count
Dim cards 'to hold Collection of NIC cards
Dim Connectionstatus 'to hold Connection status of NIC Card
Dim objConnStatus
set objConnStatus = server.CreateObject("MediaStatus.MediaState")
if Err.number <> 0 then
SA_ServeFailurePage L_UNABLETOCREATEOBJECT_ERRORMESSAGE
exit function
end if
Call SA_TraceOut(SOURCE_FILE, "OnServeAreaPage")
' Create the table
table = OTS_CreateTable("","")
' Create columns and add them to the table
'Add hidden column for AdapterID
colFlags = (OTS_COL_FLAG_HIDDEN OR OTS_COL_KEY)
Call OTS_AddTableColumn(table, OTS_CreateColumn( L_ADAPTERID_TEXT, "left",colFlags))
'Column containing Description value for each NIC Card
colFlags = OTS_COL_SORT
Call OTS_AddTableColumn(table, OTS_CreateColumnEx( L_NIC_OTS_COLUMN_NAME, "left",colFlags,20))
'Column containing Type value for each NIC Card
colFlags = OTS_COL_SORT
Call OTS_AddTableColumn(table, OTS_CreateColumnEx( L_NIC_OTS_COLUMN_TYPE, "left",colFlags,20))
'Column containing IP value for each NIC Card
colFlags = OTS_COL_SORT
Call OTS_AddTableColumn(table, OTS_CreateColumnEx( L_NIC_OTS_COLUMN_IPADDRESS,"left", colFlags,15))
'Column containing Configuration for each NIC Card
colFlags = OTS_COL_SORT
Call OTS_AddTableColumn(table, OTS_CreateColumnEx( L_NIC_OTS_COLUMN_CURRENT_CONFIG, "left", colFlags,6))
'Column containing Status for each NIC Card
colFlags = OTS_COL_SORT
Call OTS_AddTableColumn(table, OTS_CreateColumnEx( L_STATUS_TEXT, "left", colFlags,12))
'Get the NICCardCollection
cardCount = GetNICCardCollection(cards)
'Navigation logic
For count = 0 to (cardCount - 1)
Dim nicCard
Dim strTCPIPConfigStatus
nicCard = cards(count)
If ( nicCard(NIC_DHCP_ENABLED) ) Then
strTCPIPConfigStatus = L_NIC_OTS_CONFIG_DHCP
Else
strTCPIPConfigStatus = L_NIC_OTS_CONFIG_MANUAL
End If
if objConnStatus.IsConnected(nicCard(NIC_SETTINGID)) then
Connectionstatus = L_CONNECTED_TEXT
else
Connectionstatus = L_DISCONNECTED_TEXT
end if
nCount = nCount + 1
' select the rows
Call OTS_AddTableRow( table, Array(nicCard(NIC_ID), nicCard(NIC_NAME), nicCard(NIC_DESC), nicCard(NIC_IPADDRESS),strTCPIPConfigStatus,Connectionstatus))
if Count = NICCARDS_PER_PAGE then Exit For
Next
'Add Task title
Call OTS_SetTableTasksTitle(table, L_NIC_OTS_TASK_TITLE)
'Add Rename Task
Call OTS_AddTableTask( table, OTS_CreateTask(L_NIC_OTS_TASK_RENAME, _
L_NIC_OTS_TASK_RENAME_DESC, _
"Network/nicRename_prop.asp",_
OTS_PT_PROPERTY) )
'Add IP Task
Call OTS_AddTableTask( table, OTS_CreateTask(L_NIC_OTS_TASK_IP, _
L_NIC_OTS_TASK_IP_DESC, _
"Network/nicip_prop.asp",_
OTS_PT_TABBED_PROPERTY) )
'Add DNS task
Call OTS_AddTableTask( table, OTS_CreateTask(L_NIC_OTS_TASK_DNS, _
L_NIC_OTS_TASK_DNS_DESC, _
"Network/nicdns_prop.asp",_
OTS_PT_PROPERTY) )
'Add WINS task
Call OTS_AddTableTask( table, OTS_CreateTask(L_NIC_OTS_TASK_WINS, _
L_NIC_OTS_TASK_WINS_DESC, _
"Network/nicwins_prop.asp",_
OTS_PT_PROPERTY) )
'Add AppleTalk task if appletalk protocol is installed
if g_AppTalkInstalled = true then
Call OTS_AddTableTask( table, OTS_CreateTask(L_NIC_OTS_TASK_APPLETALK, _
L_NIC_OTS_TASK_APPLETALK_DESC, _
"Network/nicappletalk_prop.asp",_
OTS_PT_PROPERTY) )
end if
' Enable paging feature
Call OTS_EnablePaging(table, FALSE)
' Enable sorting
Call OTS_SortTable(table, g_iSortCol, g_sSortSequence, SA_RESERVED)
' Send table to the response stream
Call OTS_ServeTable(table)
OnServeAreaPage = TRUE
'Release the objects
set objConnStatus = nothing
End Function
'---------------------------------------------------------------------
' Function: OnSortNotify()
'
' Synopsis: Sorting notification event handler. This event is triggered in one of
' the following scenarios:
'
' 1) The user presses the search Go button.
' 2) The user presses either the page next or page previous buttons
' 3) The user requests a table column sort
'
' The EventArg indicates the source of this notification event which can
' be either a sorting change event (scenario 1) or a post back event
' (scenarios 2 or 3)
'
' The sortCol argument indicated which column the user would like to sort
' and the sortSeq argument indicates the desired sort sequence which can
' be either ascending or descending.
'
' Returns: Always returns TRUE
'
'---------------------------------------------------------------------
Public Function OnSortNotify(ByRef PageIn, _
ByRef EventArg, _
ByVal sortCol, _
ByVal sortSeq )
OnSortNotify = TRUE
'
' User pressed column sort
'
If SA_IsChangeEvent(EventArg) Then
Call SA_TraceOut("nicinterface_prop", "OnSortNotify() Change Event Fired")
g_iSortCol = sortCol
g_sSortSequence = sortSeq
g_bSortRequested = TRUE
'
' User presed the search GO button OR clicked either the page next or page prev button
ElseIf SA_IsPostBackEvent(EventArg) Then
Call SA_TraceOut("nicinterface_prop", "OnSortNotify() Postback Event Fired")
g_iSortCol = sortCol
g_sSortSequence = sortSeq
g_bSortRequested = TRUE
'
' Unknown event source
Else
Call SA_TraceOut("nicinterface_prop", "Unrecognized Event in OnSearchNotify()")
End IF
End Function
'-------------------------------------------------------------------------
'Function: GetNICCardCollection
'Description: Get Array of IP Enabled NIC Cards for this System
'Input Variables: NICCardCollectionOut Array to receive list of NIC Cards
'Output Variables: NICCardCollectionOut
'Returns: Collection of NIC cards
'Global Variables: None
'-------------------------------------------------------------------------
Function GetNICCardCollection(ByRef NICCardCollectionOut)
Err.clear
On Error Resume Next
Dim nicCardCollection() 'hold NIC collection
Dim objService 'hold connection object
Dim objNICCollection 'hold NIC collection
Dim objNICConfig 'holds NIC config object
Dim nicCardCount 'holds NIC card count
Dim objAppTalk 'hold appletalk object
g_AppTalkInstalled = False
Call SA_TraceOut(SOURCE_FILE, "GetNICCardCollection")
Set objService = GetWMIConnection(CONST_WMI_WIN32_NAMESPACE)
Set objNICCollection = objService.ExecQuery("SELECT * from Win32_NetworkAdapterConfiguration where IPEnabled=True")
nicCardCount = 0
For each objNICConfig in objNICCollection
Dim nicCard
Dim aIPAddress
ReDim nicCard(NIC_DIM)
nicCard(NIC_NAME) = GetNicName(objNICConfig.Index)
'checking for the nullname and discarding
if nicCard(NIC_NAME) <> "" Then
nicCard(NIC_ID) = objNICConfig.Index
nicCard(NIC_DESC) = objNICConfig.Description
nicCard(NIC_DHCP_ENABLED) = objNICConfig.DHCPEnabled
aIPAddress = objNICConfig.IPAddress
If IsArray( aIPAddress ) Then
nicCard(NIC_IPADDRESS) = aIPAddress(0)
Else
nicCard(NIC_IPADDRESS) = aIPAddress
End If
nicCard(NIC_SETTINGID) = objNICConfig.SettingID
nicCardCount = nicCardCount + 1
ReDim Preserve nicCardCollection(nicCardCount)
nicCardCollection(nicCardCount-1) = nicCard
End IF
Next
If ( nicCardCount > 0 ) Then
NICCardCollectionOut = nicCardCollection
End If
GetNICCardCollection = nicCardCount
'Check whether Appletalk protocol is installed or not
set objAppTalk = objService.Get("Win32_NetworkProtocol.Name='MSAFD AppleTalk [PAP]'")
if isobject(objAppTalk) then
g_AppTalkInstalled = true
end if
'Release the objects
set objService = nothing
set objNICCollection = nothing
set objAppTalk = nothing
End Function
%>