int fill_newboards (struct boardheader *bptr, void* arg) { time_t tnow; struct newboarddata *boarddata = (struct newboarddata *)arg; tnow = time(0); if( ( tnow - bptr->createtime ) > 86400*30 || ( bptr->flag & BOARD_GROUP ) ) return 0; if (!check_see_perm(NULL,bptr)) return 0; if (boarddata->nBoards < MAX_NEW_BOARD_NUM) { boarddata->boards[boarddata->nBoards] = bptr; boarddata->nBoards++; } return 0; }
int fillbcache(struct boardheader *fptr,int idx,void* arg) { int bnum; struct BoardStatus * bs; char sql[500]; if (check_see_perm(NULL, fptr)==0 || strlen(fptr->filename) == 0) return 0; bnum = getbid(fptr->filename,NULL); bs = getbstatus(bnum); sprintf(sql, "INSERT INTO bonline VALUES ( NULL, '%s', '%d', '%d', \"%d-%d-%d\", '%d', '%d' );", fptr->filename, bs->currentusers, bs->nowid, t.tm_year+1900, t.tm_mon+1, t.tm_mday, t.tm_hour, t.tm_min/6); if( mysql_real_query( &s, sql, strlen(sql) )) printf("%s\n",mysql_error(&s)); return 0; }
int getbnum_safe(const char *bname, session_t *session, const int mode) { register int i; for (i = 0; i < brdshm->numboards; i++) if ((((mode == 1) && check_read_perm(session->currentuser,&bcache[i]))) || ((mode == 2) && check_see_perm(session -> currentuser, &bcache[i]))) if (!strncasecmp(bname, bcache[i].filename, STRLEN)) return i + 1; return 0; }