| /******************************************************************************* |
| * Copyright (C) 2004-2006 Intel Corp. All rights reserved. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions are met: |
| * |
| * - Redistributions of source code must retain the above copyright notice, |
| * this list of conditions and the following disclaimer. |
| * |
| * - Redistributions in binary form must reproduce the above copyright notice, |
| * this list of conditions and the following disclaimer in the documentation |
| * and/or other materials provided with the distribution. |
| * |
| * - Neither the name of Intel Corp. nor the names of its |
| * contributors may be used to endorse or promote products derived from this |
| * software without specific prior written permission. |
| * |
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' |
| * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
| * ARE DISCLAIMED. IN NO EVENT SHALL Intel Corp. OR THE CONTRIBUTORS |
| * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
| * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
| * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
| * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
| * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
| * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
| * POSSIBILITY OF SUCH DAMAGE. |
| *******************************************************************************/ |
| |
| /** |
| * @author Anas Nashif |
| */ |
| |
| #ifndef WSMANCLIENT_H_ |
| #define WSMANCLIENT_H_ |
| |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif /* __cplusplus */ |
| |
| #ifndef WIN32 |
| #include <pthread.h> |
| #endif /* // !WIN32 */ |
| |
| #include "wsman-client-api.h" |
| #include "wsman-xml-serialize.h" |
| #define WSMAN_CLIENT_BUSY 0x0001 |
| |
| struct _WsManConnection { |
| u_buf_t *request; |
| u_buf_t *response; |
| }; |
| typedef struct _WsManConnection WsManConnection; |
| |
| |
| typedef struct { |
| char *hostname; |
| unsigned int port; |
| char *path; |
| char *user; |
| char *pwd; |
| char *scheme; |
| char *endpoint; |
| unsigned int auth_method; |
| long auth_set; |
| int status; |
| } WsManClientData; |
| |
| |
| struct _WsManAuthData { |
| char *cainfo; |
| char *caoid; |
| unsigned char certificatethumbprint[20]; |
| #ifdef _WIN32 |
| BOOL calocal; |
| #endif |
| char *capath; |
| char *sslcert; |
| char *sslkey; |
| unsigned int verify_peer; |
| unsigned int verify_host; |
| wsman_auth_request_func_t auth_request_func; |
| char *method; |
| |
| unsigned int crl_check; |
| char *crl_file; |
| }; |
| typedef struct _WsManAuthData WsManAuthData; |
| |
| struct _WsManProxyData { |
| char *proxy; |
| char *proxy_auth; |
| char *proxy_username; |
| char *proxy_password; |
| }; |
| typedef struct _WsManProxyData WsManProxyData; |
| |
| struct _WsManClient { |
| void *hdl; |
| int flags; |
| pthread_mutex_t mutex; |
| WsSerializerContextH serctx; |
| WsManClientData data; |
| WsManConnection *connection; |
| WsManAuthData authentication; |
| WsManProxyData proxy_data; |
| |
| #ifdef _WIN32 |
| void* session_handle; |
| long lock_session_handle; |
| #endif |
| |
| long response_code; |
| char *fault_string; |
| WS_LASTERR_Code last_error; |
| void *transport; |
| char *content_encoding; |
| char *cim_ns; |
| unsigned long transport_timeout; |
| char * user_agent; |
| FILE *dumpfile; |
| long initialized; |
| #ifndef _WIN32 |
| char *client_config_file; |
| #endif |
| |
| }; |
| |
| |
| |
| |
| int wsmc_lock(WsManClient * cl); |
| void wsmc_unlock(WsManClient * cl); |
| |
| |
| #ifdef __cplusplus |
| } |
| #endif /* __cplusplus */ |
| #endif /* WSMANCLIENT_H_ */ |