AnyConnect Secure Mobility Client  4.10.06090
ClientIfcBase Class Referenceabstract

Public Member Functions

virtual bool attach (ClientType clientType=ClientType_GUI, bool requestFullCapabilities=true, bool suppressAutoConnect=true)
 
virtual void detach ()
 
virtual void ProcessEvents ()
 
virtual bool hasFullCapabilities ()
 
virtual bool isConnected ()
 
virtual bool isAvailable ()
 
virtual std::list< tstringgetHostNames ()
 
virtual std::list< HostEntry > getHostEntries ()
 
virtual tstring getDefaultHostName ()
 
virtual bool connect (tstring host)
 
bool connect (tstring host, unsigned int origin)
 
virtual bool setNewTunnelGroup (const tstring &group)
 
virtual void disconnect ()
 
virtual void cancel ()
 
virtual void resetStats ()
 
virtual void getState ()
 
VPNState getCurrentState ()
 
VPNSubState getCurrentSubState ()
 
VPNSubState getPreviousSubState ()
 
tstring getStateText ()
 
void setNetworkStates (NETENV_STATE netEnvState, NETCTRL_STATE netCtrlState, NETWORK_TYPE netType, bool bACBrowserForCPRemediation, bool bUpdateUI)
 
void refreshOperatingModeForCurrentNetStates ()
 
NETENV_STATE getCurrentNetEnvState ()
 
NETENV_STATE getPreviousNetEnvState ()
 
NETCTRL_STATE getCurrentNetCtrlState ()
 
NETWORK_TYPE getCurrentNetType ()
 
bool isACBrowserForCPRemediation ()
 
tstring getNetworkStatusText (const VPNState state, const VPNSubState subState, const NETENV_STATE netEnvState, const NETCTRL_STATE netCtrlState)
 
PreferenceInfogetPreferences ()
 
bool savePreferences ()
 
virtual void startStats ()
 
virtual void stopStats ()
 
virtual void UserSubmit ()
 
void setBanner (const tstring &banner)
 
void setBannerResponse (bool bResponse)
 
void setPreConnectReminder (const tstring &tstrPreConnectReminder)
 
void setPreConnectReminderResponse ()
 
bool getUserResponse ()
 
bool isUserResponseSet ()
 
void setCertBlocked (const tstring &tstrUntrustedServer)
 
void setCertWarning (const tstring &rtstrUntrustedServer, const std::list< tstring > &rltstrCertErrors, bool bAllowImport)
 
bool getCertImportResponse ()
 
void setUserPrompt (ConnectPromptInfo &ConnectPrompt)
 
void setCertBlockedResponse (bool bUnlock)
 
void setCertWarningResponse (bool bConnect, bool bImportCert)
 
void insertStateToConnectPrompt (ConnectPromptInfo &ConnectPrompt)
 
void ExitNotice (const tstring &tstrNotice, const int code=0)
 
void notice (const tstring &tstrNotice, const MessageType type=MsgType_Info, bool bClearLastMsg=false, bool bForce=false, bool bStateMsg=false, bool bSensitiveMsg=false)
 
void notice (MsgWithArg &notice, const MessageType type=MsgType_Info, bool bClearLastMsg=false, bool bForce=false, bool bStateMsg=false, bool bSensitiveMsg=false)
 
void getStats (void)
 
void setStats (VPNStats &stats)
 
void exportStats (const tstring &tstrFilePath)
 
void setState (VPNState state, VPNState previousState, VPNSubState subState=VPNSS_NORMAL, bool bUpdateStateMsg=true, bool bOnlyUpdateUI=false)
 
void setWMHint (WMHint hint, WMHintReason reason)
 
bool isLastConnectType (const ConnectPromptType connPromptType)
 
bool isOperatingMode (OperatingMode opMode)
 
void setOperatingMode (OperatingMode opMode)
 
void unsetOperatingMode (OperatingMode opMode)
 
bool CanRemediateCaptivePortal ()
 
bool policyAllowsCaptivePortalRemediation ()
 
bool isEventShutdown ()
 
bool isUsingEventModel ()
 
time_t getLastDisconnectTime ()
 
ConnectPromptInfo getConnectPromptInfo ()
 
void resetConnectPromptPasswordData ()
 
void setStandaloneConnection (bool isStandalone)
 
void deliverActiveHost (const tstring &activeHost, ConnectProtocolType vpnProtocol=PROTOCOL_TYPE_UNKNOWN, bool bActiveHostFriendlyName=false)
 
bool isVPNServiceReady ()
 
void resetLastDisconnectTime (time_t time=1)
 
void processMinimize ()
 
void setEnrollClientCert (CertObj *pCert)
 
void linuxCertImportWarnUser ()
 
void linuxCertImportWarnUserResponse (bool bAccept)
 
void setDefaultHost (tstring &host)
 
void setLastVpnError (VPNError vpnError)
 
VPNError getLastVpnError ()
 
bool requestImportLocalization (const tstring tstrLocale, const std::vector< unsigned char > &MoFileData)
 
void startAHS (const unsigned int uiReason, const ProxyIfc &proxy)
 
void AHSSelectedHost (const unsigned int uiReason, const std::vector< tstring > &headendList, const long statusReturnCode, const tstring &extraInfo)
 
std::vector< tstringgetAHSHostList ()
 
unsigned int getAHSState ()
 
bool isAHSHasRun ()
 
bool suppressConnectionErrorPopups ()
 
tstring getCaptivePortalDetectedMsg ()
 
void setProxyAuthPrompts (ProxyIfc *pProxy, const tstring &promptMsg)
 
bool handleIpcMessage (CIpcMessage *pIpcMessage)
 
bool IsCsdTokenVerified () const
 
void activateConnectMgrTunnelInitiationCompletionEvent ()
 
bool isConnectRequestActive ()
 
bool syncProfileChange (const tstring &profileName)
 
tstring getConnectHost ()
 
tstring getMgmtTunnelHostname ()
 
VPN_TUNNEL_SCOPE getVpnTunnelScope ()
 
bool isStandaloneConnection ()
 
void sendSSoLogoutPrompt (ConnectPromptInfo &cpi)
 
void setExternalSSOLogoutUrlFromAgent (const tstring &logoutUrl)
 

Static Public Member Functions

static tstring getNoticeTypeText (MessageType msgType)
 
static tstring getStateText (VPNState state, VPNSubState subState=VPNSS_NORMAL, NETENV_STATE netEnvState=NES_NETWORK_ACCESSIBLE, const tstring &tstrConnectedHost=tstring())
 
static tstring getNetCtrlText (NETCTRL_STATE netCtrlState)
 
static tstring getNetEnvText (NETENV_STATE netEnvState, bool bSimple=false)
 
static tstring getNetTypeText (NETWORK_TYPE netType)
 
static tstring getQuarantinedStatusText ()
 
static tstring getNetworkStatusSimpleText (const NETENV_STATE netEnvState, const NETCTRL_STATE netCtrlState)
 

Protected Member Functions

virtual void StatsCB (VPNStats &stats)=0
 
virtual void StateCB (const VPNState state, const VPNSubState subState, const tstring stateString)=0
 
virtual void BannerCB (const tstring &banner)=0
 
virtual void PreConnectReminderCB (const tstring &rtstrPreConnectReminder)
 
virtual void NoticeCB (const tstring &notice, const MessageType type, const bool bSensitive=false)=0
 
virtual void ExitNoticeCB (const tstring &tstrNotice, const int returnCode)
 
virtual void ServiceReadyCB ()=0
 
virtual void UserPromptCB (ConnectPromptInfo &ConnectPrompt)=0
 
virtual void WMHintCB (const WMHint hint, const WMHintReason reason)
 
virtual void deliverWebLaunchHostCB (const tstring &activeHost)
 
virtual void CertBlockedCB (const tstring &rtstrUntrustedServer)=0
 
virtual void CertWarningCB (const tstring &rtstrUntrustedServer, const std::list< tstring > &rltstrCertErrors, bool bAllowImport)=0
 
virtual void EventAvailable ()
 
AgentIfc & getAgentIfc ()
 

Friends

class EventMgr
 

Member Function Documentation

virtual void ClientIfcBase::BannerCB ( const tstring banner)
protectedpure virtual

If a banner needs to be acknowledged, this CB delivers the banner to the client.

NOTE: Connection establishment will block until the method setBannerResponse() is called.

In a GUI, a banner would typically be displayed in a modal dialog with an accept or decline button selection.

See Also
setBannerResponse() to set the user response to the banner.

Implemented in ClientIfc, and CLIClientImpl.

virtual void ClientIfcBase::CertBlockedCB ( const tstring rtstrUntrustedServer)
protectedpure virtual

This method is called when the preference to block untrusted servers is enabled and the current VPN server being connected to is untrusted. Clients should present an error to the user notifying them that the current connection to rtstrUntrustedServer is being blocked. The client should also provide a way for the user to change the preference to block untrusted servers.

The user response must be indicated using setCertBlockedResponse

Implemented in ClientIfc, and CLIClientImpl.

virtual void ClientIfcBase::CertWarningCB ( const tstring rtstrUntrustedServer,
const std::list< tstring > &  rltstrCertErrors,
bool  bAllowImport 
)
protectedpure virtual

This method is called when connections to untrusted VPN servers is allowed by policies and the current VPN server being connected to is untrusted. Clients should present a warning to the user notifying them that the current connection to rtstrUntrustedServer is unsafe. The reason the VPN server is untrusted is provided in rltstrCertErrors. The client should provide a way for the user to connect once, connect and always trust or cancel the connection. If bAllowImport is set to false then the always trust option should not be presented to users.

The user response must be indicated using setCertWarningResponse

Implemented in ClientIfc, and CLIClientImpl.

virtual void ClientIfcBase::deliverWebLaunchHostCB ( const tstring activeHost)
protectedvirtual

This method is useful when the connection to the secure gateway has been established as part of a web-launch of the VPN tunnel.

If the client application wishes to be notified of the secure gateway to which the VPN has been established, this method should be overriden.

If the client application is started and a tunnel is already active, this method also delivers the name of the secure gateway host.

Reimplemented in ClientIfc.

virtual void ClientIfcBase::EventAvailable ( )
protectedvirtual

This method can be overriden if the client application wishes to exercise some control over the delivery of events from the other protected methods in this class.

This might be necessary in cases where a GUI is being written and the data from this API needs to be delivered in the GUI or main thread. In this case, you should override this method and when it is called by the API post an event to your event queue (message pump, etc.). After this event executes in your GUI or main thread, call the method ClientIfc::ProcessEvents to have events delivered to your client application.

Reimplemented in ClientIfc.

virtual void ClientIfcBase::ExitNoticeCB ( const tstring tstrNotice,
const int  returnCode 
)
protectedvirtual

This CB would likely occur only during a connection when it was detected that the software needed to be upgraded, or when Start Before Logon (SBL) is being used.

Unlike the other callback methods, this method provides a default implementation (calling the system's exit() function). If clients of the API wish to override this behavior, they are responsible for ensuring that the current running process exits with the return code specified by returnCode.

Caution: IF YOU OVERRIDE THIS METHOD AND DO NOT EXIT WITH THE PROPER CODE SOFTWARE UPDATE FUNCTIONALITY IN YOUR CLIENT WILL BREAK

Reimplemented in ClientIfc, and CLIClientImpl.

virtual void ClientIfcBase::NoticeCB ( const tstring notice,
const MessageType  type,
const bool  bSensitive = false 
)
protectedpure virtual

Messages are delivered via the NoticeCB and can come from multiple sources. There are four message types (error, warning, info and status). See the MessageType enum in api.h for the list.

Clients using the API as an embedded application (not user visible) might want to further characterize messages. One option here is to use the AnyConnect message catalog and assign message codes as the translations for various messages. An application could then track messages based on its own error code scheme.

Implemented in ClientIfc, and CLIClientImpl.

virtual void ClientIfcBase::PreConnectReminderCB ( const tstring rtstrPreConnectReminder)
protectedvirtual

If a pre-connect reminder needs to be acknowledged, this CB delivers the pre-connect reminder to the client.

NOTE: Connection establishment will block until the method setPreConnectReminderResponse() is called.

In a GUI, a pre-connect reminder would typically be displayed in a modal dialog with an OK button selection.

See Also
setPreConnectReminderResponse() to set the user acknowledgement to the pre-connect reminder message.

Reimplemented in ClientIfc, and CLIClientImpl.

virtual void ClientIfcBase::ServiceReadyCB ( )
protectedpure virtual

Under normal operating conditions, this CB is called as soon as the attach method completes. In case the service (vpn agent) is not ready, this CB is not called until it is.

Any API calls made prior to this CB being called will result in a NoticeCB error message.

Implemented in ClientIfc, and CLIClientImpl.

virtual void ClientIfcBase::StateCB ( const VPNState  state,
const VPNSubState  subState,
const tstring  stateString 
)
protectedpure virtual

Callback used to deliver VPN state and state change string. The stateString delivered by this method is localized.

See the VPNState enum found in api.h for set of valid states.

Implemented in CLIClientImpl, and ClientIfc.

virtual void ClientIfcBase::StatsCB ( VPNStats stats)
protectedpure virtual

Callback used to deliver new statistics related to the VPN connection.

When a connection is active, a new set of statistics is delivered each second.

See Also
resetStats(), stopStats() and startStats()

Implemented in CLIClientImpl, and ClientIfc.

virtual void ClientIfcBase::UserPromptCB ( ConnectPromptInfo ConnectPrompt)
protectedpure virtual

This method supports prompting for single or multiple values. All prompts are considered mandatory.

The ConnectPromptInfo object contains a list of PromptEntry instances. The labels and their default values (if any) can be found in these instances. After the data has been collected from the user it can be set into these same instances. When ready, the client application should call the method UserSubmit() to have the responses read by the API.

Implemented in ClientIfc, and CLIClientImpl.

virtual void ClientIfcBase::WMHintCB ( const WMHint  hint,
const WMHintReason  reason 
)
protectedvirtual

Use this method to provide Window Manager hints to GUI applications. To receive these hints, the application must identify itself as a GUI in the attach method. In addition, this method should be overriden to receive any generated events.

Event that can be received include those indicating that a user is starting a second instance of the GUI application. This information can be used to tell the already running application to un-minimize itself and let the new program know that it should Quit (since a GUI is already running).

Reimplemented in ClientIfc.