summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnas Nashif <nashif@intel.com>2006-12-02 23:23:43 +0000
committerAnas Nashif <nashif@intel.com>2006-12-02 23:23:43 +0000
commit86761380984465fa0d995f2b6bf92d520fe1b12f (patch)
treef185120aee96ec1cad08e1d24b96914996dcf2d7
parent45f94492dd9d84836627eefb77ee2332e6e380d4 (diff)
downloadwsmancli-86761380984465fa0d995f2b6bf92d520fe1b12f.tar.gz
wsmancli-86761380984465fa0d995f2b6bf92d520fe1b12f.tar.xz
wsmancli-86761380984465fa0d995f2b6bf92d520fe1b12f.zip
make client compile on windows
-rw-r--r--examples/wsmid_identify_no_options.c138
-rw-r--r--src/wsman-client-options.c8
-rw-r--r--src/wsman.c12
3 files changed, 154 insertions, 4 deletions
diff --git a/examples/wsmid_identify_no_options.c b/examples/wsmid_identify_no_options.c
new file mode 100644
index 0000000..a6a83a8
--- /dev/null
+++ b/examples/wsmid_identify_no_options.c
@@ -0,0 +1,138 @@
+/*******************************************************************************
+ * 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
+ */
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#include <errno.h>
+#include <time.h>
+
+#include "u/libu.h"
+
+#include "wsman-client-api.h"
+#include "wsman-client-transport.h"
+#include "wsman-xml-serializer.h"
+
+struct __wsmid_identify
+{
+ char* ProtocolVersion;
+ char* ProductVendor;
+ char* ProductVersion;
+};
+typedef struct __wsmid_identify wsmid_identify;
+
+SER_START_ITEMS("IdentifyResponse", wsmid_identify)
+SER_STR("ProtocolVersion", 1, 1),
+SER_STR("ProductVendor", 1, 1),
+SER_STR("ProductVersion", 1, 1),
+SER_END_ITEMS("IdentifyResponse", wsmid_identify);
+
+
+static char vendor = 0;
+static char version = 0;
+static char protocol = 0;
+static char *endpoint = NULL;
+
+int main(int argc, char** argv)
+{
+
+ WsManClient *cl;
+ WsXmlDocH doc;
+ actionOptions options;
+ char retval = 0;
+
+ WsXmlNodeH soapBody;
+ u_uri_t *uri;
+ endpoint = argv[1];
+
+ if (endpoint) {
+ u_uri_parse((const char *)endpoint, &uri);
+ }
+ if (!endpoint || !uri) {
+ fprintf(stderr, "endpoint option required\n");
+ return 1;
+ }
+
+
+ wsman_client_transport_init(NULL);
+ cl = wsman_create_client( uri->host,
+ uri->port,
+ uri->path,
+ uri->scheme,
+ uri->user,
+ uri->pwd);
+ initialize_action_options(&options);
+ //wsman_set_action_option(&options,FLAG_DUMP_REQUEST );
+
+ doc = wsman_identify(cl, options);
+
+ soapBody = ws_xml_get_soap_body(doc);
+ if (ws_xml_get_child(soapBody, 0, XML_NS_WSMAN_ID, "IdentifyResponse")) {
+ wsmid_identify *id = ws_deserialize(wsman_client_get_context(cl),
+ soapBody,
+ wsmid_identify_TypeInfo,"IdentifyResponse",
+ XML_NS_WSMAN_ID, XML_NS_WSMAN_ID,
+ 0, 0);
+
+ if (vendor)
+ printf("%s\n", id->ProductVendor);
+ if (version)
+ printf("%s\n", id->ProductVersion);
+ if (protocol)
+ printf("%s\n", id->ProtocolVersion);
+
+ if (!protocol && !vendor && !version ) {
+ printf("\n");
+ printf("%s %s supporting protocol %s\n", id->ProductVendor, id->ProductVersion,id->ProtocolVersion);
+ }
+
+ }
+ if (uri) {
+ u_uri_free(uri);
+ }
+
+ if (doc) {
+ ws_xml_destroy_doc(doc);
+ }
+
+ destroy_action_options(&options);
+ wsman_release_client(cl);
+
+
+ return 0;
+}
+
+
diff --git a/src/wsman-client-options.c b/src/wsman-client-options.c
index 18f32c5..68a0d0f 100644
--- a/src/wsman-client-options.c
+++ b/src/wsman-client-options.c
@@ -31,12 +31,18 @@
/**
* @author Anas Nashif
*/
-
+#ifdef HAVE_CONFIG_H
#include <config.h>
+#endif
+
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+
+#ifdef HAVE_UNISTD_H
#include <unistd.h>
+#endif
+
#include "u/libu.h"
#include "wsman-client-api.h"
diff --git a/src/wsman.c b/src/wsman.c
index 0aab838..b7ced16 100644
--- a/src/wsman.c
+++ b/src/wsman.c
@@ -33,13 +33,18 @@
* @author Eugene Yarmosh
* @author Vadim Revyakin
*/
-
+#ifdef HAVE_CONFIG_H
#include "config.h"
+#endif
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+
+#ifdef HAVE_UNISTD_H
#include <unistd.h>
+#endif
+
#include <errno.h>
#include <time.h>
@@ -108,6 +113,7 @@ int main(int argc, char** argv)
char *enumContext;
WsXmlDocH rqstDoc;
actionOptions options;
+ WsXmlDocH enum_response;
char *enumeration_mode, *binding_enumeration_mode, *resource_uri_with_selectors;
char *resource_uri = NULL;
@@ -259,7 +265,7 @@ int main(int argc, char** argv)
}
break;
case WSMAN_ACTION_ENUMERATION:
-
+
enumeration_mode = wsman_options_get_enum_mode();
binding_enumeration_mode = wsman_options_get_binding_enum_mode();
@@ -289,7 +295,7 @@ int main(int argc, char** argv)
wsman_set_action_option(&options, FLAG_ENUMERATION_COUNT_ESTIMATION);
}
- WsXmlDocH enum_response = wsenum_enumerate(cl,
+ enum_response = wsenum_enumerate(cl,
resource_uri, options);
if (enum_response) {
if (wsman_get_client_response_code(cl) == 200 ||