Posted By: Tuttle (MamPoLetechJinyUsername!) on 'CZbbs'
Title:     Re: CZHardware full!
Date:      Tue May 16 23:38:21 2006

> a nepodarilo se mi postnout takovou dlouhou reply :(

Neni to poprve, kdy lidi diky blbosti BBSky, kdy se zaplnenost boardu 
kontroluje po a ne PRED postovanim, prisli o (nezridka dlouhy text).

Odhledneme od zastaraleho blbeho navrhu s omezenim poctu prispevku na 2048.

Pred lety jsem chtel temto neprijemnostem zabranit a dolepil jsem do 
Piskoviste ochranu. Doporucuji ji spravcum nasadit na Liane. Lidi nebudou tak 
nastvani.

Patch nepujde zrejme aplikovat primo, zdrojaky jsou trochu jine. Gro v tom 
vsak je videt.

diff -bB -U15 -r 20031102/c_post.c 20031218/c_post.c
--- 20031102/c_post.c   2002-12-07 19:03:17.000000000 +0100
+++ 20031218/c_post.c  2003-12-18 13:04:51.000000000 +0100
@@ -99,30 +99,43 @@
 
+//tuttle: Dec 2003
+int board_is_full(char *boardname)
+{
+       BOARD board;
+       READINFO rinfo;
+
+       strcpy(board.name, boardname);
+       get_bitfile_ent(board.name, &rinfo);
+       if (!do_cache_count(&board, &rinfo)) _board_count(&board, &rinfo);
+
+       return (board.totalposts >= BBS_MAX_FILES);
+}
+
@@ -200,30 +213,38 @@
 
 GenericPost(docheck)
 int docheck;
 {
   int rc;
   LONG retcode = FULLUPDATE;
   TITLE subject;
 
   char scrtitle[85];
   sprintf(scrtitle, " Posting on board %s", currboard);
   
   clear();
+
+  if (board_is_full(currboard)) {
+    prints("Board %s is currently full, no further posting possible.nn
+Please contact sysops or room aides.n", currboard);
+    pressreturn();
+    return FULLUPDATE;
+  }
+
   if (docheck) {
     SHORT flags;
     if (currboard[0] == '       prints("Use (S)elect to select a board first.n");
       pressreturn();
       return FULLUPDATE;
     }
     if (bbs_test_board(currboard, &flags) != S_OK) {
       prints("Can't access the '%s' board!n", currboard);
       pressreturn();
       return FULLUPDATE;
     }
     if (!BITISSET(flags, OPEN_POST)) {
       prints("Posting on the '%s' board is restricted.n", currboard);
       pressreturn();
@@ -325,30 +346,37 @@
 
 GenericPostReply(hptr, msgsrc)
 HEADER *hptr;
 char *msgsrc;
 {
   TITLE subject;
   char ans[4];
   int rc, retcode = FULLUPDATE;
   PATH msgfile;

   char scrtitle[85];
   sprintf(scrtitle, " Posting followup on board %s", currboard);
 
   clear();
 
+  if (board_is_full(currboard)) {
+    prints("Board %s is currently full, no further posting possible.nn
+Please contact sysops or room aides.n", currboard);
+    pressreturn();
+    return FULLUPDATE;
+  }
+
   if (msgsrc == NULL) {
     if (bbs_read_message(hptr->fileid, msgfile) != S_OK) {
       prints("Can't get the message to followup to!n");      
       return retcode;
     }
   }
   else strcpy(msgfile, msgsrc);
 
   bbs_set_mode(M_POSTING);
 
 // subj block taken from here (moved to after edit)
 
   if (strncasecmp (hptr->title, "Re:", 3)) 
   {
     strcpy (subject, "Re: ");
 
---
T.

Search the boards