int verify_sdbd_launch ( parameters* in, parameters* out );
int verify_root_cmd ( parameters* in, parameters* out );
int get_lock_state ( parameters* in, parameters* out );
+int get_shell_env ( parameters* in, parameters* out );
int auth_support ( parameters* in, parameters* out );
int auth_get_key_file_paths ( parameters* in, parameters* out );
return PLUGIN_CMD_SUCCESS;
}
+
+int get_shell_env ( parameters* in, parameters* out )
+{
+ if ( out == NULL ) {
+ D ( "Invalid argument\n" );
+ return PLUGIN_CMD_FAIL;
+ }
+
+ out->number_of_parameter = 1;
+ out->array_of_parameter = ( parameter* ) malloc ( sizeof ( parameter ) );
+
+ make_string_parameter ( & ( out->array_of_parameter[0] ), "%s", "" );
+ return PLUGIN_CMD_SUCCESS;
+}
+
ret = auth_get_key_file_paths ( in, out );
} else if ( cmd == PLUGIN_SYNC_CMD_GET_LOCK_STATE ) {
ret = get_lock_state ( in, out );
+ } else if ( cmd == PLUGIN_SYNC_CMD_GET_SHELL_ENV ) {
+ ret = get_shell_env ( in, out );
} else {
ret = PLUGIN_CMD_NOT_SUPPORT;
}
int ret;
parameters in, out;
- in.number_of_parameter = 1;
- in.array_of_parameter = ( parameter* ) malloc ( sizeof ( parameter ) );
- in.array_of_parameter[0].type = type_string;
- in.array_of_parameter[0].v_string.length = strlen ( in_buf );
- in.array_of_parameter[0].v_string.data = strdup ( in_buf );
+ if ( in_buf != NULL ) {
+ in.number_of_parameter = 1;
+ in.array_of_parameter = ( parameter* ) malloc ( sizeof ( parameter ) );
+ in.array_of_parameter[0].type = type_string;
+ in.array_of_parameter[0].v_string.length = strlen ( in_buf );
+ in.array_of_parameter[0].v_string.data = strdup ( in_buf );
+ } else {
+ in.number_of_parameter = 0;
+ in.array_of_parameter = NULL;
+ }
ret = request_sync_cmd ( cmd, &in, &out );
if ( ret == PLUGIN_CMD_SUCCESS ) {
return fd;
}
+
// Target name of the launch possible
- if(!request_plugin_cmd(SDBD_CMD_PLUGIN_CAP, SDBD_CAP_TYPE_CANLAUNCH,
- g_capabilities.can_launch,
+ if(!request_capability_to_plugin(CAPABILITY_CAN_LAUNCH, g_capabilities.can_launch,
sizeof(g_capabilities.can_launch))) {
- D("failed to request. (%s:%s) \n", SDBD_CMD_PLUGIN_CAP, SDBD_CAP_TYPE_CANLAUNCH);
+ D("failed to request. (%d:%d) \n", PLUGIN_SYNC_CMD_CAPABILITY, CAPABILITY_CAN_LAUNCH);
snprintf(g_capabilities.can_launch, sizeof(g_capabilities.can_launch),
"%s", UNKNOWN);
}
#define PLUGIN_SYNC_CMD_AUTH_SUPPORT 1006
#define PLUGIN_SYNC_CMD_AUTH_GET_KEY_FILEPATHS 1007
#define PLUGIN_SYNC_CMD_GET_LOCK_STATE 1008
+#define PLUGIN_SYNC_CMD_GET_SHELL_ENV 1009
// asynchronous command
#define PLUGIN_ASYNC_CMD_AUTH_CONFIRM_PUBLIC 2000
#include "sdbd_plugin.h"
#include "plugin.h"
+#define ENV_BUF_MAX 4096
+
typedef struct stinfo stinfo;
struct stinfo {
/* get environment variables from plugin */
char *envp_plugin = NULL;
- envp_plugin = malloc(SDBD_PLUGIN_OUTBUF_MAX);
+ envp_plugin = malloc(ENV_BUF_MAX);
if (envp_plugin == NULL) {
D("Cannot allocate the shell commnad buffer.");
return -1;
}
- memset(envp_plugin, 0, SDBD_PLUGIN_OUTBUF_MAX);
- if (!request_plugin_cmd(SDBD_CMD_SHELL_ENVVAR, "", envp_plugin, SDBD_PLUGIN_OUTBUF_MAX)) {
+ memset(envp_plugin, 0, ENV_BUF_MAX);
+ if (!request_conversion_to_plugin(PLUGIN_SYNC_CMD_GET_SHELL_ENV, NULL,
+ envp_plugin, ENV_BUF_MAX)) {
D("Failed to convert the shell command. (%s)\n", name);
free(envp_plugin);
return -1;
#if !SDB_HOST
#include "commandline_sdbd.h"
#endif
+#include "utils.h"
#include "sdbd_plugin.h"
#include "plugin.h"