]> code.citadel.org Git - citadel.git/commitdiff
Merge branch 'master' of ssh://git.citadel.org/appl/gitroot/citadel
authorWilfried Goesgens <dothebart@citadel.org>
Sun, 24 Jul 2011 21:11:19 +0000 (21:11 +0000)
committerWilfried Goesgens <dothebart@citadel.org>
Sun, 24 Jul 2011 21:11:19 +0000 (21:11 +0000)
webcit/auth.c
webcit/roomops.c
webcit/sitemap.c

index 656dfdc6f40a45a92e5ce953dcb8fe083487dce2..994c00c976322826aed4032210effee66d5b41b0 100644 (file)
@@ -565,33 +565,20 @@ void do_logout(void)
  */
 void monitor(void)
 {
-       wcsession *WCC = WC;
-       char buf[SIZ];
-
-       FlushStrBuf(WCC->wc_username);
-       FlushStrBuf(WCC->wc_password);
-       FlushStrBuf(WCC->wc_fullname);
-       FlushRoomlist();
-
-       serv_puts("LOUT");
-       serv_getln(buf, sizeof buf);
-       WCC->logged_in = 0;
+       output_headers(0, 0, 0, 0, 0, 0);
 
-       FlushStrBuf(WCC->CurRoom.name);
-
-       /* Calling output_headers() this way causes the cookies to be un-set */
-       output_headers(1, 0, 0, 1, 1, 0);
+       hprintf("Content-type: text/plain\r\n"
+               "Server: " PACKAGE_STRING "\r\n"
+               "Connection: close\r\n"
+       );
+       begin_burst();
 
-       wc_printf("<html><body><tt>");
-       wc_printf("<strong>WebCit monitoring screen</strong><br>\n");
-       wc_printf("Connection to Citadel server at %s:%s : %s<br>\n",
+       wc_printf("Connection to Citadel server at %s:%s : %s\r\n",
                ctdlhost, ctdlport,
                (WC->connected ? "SUCCESS" : "FAIL")
        );
-       wc_printf("</body></html>\n");
 
-       wDumpContent(2);
-       end_webcit_session();
+       wDumpContent(0);
 }
 
 
index ff18f8f691e8ff8996f8a01587fad02a24e991b3..3d1e3a12c27bbfbbe4e86461b74b70606eeeca0f 100644 (file)
@@ -337,8 +337,8 @@ void ParseGoto(folder *room, StrBuf *Line)
        room->Floor = (const Floor*) vFloor;
 }
 
-/**
- * \brief Delete the current room
+/*
+ * Delete the current room
  */
 void delete_room(void)
 {
@@ -362,8 +362,8 @@ void delete_room(void)
        }
 }
 
-/**
- * \brief zap a room
+/*
+ * zap a room
  */
 void zap(void)
 {
@@ -982,8 +982,8 @@ void change_view(void) {
 
 
 
-/**
- * \brief Set the message expire policy for this room and/or floor
+/*
+ * Set the message expire policy for this room and/or floor
  */
 void set_room_policy(void) {
        char buf[SIZ];
@@ -1011,8 +1011,8 @@ void set_room_policy(void) {
 
 
 
-/**
- * \brief Perform changes to a room's network configuration
+/*
+ * Perform changes to a room's network configuration
  */
 void netedit(void) {
        FILE *fp;
index c79c82441d38f95a86fdf8016613e7e09165b9e6..b704ca6922e5840e771ca71056b30d5ba569f97f 100644 (file)
@@ -125,16 +125,41 @@ void sitemap_do_wiki(void) {
 }
 
 
+struct sitemap_room_list {
+       struct sitemap_room_list *next;
+       StrBuf *roomname;
+       int defview;
+};
+
+
+/*
+ * Load the room list for the sitemap
+ */
+struct sitemap_room_list *sitemap_load_roomlist(void) {
+       char buf[SIZ];
+       char roomname_plain[SIZ];
+       struct sitemap_room_list *roomlist = NULL;
+
+       serv_puts("LKRA");
+       serv_getln(buf, sizeof buf);
+       if (buf[0] == '1') while(serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
+               struct sitemap_room_list *ptr = malloc(sizeof(struct sitemap_room_list));
+               extract_token(roomname_plain, buf, 0, '|', sizeof roomname_plain);
+               ptr->roomname = NewStrBufPlain(roomname_plain, -1);
+               ptr->defview = extract_int(buf, 6);
+               ptr->next = roomlist;
+               roomlist = ptr;
+       }
+
+       return(roomlist);
+}
+
+
 /*
  * Entry point for RSS feed generator
  */
 void sitemap(void) {
-       HashList *roomlist = NULL;
-       HashPos *it = NULL;
-       long HKlen = 0;
-       const char *HashKey = NULL;
-       folder *room = NULL;
-
+       struct sitemap_room_list *roomlist = NULL;
        output_headers(0, 0, 0, 0, 1, 0);
        hprintf("Content-type: text/xml\r\n");
        hprintf(
@@ -148,17 +173,14 @@ void sitemap(void) {
        wc_printf("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
        wc_printf("<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\r\n");
 
-       roomlist = GetRoomListHashLKRA(NULL, NULL);
-       if (!roomlist) syslog(LOG_CRIT, "GetRoomListHashLKRA() FAILED!");
-       it = GetNewHashPos(roomlist, 0);
-       if (!it) syslog(LOG_CRIT, "GetNewHashPos() FAILED!");
+       roomlist = sitemap_load_roomlist();
 
-       while (GetNextHashPos(roomlist, it, &HKlen, &HashKey, (void *)&room))
+       while (roomlist != NULL)
        {
-               gotoroom(room->name);
+               gotoroom(roomlist->roomname);
 
                /* Output the messages in this room only if it's a room type we can make sense of */
-               switch(room->defview) {
+               switch(roomlist->defview) {
                        case VIEW_BBS:
                                sitemap_do_bbs();
                                break;
@@ -171,10 +193,13 @@ void sitemap(void) {
                        default:
                                break;
                }
+
+               struct sitemap_room_list *ptr = roomlist;
+               roomlist = roomlist->next;
+               FreeStrBuf(&ptr->roomname);
+               free(ptr);
        }
 
-       DeleteHashPos(&it);
-       DeleteHash(&WC->Rooms);         /* roomlist is actually a pointer to WC->Rooms */
        wc_printf("</urlset>\r\n");
        wDumpContent(0);
 }