From 832574b6dee87f4efb56945c62e5d2fadec27288 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Sun, 24 Feb 2008 19:12:49 +0100 Subject: [PATCH] Get rid of struct newscache Just use struct nwsstr, it has the uid now. --- src/lib/subs/nreport.c | 48 ++++++++++++++++++------------------------ 1 file changed, 21 insertions(+), 27 deletions(-) diff --git a/src/lib/subs/nreport.c b/src/lib/subs/nreport.c index e1ab70b31..aa47fc486 100644 --- a/src/lib/subs/nreport.c +++ b/src/lib/subs/nreport.c @@ -43,30 +43,24 @@ #define SLOTS 5 -struct newscache { - struct nwsstr news; - int id; -}; - -static struct newscache cache[MAXNOC][SLOTS]; +static struct nwsstr cache[MAXNOC][SLOTS]; static int news_tail; -static struct newscache * -ncache(int actor, int event, int victim, int times); +static struct nwsstr *ncache(int actor, int event, int victim, int times); void nreport(natid actor, int event, natid victim, int times) { int nice; struct natstr *natp; - struct newscache *ncp; + struct nwsstr *np; if (CANT_HAPPEN((unsigned)event > N_MAX_VERB || rpt[event].r_newstory[0] == rpt[0].r_newstory[0])) return; - ncp = ncache(actor, event, victim, times); - putnews(ncp->id, &ncp->news); + np = ncache(actor, event, victim, times); + putnews(np->nws_uid, np); /* * this is probably pretty expensive, but hopefully we @@ -154,10 +148,10 @@ init_nreport(void) * in the last 5 minutes, if so just increment the times * field instead of creating a new message. */ -static struct newscache * +static struct nwsstr * ncache(int actor, int event, int victim, int times) { - struct newscache *np; + struct nwsstr *np; int i; int oldslot; time_t oldtime; @@ -167,17 +161,17 @@ ncache(int actor, int event, int victim, int times) oldtime = 0x7fffffff; for (i = 0; i < SLOTS; i++) { np = &cache[actor][i]; - if (np->news.nws_when < oldtime) { + if (np->nws_when < oldtime) { oldslot = i; - oldtime = np->news.nws_when; + oldtime = np->nws_when; } - if (np->id == 0) + if (np->nws_uid == 0) continue; - if ((now - np->news.nws_when) > minutes(5)) + if (now - np->nws_when > minutes(5)) continue; - if (np->news.nws_vrb == event && np->news.nws_vno == victim && - np->news.nws_ntm + times <= 127) { - np->news.nws_ntm += times; + if (np->nws_vrb == event && np->nws_vno == victim + && np->nws_ntm + times <= 127) { + np->nws_ntm += times; return np; } } @@ -186,12 +180,12 @@ ncache(int actor, int event, int victim, int times) if (CANT_HAPPEN(!strstr(rpt[event].r_newstory[0], "%s") && victim != 0)) victim = 0; np = &cache[actor][oldslot]; - ef_blank(EF_NEWS, news_tail, &np->news); - np->news.nws_ano = actor; - np->news.nws_vno = victim; - np->news.nws_when = now; - np->news.nws_vrb = event; - np->news.nws_ntm = times; - np->id = news_tail++; + ef_blank(EF_NEWS, news_tail, np); + np->nws_ano = actor; + np->nws_vno = victim; + np->nws_when = now; + np->nws_vrb = event; + np->nws_ntm = times; + news_tail++; return np; } -- 2.43.0