Merge pull request #7 from kolbma/master

- added commandline option --option to support OptionSet feature
diff --git a/src/wsman.c b/src/wsman.c
index cb735d4..0edef89 100644
--- a/src/wsman.c
+++ b/src/wsman.c
@@ -117,6 +117,7 @@
 static char *resource_uri_opt = NULL;
 static char *invoke_method = NULL;
 static char **properties = NULL;
+static char **option_set_values = NULL;
 
 struct _WsActions {
 	char *action;
@@ -223,6 +224,9 @@
 		{"prop", 'k', U_OPTION_ARG_STRING_ARRAY, &properties,
 			"Properties with key value pairs (For 'put', 'invoke' and 'create')",
 			"<key=val>"},
+		{"option", NULL, U_OPTION_ARG_STRING_ARRAY, &option_set_values,
+			"Option with key value pair for OptionSet (For 'put', 'invoke' and 'create')",
+			"<key=val>"},
 		{"config-file", 'C', U_OPTION_ARG_STRING, &config_file,
 			"Alternate configuration file", "<file>"},
 		{"out-file", 'O', U_OPTION_ARG_STRING, &output_file,
@@ -533,6 +537,21 @@
 }
 
 
+static void
+wsman_options_set_option_set_values(client_opt_t *options)
+{
+	int c = 0;
+
+	while (option_set_values != NULL && option_set_values[c] != NULL) {
+		char *cc[3] = { NULL, NULL, NULL };
+		u_tokenize1(cc, 2, option_set_values[c], '=');
+                wsmc_add_option(options, cc[0], cc[1]);
+		c++;
+	}
+	return;
+}
+
+
 static int wsman_options_get_delivery_mode(void)
 {
 	int mode = 0;
@@ -748,6 +767,8 @@
 	}
 
 	wsman_options_set_properties(options);
+	wsman_options_set_option_set_values(options);
+
 	options->cim_ns = cim_namespace;
 	if (cim_extensions) {
 		wsmc_set_action_option(options, FLAG_CIM_EXTENSIONS);