summaryrefslogtreecommitdiffstats
path: root/sesman/tools/sesadmin.c
diff options
context:
space:
mode:
Diffstat (limited to 'sesman/tools/sesadmin.c')
-rw-r--r--sesman/tools/sesadmin.c262
1 files changed, 132 insertions, 130 deletions
diff --git a/sesman/tools/sesadmin.c b/sesman/tools/sesadmin.c
index 22f20c23..25af850b 100644
--- a/sesman/tools/sesadmin.c
+++ b/sesman/tools/sesadmin.c
@@ -22,174 +22,176 @@ char port[257];
struct log_config logging;
-void cmndList(struct SCP_CONNECTION* c);
-void cmndKill(struct SCP_CONNECTION* c, struct SCP_SESSION* s);
+void cmndList(struct SCP_CONNECTION *c);
+void cmndKill(struct SCP_CONNECTION *c, struct SCP_SESSION *s);
void cmndHelp();
-int inputSession(struct SCP_SESSION* s);
+int inputSession(struct SCP_SESSION *s);
unsigned int menuSelect(unsigned int choices);
-int main(int argc, char** argv)
+int main(int argc, char **argv)
{
- struct SCP_SESSION* s;
- struct SCP_CONNECTION* c;
- enum SCP_CLIENT_STATES_E e;
- //int end;
- int idx;
- //int sel;
- int sock;
- char* pwd;
-
- user[0]='\0';
- pass[0]='\0';
- cmnd[0]='\0';
- serv[0]='\0';
- port[0]='\0';
-
- logging.program_name = g_strdup("sesadmin");
- logging.log_file = g_strdup("xrdp-sesadmin.log");
- logging.log_level = LOG_LEVEL_DEBUG;
- logging.enable_syslog = 0;
- log_start_from_param(&logging);
-
- for (idx = 0; idx < argc; idx++)
- {
- if (0 == g_strncmp(argv[idx], "-u=", 3))
+ struct SCP_SESSION *s;
+ struct SCP_CONNECTION *c;
+ enum SCP_CLIENT_STATES_E e;
+ //int end;
+ int idx;
+ //int sel;
+ int sock;
+ char *pwd;
+
+ user[0] = '\0';
+ pass[0] = '\0';
+ cmnd[0] = '\0';
+ serv[0] = '\0';
+ port[0] = '\0';
+
+ logging.program_name = g_strdup("sesadmin");
+ logging.log_file = g_strdup("xrdp-sesadmin.log");
+ logging.log_level = LOG_LEVEL_DEBUG;
+ logging.enable_syslog = 0;
+ log_start_from_param(&logging);
+
+ for (idx = 0; idx < argc; idx++)
{
- g_strncpy(user, (argv[idx])+3, 256);
+ if (0 == g_strncmp(argv[idx], "-u=", 3))
+ {
+ g_strncpy(user, (argv[idx]) + 3, 256);
+ }
+ else if (0 == g_strncmp(argv[idx], "-p=", 3))
+ {
+ g_strncpy(pass, (argv[idx]) + 3, 256);
+ }
+ else if (0 == g_strncmp(argv[idx], "-s=", 3))
+ {
+ g_strncpy(serv, (argv[idx]) + 3, 256);
+ }
+ else if (0 == g_strncmp(argv[idx], "-i=", 3))
+ {
+ g_strncpy(port, (argv[idx]) + 3, 256);
+ }
+ else if (0 == g_strncmp(argv[idx], "-c=", 3))
+ {
+ g_strncpy(cmnd, (argv[idx]) + 3, 256);
+ }
}
- else if (0 == g_strncmp(argv[idx], "-p=", 3))
- {
- g_strncpy(pass, (argv[idx])+3, 256);
- }
- else if (0 == g_strncmp(argv[idx], "-s=", 3))
+
+ if (0 == g_strncmp(serv, "", 1))
{
- g_strncpy(serv, (argv[idx])+3, 256);
+ g_strncpy(serv, "localhost", 256);
}
- else if (0 == g_strncmp(argv[idx], "-i=", 3))
+
+ if (0 == g_strncmp(port, "", 1))
{
- g_strncpy(port, (argv[idx])+3, 256);
+ g_strncpy(port, "3350", 256);
}
- else if (0 == g_strncmp(argv[idx], "-c=", 3))
+
+ if (0 == g_strncmp(user, "", 1))
{
- g_strncpy(cmnd, (argv[idx])+3, 256);
+ g_strncpy(user, "root", 256);
}
- }
-
- if (0 == g_strncmp(serv, "", 1))
- {
- g_strncpy(serv, "localhost", 256);
- }
-
- if (0 == g_strncmp(port, "", 1))
- {
- g_strncpy(port, "3350", 256);
- }
-
- if (0 == g_strncmp(user, "", 1))
- {
- g_strncpy(user, "root", 256);
- }
-
- if (0 == g_strncmp(pass, "", 1))
- {
- pwd = getpass("password:");
- g_strncpy(pass, pwd, 256);
-
- /* zeroing the password */
- while ((*pwd) != '\0')
+
+ if (0 == g_strncmp(pass, "", 1))
{
- (*pwd) = 0x00;
- pwd++;
+ pwd = getpass("password:");
+ g_strncpy(pass, pwd, 256);
+
+ /* zeroing the password */
+ while ((*pwd) != '\0')
+ {
+ (*pwd) = 0x00;
+ pwd++;
+ }
}
- }
- scp_init(&logging);
+ scp_init(&logging);
- sock = g_tcp_socket();
- s = scp_session_create();
- c = scp_connection_create(sock);
+ sock = g_tcp_socket();
+ s = scp_session_create();
+ c = scp_connection_create(sock);
- LOG_DBG("Connecting to %s:%s with user %s (%s)\n", serv, port, user, pass);
+ LOG_DBG("Connecting to %s:%s with user %s (%s)\n", serv, port, user, pass);
- if (0 != g_tcp_connect(sock, serv, port))
- {
- LOG_DBG("g_tcp_connect() error\n");
- return 1;
- }
+ if (0 != g_tcp_connect(sock, serv, port))
+ {
+ LOG_DBG("g_tcp_connect() error\n");
+ return 1;
+ }
- scp_session_set_type(s, SCP_SESSION_TYPE_MANAGE);
- scp_session_set_version(s, 1);
- scp_session_set_username(s, user);
- scp_session_set_password(s, pass);
+ scp_session_set_type(s, SCP_SESSION_TYPE_MANAGE);
+ scp_session_set_version(s, 1);
+ scp_session_set_username(s, user);
+ scp_session_set_password(s, pass);
- e = scp_v1c_mng_connect(c,s);
+ e = scp_v1c_mng_connect(c, s);
- if (SCP_CLIENT_STATE_OK != e)
- {
- LOG_DBG("libscp error connecting: %s %d\n", s->errstr, (int)e);
- }
+ if (SCP_CLIENT_STATE_OK != e)
+ {
+ LOG_DBG("libscp error connecting: %s %d\n", s->errstr, (int)e);
+ }
- if (0 == g_strncmp(cmnd, "list", 5))
- {
- cmndList(c);
- }
- else if (0 == g_strncmp(cmnd, "kill:", 5))
- {
- cmndKill(c,s);
- }
+ if (0 == g_strncmp(cmnd, "list", 5))
+ {
+ cmndList(c);
+ }
+ else if (0 == g_strncmp(cmnd, "kill:", 5))
+ {
+ cmndKill(c, s);
+ }
- g_tcp_close(sock);
- scp_session_destroy(s);
- scp_connection_destroy(c);
- log_end();
+ g_tcp_close(sock);
+ scp_session_destroy(s);
+ scp_connection_destroy(c);
+ log_end();
- return 0;
+ return 0;
}
void cmndHelp()
{
- fprintf(stderr, "sesadmin - a console sesman adminitration tool\n");
- fprintf(stderr, "sysntax: sesadmin [] COMMAND [OPTIONS]\n\n");
- fprintf(stderr, "-u=<username>: username to connect to sesman [MANDATORY]\n");
- fprintf(stderr, "-p=<password>: password to connect to sesman [MANDATORY]\n");
- fprintf(stderr, "-s=<hostname>: sesman host (default is localhost)\n");
- fprintf(stderr, "-i=<port> : sesman port (default 3350)\n");
- fprintf(stderr, "-c=<command> : command to execute on the server [MANDATORY]\n");
- fprintf(stderr, " it can be one of those:\n");
- fprintf(stderr, " LIST\n");
- fprintf(stderr, " KILL:<sid>\n");
+ fprintf(stderr, "sesadmin - a console sesman adminitration tool\n");
+ fprintf(stderr, "sysntax: sesadmin [] COMMAND [OPTIONS]\n\n");
+ fprintf(stderr, "-u=<username>: username to connect to sesman [MANDATORY]\n");
+ fprintf(stderr, "-p=<password>: password to connect to sesman [MANDATORY]\n");
+ fprintf(stderr, "-s=<hostname>: sesman host (default is localhost)\n");
+ fprintf(stderr, "-i=<port> : sesman port (default 3350)\n");
+ fprintf(stderr, "-c=<command> : command to execute on the server [MANDATORY]\n");
+ fprintf(stderr, " it can be one of those:\n");
+ fprintf(stderr, " LIST\n");
+ fprintf(stderr, " KILL:<sid>\n");
}
-void cmndList(struct SCP_CONNECTION* c)
+void cmndList(struct SCP_CONNECTION *c)
{
- struct SCP_DISCONNECTED_SESSION* dsl;
- enum SCP_CLIENT_STATES_E e;
- int scnt;
- int idx;
-
- e = scp_v1c_mng_get_session_list(c, &scnt, &dsl);
- if ((SCP_CLIENT_STATE_LIST_OK == e) && (scnt > 0))
- {
- for (idx = 0; idx < scnt; idx++)
+ struct SCP_DISCONNECTED_SESSION *dsl;
+ enum SCP_CLIENT_STATES_E e;
+ int scnt;
+ int idx;
+
+ e = scp_v1c_mng_get_session_list(c, &scnt, &dsl);
+
+ if ((SCP_CLIENT_STATE_LIST_OK == e) && (scnt > 0))
{
- printf("%d\t%d\t%dx%dx%d\t%d-%d-%d\t%04d/%02d/%02d@%02d:%02d\n", \
- (dsl[idx]).SID, (dsl[idx]).type, (dsl[idx]).width, (dsl[idx]).height, (dsl[idx]).bpp, \
- (dsl[idx]).idle_days, (dsl[idx]).idle_hours, (dsl[idx]).idle_minutes, \
- (dsl[idx]).conn_year, (dsl[idx]).conn_month, (dsl[idx]).conn_day, (dsl[idx]).conn_hour, (dsl[idx]).conn_minute);
+ for (idx = 0; idx < scnt; idx++)
+ {
+ printf("%d\t%d\t%dx%dx%d\t%d-%d-%d\t%04d/%02d/%02d@%02d:%02d\n", \
+ (dsl[idx]).SID, (dsl[idx]).type, (dsl[idx]).width, (dsl[idx]).height, (dsl[idx]).bpp, \
+ (dsl[idx]).idle_days, (dsl[idx]).idle_hours, (dsl[idx]).idle_minutes, \
+ (dsl[idx]).conn_year, (dsl[idx]).conn_month, (dsl[idx]).conn_day, (dsl[idx]).conn_hour, (dsl[idx]).conn_minute);
+ }
+
+ if (0 != dsl)
+ {
+ g_free(dsl);
+ }
}
- if (0 != dsl)
+ else
{
- g_free(dsl);
+ printf("No sessions.\n");
}
- }
- else
- {
- printf("No sessions.\n");
- }
}
-void cmndKill(struct SCP_CONNECTION* c, struct SCP_SESSION* s)
+void cmndKill(struct SCP_CONNECTION *c, struct SCP_SESSION *s)
{
}