summaryrefslogtreecommitdiffstats
path: root/sesman/session.h
diff options
context:
space:
mode:
authorilsimo <ilsimo>2006-01-13 15:51:23 +0000
committerilsimo <ilsimo>2006-01-13 15:51:23 +0000
commit153b59ad8447d47d4a241e0f63307b096585172b (patch)
treed2aea8fe354a291308d80a2124dbfc05ec3fdaa8 /sesman/session.h
parentfade58ba2bf869e7e872d3003ac0962cb8f1233c (diff)
downloadxrdp-proprietary-153b59ad8447d47d4a241e0f63307b096585172b.tar.gz
xrdp-proprietary-153b59ad8447d47d4a241e0f63307b096585172b.zip
new session list code
added support for new [sessions] configuration options
Diffstat (limited to 'sesman/session.h')
-rw-r--r--sesman/session.h75
1 files changed, 71 insertions, 4 deletions
diff --git a/sesman/session.h b/sesman/session.h
index c8615c05..5d677911 100644
--- a/sesman/session.h
+++ b/sesman/session.h
@@ -24,6 +24,20 @@
#ifndef SESSION_H
#define SESSION_H
+#define SESMAN_SESSION_TYPE_XRDP 1
+#define SESMAN_SESSION_TYPE_XVNC 2
+
+#define SESMAN_SESSION_STATUS_ACTIVE 1
+#define SESMAN_SESSION_STATUS_IDLE 2
+#define SESMAN_SESSION_STATUS_DISCONNECTED 3
+/* future expansion
+#define SESMAN_SESSION_STATUS_REMCONTROL 4
+*/
+
+#define SESMAN_SESSION_KILL_OK 0
+#define SESMAN_SESSION_KILL_NULLITEM 1
+#define SESMAN_SESSION_KILL_NOTFOUND 2
+
struct session_item
{
char name[256];
@@ -33,17 +47,70 @@ struct session_item
int height;
int bpp;
long data;
+
+ /* status info */
+ unsigned char status;
+ unsigned char type;
+
+ /* time data */
+ time_t connect_time;
+ time_t disconnect_time;
+ time_t idle_time;
};
-/******************************************************************************/
+struct session_chain
+{
+ struct session_chain* next;
+ struct session_item* item;
+};
+
+/**
+ *
+ * finds a session matching the supplied parameters
+ *
+ * @return session data or 0
+ *
+ */
struct session_item* DEFAULT_CC
-session_find_item(char* name, int width, int height, int bpp);
+session_get_bydata(char* name, int width, int height, int bpp);
+#ifndef session_find_item
+ #define session_find_item(a, b, c, d) session_get_bydata(a, b, c, d);
+#endif
-/******************************************************************************/
-/* returns 0 if error else the display number the session was started on */
+/**
+ *
+ * starts a session
+ *
+ * @return 0 on error, display number if success
+ *
+ */
int DEFAULT_CC
session_start(int width, int height, int bpp, char* username, char* password,
long data);
+/**
+ *
+ * kills a session
+ *
+ * @param the id of the session to be killed
+ *
+ * @return
+ *
+ */
+int DEFAULT_CC
+session_kill(int pid);
+
+/**
+ *
+ * retrieves a session's descriptor
+ *
+ * @param pid the session pid
+ *
+ * @return a pointer to the session descriptor on success, NULL otherwise
+ *
+ */
+struct session_item* DEFAULT_CC
+session_get_bypid(int pid);
+
#endif