/*
* $Id$
*/
-/**
- * \defgroup DislpayWho Display a list of all users currently logged on to the Citadel server.
- * \ingroup WebcitDisplayItems
- */
-/*@{*/
-#include "webcit.h"
+#include "webcit.h"
typedef struct UserStateStruct {
char *UserName;
{
struct wcsession *WCC = WC; /* This is done to make it run faster; WC is a function */
UserStateStruct *User, *OldUser;
+ void *VOldUser;
char buf[SIZ], user[SIZ], room[SIZ], host[SIZ],
realroom[SIZ], realhost[SIZ];
size_t BufLen;
User->Idle = (now - User->LastActive) > 900L;
User->SessionCount = 1;
- if (GetHash(List, User->UserName, User->UserNameLen, (void**)&OldUser)) {
+ if (GetHash(List, User->UserName, User->UserNameLen, &VOldUser)) {
+ OldUser = VOldUser;
OldUser->SessionCount++;
if (!User->Idle) {
if (User->Session == WCC->ctdl_pid)
return 0;
}
-/**
- * \brief Display inner div of Wholist
+/*
+ * Display inner div of Wholist
*/
void who_inner_div(void) {
UserStateStruct *User;
+ void *VUser;
char buf[SIZ];
struct wcsession *WCC = WC; /* This is done to make it run faster; WC is a function */
HashList *List;
if (GetWholistSection(List, now)) {
it = GetNewHashPos();
- while (GetNextHashPos(List, it, &len, &UserName, (void**)&User)) {
-
+ while (GetNextHashPos(List, it, &len, &UserName, &VUser)) {
+ User = VUser;
bg = 1 - bg;
wprintf("<tr class=\"%s\">",
(bg ? "even" : "odd")
}
wprintf("</td>");
- /** (link to page this user) */
+ /* (link to page this user) */
wprintf("<td width=\"5%\"><a href=\"display_page?recp=");
urlescputs(User->UserName);
wprintf("\">"
" border=\"0\" /></a> ");
wprintf("</td>");
- /** (idle flag) */
+ /* (idle flag) */
wprintf("<td width=\"5%\">");
if (User->Idle) {
wprintf(" "
}
wprintf("</td>\n<td>");
- /** username (link to user bio/photo page) */
+ /* username (link to user bio/photo page) */
wprintf("<a href=\"showuser?who=");
urlescputs(User->UserName);
wprintf("\">");
wprintf(" [%d] ", User->SessionCount);
wprintf("</a>");
- /** room */
+ /* room */
wprintf("</td>\n\t<td>");
escputs(User->Room);
if (!IsEmptyStr(User->RealRoom) ) {
}
wprintf("</td>\n\t<td class=\"host_col\">");
- /** hostname */
+ /* hostname */
escputs(User->Host);
if (!IsEmptyStr(User->RealHost)) {
wprintf("<br /><i>");
}
-/**
- * \brief who is on?
+/*
+ * Display a list of users currently logged in to the system
*/
void who(void)
{
);
wprintf("</div></div>\n");
- /**
+ /*
* JavaScript to make the ajax refresh happen:
* See http://www.sergiopereira.com/articles/prototype.js.html for info on Ajax.PeriodicalUpdater
* It wants: 1. The div being updated
wDumpContent(1);
}
-/**
- * \brief end session \todo what??? does this belong here?
+/*
+ * end session
*/
void terminate_session(void)
{
}
-/**
- * \brief Change your session info (fake roomname and hostname)
+/*
+ * Change your session info (fake roomname and hostname)
*/
void edit_me(void)
{
char buf[SIZ];
- if (!IsEmptyStr(bstr("change_room_name_button"))) {
+ if (havebstr("change_room_name_button")) {
serv_printf("RCHG %s", bstr("fake_roomname"));
serv_getln(buf, sizeof buf);
http_redirect("who");
- } else if (!IsEmptyStr(bstr("change_host_name_button"))) {
+ } else if (havebstr("change_host_name_button")) {
serv_printf("HCHG %s", bstr("fake_hostname"));
serv_getln(buf, sizeof buf);
http_redirect("who");
- } else if (!IsEmptyStr(bstr("change_user_name_button"))) {
+ } else if (havebstr("change_user_name_button")) {
serv_printf("UCHG %s", bstr("fake_username"));
serv_getln(buf, sizeof buf);
http_redirect("who");
- } else if (!IsEmptyStr(bstr("cancel_button"))) {
+ } else if (havebstr("cancel_button")) {
http_redirect("who");
} else {
output_headers(1, 1, 0, 0, 0, 0);
}
}
-/**
- * \brief Wholist section
+/*
+ * Wholist section
*/
void wholist_section(void) {
UserStateStruct *User;
+ void *VUser;
HashList *List;
HashPos *it;
char *UserName;
if (GetWholistSection(List, now)) {
SortByPayload(List, CompareUserStruct);
it = GetNewHashPos();
- while (GetNextHashPos(List, it, &len, &UserName, (void**)&User)) {
+ while (GetNextHashPos(List, it, &len, &UserName, &VUser)) {
+ User = VUser;
if (strcmp(User->UserName, NLI)) {
wprintf("<li class=\"");
if (User->Idle) {
}
DeleteHash(&List);
}
-
-
-
-/*@}*/