if ( ifd < 0 ) {
D( "inotify_init failed\n");
+ sdb_close(fd);
return;
}
execve(cmd, argv, envp);
}
-static int create_subprocess(const char *cmd, pid_t *pid, char * const argv[], char * const envp[])
+int create_subprocess(const char *cmd, pid_t *pid, char * const argv[], char * const envp[])
{
char devname[64];
int ptm;
}
#endif /* !SDB_HOST */
-#define SHELL_COMMAND "/bin/sh"
#define LOGIN_COMMAND "/bin/login"
#define SUPER_USER "root"
#define LOGIN_CONFIG "/etc/login.defs"
}
}
-static void get_env(char *key, char **env)
+void get_env(char *key, char **env)
{
FILE *fp;
char buf[1024];
return ret_fd;
}
-
#endif
static void get_platforminfo(int fd, void *cookie) {
"sdbd_cap_version", g_capabilities.sdbd_cap_version);
// Sdbd log enable
- offset += put_key_value_string(cap_buffer, offset, CAPBUF_SIZE,
- "log_enable", g_capabilities.log_enable);
+ offset += put_key_value_string(cap_buffer, offset, CAPBUF_SIZE,
+ "log_enable", g_capabilities.log_enable);
// Sdbd log path
- offset += put_key_value_string(cap_buffer, offset, CAPBUF_SIZE,
- "log_path", g_capabilities.log_path);
+ offset += put_key_value_string(cap_buffer, offset, CAPBUF_SIZE,
+ "log_path", g_capabilities.log_path);
+
+ // Application command support
+ offset += put_key_value_string(cap_buffer, offset, CAPBUF_SIZE,
+ "appcmd_support", g_capabilities.appcmd_support);
offset++; // for '\0' character
char* env_variable = NULL;
env_variable = strdup(name+14);
ret = create_service_thread(get_tzplatform_env, (void *)(env_variable));
+ } else if(!strncmp(name, "appcmd:", 7)){
+ ret = request_appcmd_to_plugin(name+7);
}
if (ret >= 0) {