X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=cmdamt%2FInclude%2FCommonDefinitions.h;fp=cmdamt%2FInclude%2FCommonDefinitions.h;h=79555ab7d6651cff981be45810334f0ef7d21b06;hb=44c2b1f9a9f8a2e032432ff958bc62a550c265cb;hp=0000000000000000000000000000000000000000;hpb=d49c3efc5307d1b5f16300fdf965b17cca3bca35;p=monitor.git diff --git a/cmdamt/Include/CommonDefinitions.h b/cmdamt/Include/CommonDefinitions.h new file mode 100644 index 0000000..79555ab --- /dev/null +++ b/cmdamt/Include/CommonDefinitions.h @@ -0,0 +1,289 @@ +//---------------------------------------------------------------------------- +// +// Copyright (C) Intel Corporation, 2004 - 2006. +// +// File: CommonDefinitions.h +// +// Contents: Sample code for an IntelĀ® AMT Network client. +// +// Notes: This file contains type, function and constant definitions +// used throughout the code of the all sample applications. +// +//---------------------------------------------------------------------------- + +#ifndef COMMON_DEFINITIONS_H +#define COMMON_DEFINITIONS_H + + +#include "StatusCodeDefinitions.h" +#ifdef _WIN32 +/* + * gsoapWinHTTP.h for gSoap WinHTTP extension - needed for TLS support + */ +#include "gsoapWinHttp.h" +#include "StatusStrings.h" +#include +#else +/* + * httpDigest.h for gSoap HTTP Digest support + */ +#include "httpDigest.h" +#endif + +/* + * Function prototypes + */ +void PrintAuthenticationNote(); +bool CheckReturnStatus(unsigned int res, unsigned long status,const char *message); +bool ValidateIP(const char *uri); +void GetString(char *msg, char *s, bool hidden); +bool ChangeService(const char *uri, const char *newService, char *newUri); +bool DisplayWarning(const char *msg); +bool GetNumber(int *number); +void ReplaceSubstring(const char *oldString,const char *oldSubstr, + const char *newSubstr, char *newString); +void SetIPAddress(unsigned long &address, unsigned long bytes[]); +void NumberToIP(unsigned long address, unsigned long bytes[]); +void NumberToString(unsigned long number, char *string); +void IpToString(unsigned long address, char *string); +void StringToIP(const char *string, unsigned long &address); +void GuidToString(const unsigned char* guid, char* string); +bool ExtractIPFromUri(const char *uri, char *baseUrl); +void IsEmulator(const char *targetUrl, int *isEmulator); +bool GetOption(int *commandLineLength, char *argv[], int numOfArgs, + char **option, char **commandLine[]); +void PrintSuccess(bool print = true); +void FunctionCall(const char *message); +#ifdef _WIN32 +bool ParseCommandLine(int commandLineLength,char* commandLine[],char **target, + char **certName, bool *local, bool *krb,bool *verbose = NULL, + char **username = NULL, char **password = NULL); +#define CHAR _TCHAR +#else +bool ParseCommandLine(int commandLineLength,char* commandLine[],char **target, + char **certName = NULL,char **certPass = NULL, + bool *verbose = NULL, + char **username = NULL, char **password = NULL); +#define CHAR char +#endif + +/* + * Constants for the common use + */ +static const int MAX_LINE_LEN = 1024; +static const int TIMEOUT = 80; +static const char *DEFAULT_USERNAME = "admin"; +static const char *DEFAULT_PASSWORD = "admin"; +static const char *CERT_NAME = "-certName"; +static const char *USER = "-user"; +static const char *PASS = "-pass"; +static const char *VERBOSE = "-verbose"; +#ifdef _WIN32 +static const char *LOCAL = "-local"; +static const char *KRB = "-krb"; +#else +static const char *CERT_PASS = "-certPass"; +#endif + +/* + * The structure that represents + * the gSOAP rintime environment + */ +class Soap +{ +private: + struct soap *m_soap; + char *m_username; + char *m_password; + char *m_ip; + +public: + // Constructor +#ifdef _WIN32 + Soap(const char *url, const char *certName, + const char *username, const char *password, + bool local, bool krb) +#else + Soap(const char *url, const char *certName, + const char *certPass, const char *username, + const char *password) +#endif + { + m_username = new char[MAX_LINE_LEN]; + m_password = new char[MAX_LINE_LEN]; + m_ip = new char[MAX_LINE_LEN]; + SetIp(url); + SetUsername(DEFAULT_USERNAME); + SetPassword(DEFAULT_PASSWORD); + + if ( +#ifdef _WIN32 + krb == false && +#endif + !username) + { + // To use the default user name, comment the following line: + GetString("Username: ", m_username, false); + } + else + { + SetUsername(username); + } + + if ( +#ifdef _WIN32 + krb == false && +#endif + !password) + { + // To use the default password, comment the following line: + GetString("Password: ", m_password, true); + } + else + { + SetPassword(password); + } + m_soap = soap_new(); + if( m_soap ) + { +#ifdef _WIN32 + SetSoap(certName,local,krb); +#else + SetSoap(certName,certPass); +#endif + + } + } + + void Init(SOAP_NMAC struct Namespace *name = NULL) + { + m_soap->userid = m_username; + m_soap->passwd = m_password; + + if(name != NULL) + { + // setting namespace for the runtime environment + soap_set_namespaces(m_soap, name); + } + } + + char *GetIp() + { + return m_ip; + } + + char *GetUsername() + { + return m_username; + } + + char *GetPassword() + { + return m_password; + } + + struct soap *GetSoap() + { + return m_soap; + } + + void SetIp(const char *url) + { + memset(m_ip, 0, MAX_LINE_LEN); + if(url != NULL) + { + strncpy(m_ip, url, MAX_LINE_LEN - 1); + } + } + + void SetUsername(const char *username) + { + memset(m_username,0,MAX_LINE_LEN); + if(username != NULL) + { + strncpy(m_username, username, MAX_LINE_LEN - 1); + } + } + + void SetPassword(const char *password) + { + memset(m_password,0,MAX_LINE_LEN); + if(password != NULL) + { + strncpy(m_password, password, MAX_LINE_LEN - 1); + } + } + +#ifdef _WIN32 + void SetSoap(const CHAR *certName, bool local, bool krb) +#else + void SetSoap(const CHAR *certName, const char *certPass) +#endif + { + m_soap->recv_timeout = TIMEOUT; + m_soap->send_timeout = TIMEOUT; + m_soap->connect_timeout = TIMEOUT; + m_soap->accept_timeout = TIMEOUT; + +#ifdef _WIN32 + // gsoap winhttp extension + soap_register_plugin( m_soap, winhttp_plugin ); + soap_omode(m_soap, SOAP_IO_KEEPALIVE); + if( certName ) + { + winhttp_set_certificate_name(m_soap, certName); + } + + winhttp_set_local(m_soap,local); + winhttp_set_auth_scheme(m_soap,krb); +#else + // gsoap HTTP Digest plugin + if ( strncmp(m_ip+strlen(m_ip)-5, ".asmx", 5)) { + soap_register_plugin(m_soap, http_digest); + } + soap_omode(m_soap, SOAP_IO_KEEPALIVE); + soap_imode(m_soap, SOAP_IO_KEEPALIVE); + if ( !strncmp(m_ip, "https:", 6) ) + { + soap_ssl_client_context(m_soap, + SOAP_SSL_DEFAULT, + certName, + certPass, + "/usr/share/ssl/cert.pem", + "/usr/share/ssl/certs/", NULL); + } +#endif + } + + // Destructor + ~Soap() + { + if(m_username) + { + delete [] m_username; + m_username = NULL; + } + if(m_password) + { + delete [] m_password; + m_password = NULL; + } + if(m_ip) + { + delete [] m_ip; + m_ip = NULL; + } + if( m_soap ){ + soap_destroy(m_soap); + soap_end(m_soap); + soap_done(m_soap); + free(m_soap); + m_soap = NULL; + } + } +}; + + + + +#endif