Get rid of struct newscache
Just use struct nwsstr, it has the uid now.
This commit is contained in:
parent
b18f410e30
commit
832574b6de
1 changed files with 21 additions and 27 deletions
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue