1 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
14 // Interface Manager API
23 #if !defined(__NIFMAN_H__)
28 #ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
29 #include <nifman_internal.h>
31 #include <es_sock_partner.h>
37 enum TAgentConnectType
48 class CNifFactory : public CObject
58 IMPORT_C CNifFactory();
59 IMPORT_C virtual TInt Open();
60 IMPORT_C virtual void Close();
61 IMPORT_C static void Cleanup(TAny* aObject);
62 IMPORT_C static TInt ControlledDelete(TAny* aFactory);
63 IMPORT_C void InitL(RLibrary& aLib, CObjectCon& aCon);
66 IMPORT_C ~CNifFactory();
67 virtual void InstallL()=0;
69 CAsyncCallBack* iAsyncDtor;
75 async message for progress notifier
78 @deprecated 7.0s - replaced with RConnection API
80 const TInt KDefaultNifSlots = 1;
86 @capability NetworkControl These control options affect configuration at the designated level.
87 @ref RConnection::Control
89 const TUint KCOLInterface = 100;
94 @capability NetworkControl These control options affect configuration at the designated level.
95 @ref RConnection::Control
97 const TUint KCOLAgent = 200;
100 // RConnection::Ioctl() level for NIFMAN
105 @ref RConnection::Ioctl
107 const TUint KCOLConfiguration = 300;
109 // RConnection::Control() options
114 @capability NetworkControl Restrict ability to switch on/off idle timers
115 @ref RConnection::Control
117 const TUint KConnDisableTimers = KConnReadUserDataBit | 1;
122 @ref RConnection::Control
124 const TUint KConnGetInterfaceName = KConnReadUserDataBit | KConnWriteUserDataBit | 2;
127 // RConnection::Ioctl() options
132 @ref RConnection::Ioctl
134 const TUint KConnGetCurrentAddr = KConnWriteUserDataBit | 3;
139 @ref RConnection::Ioctl
141 const TUint KConnGetServerAddr = KConnWriteUserDataBit | 4;
146 @ref RConnection::Ioctl
148 const TUint KConnGetAddrLeaseTimeRemain = KConnWriteUserDataBit | 5;
153 @capability NetworkControl Restrict ability to release a configured address
154 @ref RConnection::Ioctl
156 const TUint KConnAddrRelease = 6;
161 @capability NetworkControl Restrict ability to renew a configured address
162 @ref RConnection::Ioctl
164 This option is used for user initiated RENEW request where an attempt
165 is made to renew the lease obtained from the orginal DHCP server.
166 If the server response is not received before the default timeout(RebindTimeT2 - RenewalTimeT1)
167 the dhcp client will then initiate a REBIND.An user defined timeout can also be
168 supplied when using this option which will override the default timeout value.
176 //Option1: Initiate a Renew request.
177 conn.Ioctl(KCOLConfiguration, KConnAddrRenew, stat);
179 //Option2: Initiate a Renew request with a user defined timeout
180 TInt secValue(2); //Eg timeout set to 2secs
181 TPckg<TInt> val(secValue);
182 conn.Ioctl(KCOLConfiguration, KConnAddrRenew, stat,&val);
185 const TUint KConnAddrRenew = 7;
187 // DHCP specific RConnection::Ioctl options
191 @ref RConnection::Ioctl
192 */const TUint KConnGetDhcpRawOptionData = KConnWriteUserDataBit|KConnReadUserDataBit|100;
197 @ref RConnection::Ioctl
199 const TUint KConnGetSipServerAddr = KConnWriteUserDataBit|KConnReadUserDataBit|101;
204 @ref RConnection::Ioctl
206 const TUint KConnGetSipServerDomain = KConnWriteUserDataBit|KConnReadUserDataBit|102;
209 * This constant is used to retrieve the DHCP Header Sname which is the
210 * host name of the next available server. This is sometimes overloaded
211 * to carry option value 66 which is the TftpServerName.
214 * @see RConnection::Ioctl()
216 const TUint KConnGetDhcpHdrSname = KConnWriteUserDataBit|KConnReadUserDataBit|104;
219 * This constant is used to retrieve the DHCP Header Siaddr which is the
220 * IPAddress of the next available server.
223 * @see RConnection::Ioctl()
225 const TUint KConnGetDhcpHdrSiaddr = KConnWriteUserDataBit|KConnReadUserDataBit|105;
228 * This constant is used to retrieve the DHCP Option 66, Tftp Server Name.
231 * @see RConnection::Ioctl()
233 const TUint KConnGetTftpServerName = KConnWriteUserDataBit|KConnReadUserDataBit|106;
236 * This constant is used to retrieve the DHCP Option 150, Tftp Server Address.
239 * @see RConnection::Ioctl()
241 const TUint KConnGetTftpServerAddr = KConnWriteUserDataBit|KConnReadUserDataBit|107;
245 * This constant is used to retrieve multiple opcode data in a raw format.
248 * @see RConnection::Ioctl()
250 const TUint KConnDhcpGetMultipleParams = KConnWriteUserDataBit|KConnReadUserDataBit|108;
256 const TUint KConnMaxInterfaceName = 32;
258 class TConnInterfaceName
266 TBuf<KConnMaxInterfaceName> iName;
271 * This constant is used to provision hardware address in the DHCP server. This enables DHCP server to assign the only available IP address in
272 * its pool to the authorised hardware address as configured by the application.
275 * @see RConnection::Ioctl()
277 const TUint KConnDhcpSetHwAddressParams = KConnWriteUserDataBit|KConnReadUserDataBit|109;
279 #ifdef SYMBIAN_TCPIPDHCP_UPDATE
281 * This constant is used to retrieve list of domain names to be searched during name resolution.
282 * Ref : RFC 3646 sec 4
285 * @see RConnection::Ioctl
287 const TUint KConnGetDomainSearchList = KConnWriteUserDataBit|KConnReadUserDataBit|110;
290 * This constant is used to retrieve list of IPv6 addresses of DNS recursive name servers to which a client's DNS
291 resolver will send DNS queries.
292 * Ref: RFC 3646 sec 3
295 * @see RConnection::Ioctl
297 const TUint KConnGetDNSServerList = KConnWriteUserDataBit|KConnReadUserDataBit|111;
298 #endif //SYMBIAN_TCPIPDHCP_UPDATE
300 #endif // __NIFMAN_H__