Querying
TLD Policy Data
This document explains how to retrieve the characters from the
Top-Level Domain Blacklists and Whitelists.
Before you start, you must:
The TLD policy data is composed of a list of TLDs.
For
each of the TLDs, the Whitelist contains the trusted UTF-8 characters and
the Blacklist contains the suspect UTF-8 characters.
-
Create a connection
with the InetURIList server.
RInetUriList uriServer;
uriServer.OpenL();
CleanupClosePushL(uriServer);
-
Build a
TPolicyQueryArgs
object.
The constructor takes an URI as its first parameter, which defines which
TLD the request is made on.
-
To request a character set, pass the list type (
InetUriList::EWhiteList
or
InetUriList::EBlackList
)
as the second parameter, and the
InetUriList::EPolicyCharSet
request
type as the third parameter.
// The TLD is "COM"
_LIT8(KUri, "http://www.nokia.com");
// the query requests the white list character set
TPolicyQueryArgs tldArgs(KUri, InetUriList::EWhiteList, InetUriList::EPolicyCharSet);
-
To check whether an URI is unsafe, only pass the
InetUriList::EPolicyListType
request
type as the second parameter.
// The TLD is "COM"
_LIT8(KUri, "http://www.nokia.com");
// the query requests to check the URI
TPolicyQueryArgs tldArgs(KUri, InetUriList::EPolicyListType);
-
Create a
TQueryResults
object
to store the result.
TQueryResults tldResult;
-
Call the
RInetUriList::QueryTldInfoL()
method
with your query and result structures.
RInetUriList::QueryTldInfoL(tldArgs, tldResult);
// retrieve the characters
HBufC8* policyData(NULL);
policydata = tldResult.CharSetL();
-
Close the connection
with the InetURIList server.
CleanupStack::PopAndDestroy(&uriServer);
The
TQueryResults
object contains the requested
TLD policy data.
-
With an
EPolicyListType
request,
the results objet contains
ETrue
is the URI contains suspect
characters,
EFalse
otherwise.
-
An
EPolicyCharSet
request,
the results objet contains the list of characters of the requested list.
Query example
Here
is the combination of the code snippets provided in the above steps:
// Open the connection
RInetUriList uriServer;
uriServer.OpenL();
CleanupClosePushL(uriServer);
// The TLD is "COM"
_LIT8(KUri, "http://www.nokia.com");
// Build a query requesting a character set
TPolicyQueryArgs tldArgs(KUri, InetUriList::EPolicyCharSet);
// Create an object for the results
TQueryResults tldResult;
// Make the query
RInetUriList::QueryTldInfoL(tldArgs, tldResult);
// retrieve the characters
HBufC8* policyData(NULL);
policydata = tldResult.CharSetL();
// [...]
// process the policy data
// Close the connection
CleanupStack::PopAndDestroy(&uriServer);
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.