<%@ Language=VBScript %> <% 'Sample Input 'http://belkin.radiosetup.com/setupapp/belkin1/asp/rsdb/update.asp ' ?mac=0010c61cd301 ' &uid=39461A1F9A29F6D5CDC53598C8263DC2 ' &ver=0 ' &xml=2.0 ' &mime=audio/mpeg-url bDebug = False sMacAddress = Request("mac") iOemId = Config_GetOemId() sEncryptedMac = Request("uid") sClientRsdbVersion = Request("ver") sXmlVersion = Request("xml") sMimeTypes = Request("mime") If sMacAddress = "0010c61cd301" And iOemId = "3" Then 'Dave's Mac, until he get's latest Belkin firmware bSuccess = WaaBlowfish_DecryptMacAddressTest( sEncryptedMac, sDecryptedMac ) Else bSuccess = WaaBlowfish_DecryptMacAddress( sEncryptedMac, sDecryptedMac ) End If If bSuccess And UCase(sMacAddress) = UCase(sDecryptedMac) Then sMacAddress = sDecryptedMac bBlowfishGood = True Else 'sSerialStatus = "UNKNOWN_DUE_TO_BF_ERROR" sSerialStatus = "Basic e1139" 'Blowfish Error Code bBlowfishGood = False End If dNow = Now() sjLogIt "Update", "update.asp", "Begin|sEncryptedMac=" & sEncryptedMac & _ "|sDecryptedMac=" & sDecryptedMac & _ "|sClearMac=" & sMacAddress & _ "|bBlowfishGood=" & bBlowfishGood & _ "|sClientRsdbVersion=" & sClientRsdbVersion & "|sXmlVersion=" & sXmlVersion & "|sMimeTypes=" & sMimeTypes bGoodToGo = True sTemp = Mid(sClientRsdbVersion, 1, 10) & " " & Mid(sClientRsdbVersion,12,8) If IsDate(sTemp) Then dClientRsdbVersion = cDate(sTemp) Else 'If there is no date from the client, default to an old date so that the lastest db will be sent dClientRsdbVersion = cDate("1999-01-01 07:00:00") End If If bBlowfishGood Then 'Get Favorite Stations and Stations Added By User from Db Set oConn = Server.CreateObject("ADODB.Connection") oConn.Open(Database_GetConnStringForRegisteredMacAddresses()) Set oRsMyStations = Server.CreateObject("ADODB.Recordset") sSql = "SELECT * FROM RegisteredMacAddressesTbl WHERE MacAddress = '" & sMacAddress & "'" oRsMyStations.Open sSql, oConn, adOpenStatic If Not oRsMyStations.EOF Then sMyFavoriteStations = oRsMyStations("FavoriteStations") sMyAddedStations = oRsMyStations("StationsAddedByUser") sLastFavoritesUpdate = oRsMyStations("LastFavoritesUpdate") sRegistrationStatus = oRsMyStations("RegistrationStatus") dDateAdded = oRsMyStations("DateAdded") sGeographicRegion = oRsMyStations("GeographicRegion") Else sRegistrationStatus = "TRIAL" dDateAdded = dNow sGeographicRegion = "" 'If not in DB, this is first time here. INSERT into DB: sSQL = "INSERT INTO RegisteredMacAddressesTbl ( " sSQL = sSQL & " MacAddress, " sSQL = sSQL & " RegistrationStatus, " sSQL = sSQL & " OemId, " sSQL = sSQL & " OemName, " sSQL = sSQL & " DateAdded, " sSQL = sSQL & " FirstHitFromDeviceDate, " sSQL = sSQL & " ExpirationDate, " sSQL = sSQL & " ExpirationCalcId " sSQL = sSQL & " ) VALUES ( " sSQL = sSQL & " '" & sMacAddress & "', " sSQL = sSQL & " '" & sRegistrationStatus & "', " sSQL = sSQL & " " & iOemId & ", " sSQL = sSQL & " '" & Oem_GetName(iOemId) & "', " sSQL = sSQL & " #" & dDateAdded & "#, " sSQL = sSQL & " #" & dNow & "#, " sSQL = sSQL & " #" & DateAdd("m", 2, Now) & "#, " sSQL = sSQL & " 1); " oConn.Execute(sSQL) End If bSuccess = Favorites_GetFavoriteStationsXmlBridgeCo(sMyFavoriteStations, sMyFavoriteStationsXml) bSuccess = Favorites_GetAddedStationsXmlBridgeCo(sMyAddedStations, sMyAddedStationsXml, sMyAddedDirXml, iNumAddedStations) 'bSuccess = Favorites_GetAddedStationsXml(sMyAddedStations, sMyAddedStationsXml, sMyAddedDirXml, iNumAddedStations, sMacAddress, sLanguage) sSerialStatus = Auth_GetSerialStatusWithDate( sRegistrationStatus, dDateAdded, sMacAddress ) End If If bDebug = True Then 'sServerRsdbVersion = "2003-12-03T07:17:00Z" 'sServerRsdbVersion = "2004-02-04T07:17:00Z" 'Use a date in the future to always force a send for development sServerXmlFileVersion = "2020-11-01T07:17:00Z" sTemp = Mid(sServerXmlFileVersion, 1, 10) & " " & Mid(sServerXmlFileVersion,12,8) If IsDate(sTemp) Then dServerXmlFileVersion = cDate(sTemp) Else bGoodToGo = False End If Else If sSerialStatus = "BASIC" Then sXmlFile = Config_GetXml50FileFullPath() bGoodToGo = Local_GetRsdbVersionFromXmlFile(sXmlFile, sServerXmlFileVersion, dServerXmlFileVersion) ElseIf bBlowfishGood = False Then sXmlFile = Config_GetXml50FileFullPath() bGoodToGo = Local_GetRsdbVersionAndFirstStationIdFromXmlFile(sXmlFile, sServerXmlFileVersion, dServerXmlFileVersion, sFirstStationId) sBlowfishErrorXml = Chr(9) & Chr(9) & Chr(9) & "" & Chr(13) & Chr(10) & _ Chr(9) & Chr(9) & Chr(9) & Chr(9) & "12049" & Chr(13) & Chr(10) & _ Chr(9) & Chr(9) & Chr(9) & "" & Chr(13) & Chr(10) Else sXmlFile = Config_GetXmlFileFullPath() bGoodToGo = Local_GetRsdbVersionFromXmlFile(sXmlFile, sServerXmlFileVersion, dServerXmlFileVersion) End If End If sjLogIt "Update", "update.asp", "9|sSerialStatus=" & sSerialStatus & "|sRegistrationStatus=" & sRegistrationStatus & "|sXmlFile=" & sXmlFile bUpdateNeeded = False If bGoodToGo = True Then iClientVsServerDiff = DateDiff("s", dClientRsdbVersion, dServerXmlFileVersion) If isDate(sLastFavoritesUpdate) Then iClientVsFavoritesDiff = DateDiff("s", dClientRsdbVersion, cDate(sLastFavoritesUpdate)) Else iClientVsFavoritesDiff = 0 End If sjLogIt "Update", "update.asp", "10good|ClientDate=" & dClientRsdbVersion & "|ServerDate=" & dServerXmlFileVersion & "|FavoritesDate=" & sLastFavoritesUpdate If iClientVsServerDiff > 0 Or iClientVsFavoritesDiff > 0 Then bUpdateNeeded = True dLatestDate = dServerXmlFileVersion If isDate(sLastFavoritesUpdate) Then If cDate(sLastFavoritesUpdate) > dLatestDate Then dLatestDate = cDate(sLastFavoritesUpdate) End If End If bSuccess = Local_ConvertDateToWaaRsdbVersion(dLatestDate, sLatestRsdbVersion) sjLogIt "Update", "update.asp", "15a Update Needed|dLatestDate=" & dLatestDate & "|sLatestRsdbVersion=" & sLatestRsdbVersion Else sjLogIt "Update", "update.asp", "15b No Update Needed" End If Else sjLogIt "Update", "update.asp", "10bad|bGoodToGo=" & bGoodToGo End If If bUpdateNeeded = False Then 'No update needed - send 304 If bDebug = False Then Response.Clear Response.Status = "304 Not Modified" End If Else set oFso = CreateObject("Scripting.FileSystemObject") set oXmlFile = oFso.OpenTextFile(sXmlFile, 1) If Err.Number = 0 Then While oXmlFile.AtEndOfStream <> True sData = oXmlFile.ReadLine() If InStr(1, sData, " 0 Then bSuccess = Favorites_UpdateStationDbTagForStationCountBridgeCo(sTagUpdatedForVersion, sOutTag, iNumAddedStations) Response.Write sOutTag & chr(13) & chr(10) Else Response.Write sTagUpdatedForVersion & chr(13) & chr(10) 'Response.Write sData & chr(13) & chr(10) End If 'ADD THIS WHEN BRIDGECO SUPPORTS QUERY STRINGS 'ElseIf InStr(1, sData, "") Then 'bSuccess = Local_UpdateUrlTagWithUid(sData, sUrlTagUpdatedWithUid, sMacAddress) ElseIf InStr(1, sData, "") Then If UCase(Left(sMacAddress,6)) = "000F66" Then 'Send Linksys units to correct place Response.Write "http://www.linksysradio.com/setupapp/linksys1/asp/rsdb/update.asp" & chr(13) & chr(10) Else Response.Write "" & Config_UpdateAspUrl() & "" & chr(13) & chr(10) End If ElseIf InStr(1, sData, "") Then Response.Write sMyAddedStationsXml ElseIf InStr(1, sData, "") Then Response.Write sMyFavoriteStationsXml ElseIf InStr(1, sData, "") Then Response.Write sMyAddedDirXml ElseIf InStr(1, sData, "") Then Response.Write Replace(sData, "", sMacAddress) ElseIf InStr(1, sData, "") Then Response.Write Replace(sData, "", Config_GetUrlBaseForMp3Help()) ElseIf InStr(1, sData, "") Then Response.Write sBlowfishErrorXml ElseIf InStr(1, sData, "") Then Response.Write Replace(sData, "", Config_GetWebsiteNiceName()) ElseIf InStr(1, sData, "") Then Response.Write Replace(sData, "", sSerialStatus) Else Response.Write sData & chr(13) & chr(10) End If Wend End If End If %> <% If bDebug = True Then %> <% End If %> <% Function Local_ConvertDateToWaaRsdbVersion(dInDate, sWaaRsdbVersion) Dim bSuccess, sTemp bSuccess = False sWaaRsdbVersion = "" If IsDate(dInDate) Then '2004-02-13T12:00:00Z sWaaRsdbVersion = DatePart("yyyy", dInDate) sTemp = DatePart("m", dInDate) If Len(sTemp) = 1 Then sTemp = "0" & sTemp End If sWaaRsdbVersion = sWaaRsdbVersion & "-" & sTemp sTemp = DatePart("d", dInDate) If Len(sTemp) = 1 Then sTemp = "0" & sTemp End If sWaaRsdbVersion = sWaaRsdbVersion & "-" & sTemp sWaaRsdbVersion = sWaaRsdbVersion & "T" sTemp = DatePart("h", dInDate) If Len(sTemp) = 1 Then sTemp = "0" & sTemp End If sWaaRsdbVersion = sWaaRsdbVersion & sTemp sTemp = DatePart("n", dInDate) If Len(sTemp) = 1 Then sTemp = "0" & sTemp End If sWaaRsdbVersion = sWaaRsdbVersion & ":" & sTemp sTemp = DatePart("s", dInDate) If Len(sTemp) = 1 Then sTemp = "0" & sTemp End If sWaaRsdbVersion = sWaaRsdbVersion & ":" & sTemp sWaaRsdbVersion = sWaaRsdbVersion & "Z" bSuccess = True End If End Function Function Local_GetRsdbVersionFromXmlFile(sXmlFile,sVersionOfStaticXmlFile,dVersionOfStaticXmlFile) Dim oFso, oXmlFile, bFileExists Dim arrTags, iDex, arrTemp, bFoundVersion, bFoundTag, iLineCount, sTemp bFoundVersion = False set oFso = CreateObject("Scripting.FileSystemObject") If oFso.FileExists(sXmlFile) Then set oXmlFile = oFso.OpenTextFile(sXmlFile, 1) bFoundTag = False iLineCount = 0 If Err.Number = 0 Then While oXmlFile.AtEndOfStream <> True And bFoundTag = False And iLineCount < 100 sData = oXmlFile.ReadLine() If InStr(1, sData, " sData = Replace(sData, "<", "") sData = Replace(sData, ">", "") arrTags = Split(sData, " ") 'Get the version attribute, e.g. 2004-02-13T12:00:00Z For iDex = 0 To UBound(arrTags) If Left(arrTags(iDex),7) = "version" Then arrTemp = Split(arrTags(iDex), """") If UBound(arrTemp) >= 1 Then 'arrTemp(1) now holds the version, e.g.: 2004-02-13T12:00:00Z sVersionOfStaticXmlFile = arrTemp(1) sTemp = Mid(arrTemp(1), 1, 10) & " " & Mid(arrTemp(1),12,8) If IsDate(sTemp) Then dVersionOfStaticXmlFile = cDate(sTemp) bFoundVersion = True End If End If End If Next End If iLineCount = iLineCount + 1 Wend End If End If Local_GetRsdbVersionFromXmlFile = bFoundVersion End Function Function Local_GetRsdbVersionAndFirstStationIdFromXmlFile(sXmlFile,sVersionOfStaticXmlFile,dVersionOfStaticXmlFile,sFirstStationId) Dim oFso, oXmlFile, bFileExists Dim arrTags, iDex, arrTemp, bFoundVersion, bFoundTag, iLineCount, sTemp bFoundVersion = False set oFso = CreateObject("Scripting.FileSystemObject") If oFso.FileExists(sXmlFile) Then set oXmlFile = oFso.OpenTextFile(sXmlFile, 1) bFoundTag = False iLineCount = 0 If Err.Number = 0 Then While oXmlFile.AtEndOfStream <> True And bFoundTag = False And iLineCount < 100 sData = oXmlFile.ReadLine() If InStr(1, sData, " sData = Replace(sData, "<", "") sData = Replace(sData, ">", "") arrTags = Split(sData, " ") 'Get the version attribute, e.g. 2004-02-13T12:00:00Z For iDex = 0 To UBound(arrTags) If Left(arrTags(iDex),7) = "version" Then arrTemp = Split(arrTags(iDex), """") If UBound(arrTemp) >= 1 Then 'arrTemp(1) now holds the version, e.g.: 2004-02-13T12:00:00Z sVersionOfStaticXmlFile = arrTemp(1) sTemp = Mid(arrTemp(1), 1, 10) & " " & Mid(arrTemp(1),12,8) If IsDate(sTemp) Then dVersionOfStaticXmlFile = cDate(sTemp) bFoundVersion = True End If End If End If Next ElseIf InStr(1, sData, "") Then bFoundTag = True sFirstStationId = Mid(sData, 4) sFirstStationId = Left(sData, Len(sData)-5) End If iLineCount = iLineCount + 1 Wend End If End If Local_GetRsdbVersionAndFirstStationIdFromXmlFile = bFoundVersion End Function %>