summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwens <wens@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2010-11-21 09:12:34 +0800
committerwens <wens@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2010-11-21 09:12:34 +0800
commit6f3ffa7fc84136baae1a76c039682ddd3c68599b (patch)
tree03b1a046c64db7238b8391997d514c672a27faa2
parenta7394787065c4fb2463412d3fec77c8b61c354b0 (diff)
downloadpttbbs-6f3ffa7fc84136baae1a76c039682ddd3c68599b.tar
pttbbs-6f3ffa7fc84136baae1a76c039682ddd3c68599b.tar.gz
pttbbs-6f3ffa7fc84136baae1a76c039682ddd3c68599b.tar.bz2
pttbbs-6f3ffa7fc84136baae1a76c039682ddd3c68599b.tar.lz
pttbbs-6f3ffa7fc84136baae1a76c039682ddd3c68599b.tar.xz
pttbbs-6f3ffa7fc84136baae1a76c039682ddd3c68599b.tar.zst
pttbbs-6f3ffa7fc84136baae1a76c039682ddd3c68599b.zip
Use macro to make code look better
git-svn-id: http://opensvn.csie.org/pttbbs/trunk@5271 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r--pttbbs/daemon/boardd/boardd.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/pttbbs/daemon/boardd/boardd.c b/pttbbs/daemon/boardd/boardd.c
index 1c26abfa..e731c150 100644
--- a/pttbbs/daemon/boardd/boardd.c
+++ b/pttbbs/daemon/boardd/boardd.c
@@ -71,6 +71,9 @@ void cb_endconn(struct bufferevent *bufev, short what, void *arg);
// helper function
+#define BOARD_HIDDEN(bptr) (bptr->brdattr & (BRD_HIDE | BRD_TOP) || \
+ (bptr->level & ~(PERM_BASIC|PERM_CHAT|PERM_PAGE|PERM_POST|PERM_LOGINOK) && \
+ !(bptr->brdattr & BRD_POSTMASK)))
void answer_key(const char *key, int keylen, struct evbuffer *buf)
{
char *data, *p;
@@ -87,17 +90,13 @@ void answer_key(const char *key, int keylen, struct evbuffer *buf)
p++;
bptr = getbcache(bid);
- if (!bptr->brdname[0] || bptr->brdattr & (BRD_HIDE | BRD_TOP) ||
- (bptr->level & ~(PERM_BASIC|PERM_CHAT|PERM_PAGE|PERM_POST|PERM_LOGINOK) &&
- !(bptr->brdattr & BRD_POSTMASK)))
+ if (!bptr->brdname[0] || BOARD_HIDDEN(bptr))
return;
if (strncmp(p, "isboard", 7) == 0)
data = (bptr->brdattr & BRD_GROUPBOARD) ? "0" : "1";
else if (strncmp(p, "hidden", 6) == 0)
- data = (bptr->brdattr & (BRD_HIDE | BRD_TOP) ||
- (bptr->level & ~(PERM_BASIC|PERM_CHAT|PERM_PAGE|PERM_POST|PERM_LOGINOK) &&
- !(bptr->brdattr & BRD_POSTMASK))) ? "1" : "0";
+ data = BOARD_HIDDEN(bptr) ? "1" : "0";
else if (strncmp(p, "brdname", 7) == 0)
data = bptr->brdname;
else if (strncmp(p, "over18", 6) == 0)
@@ -126,9 +125,7 @@ void answer_key(const char *key, int keylen, struct evbuffer *buf)
bid = getbnum(key + 6);
bptr = getbcache(bid);
- if (!bptr->brdname[0] || bptr->brdattr & (BRD_HIDE | BRD_TOP) ||
- (bptr->level && !(bptr->brdattr & BRD_POSTMASK) &&
- (bptr->level & ~(PERM_BASIC|PERM_CHAT|PERM_PAGE|PERM_POST|PERM_LOGINOK))))
+ if (!bptr->brdname[0] || BOARD_HIDDEN(bptr))
return;
snprintf(databuf, sizeof(databuf), "%d", bid);