73 |
|
return 0; |
74 |
|
} |
75 |
|
|
76 |
< |
if ((CurrentTime - source_p->localClient->last_away) < ConfigFileEntry.pace_wait) |
76 |
> |
if ((source_p->localClient->away.last_attempt + ConfigFileEntry.away_time) < CurrentTime) |
77 |
> |
source_p->localClient->away.count = 0; |
78 |
> |
|
79 |
> |
if (source_p->localClient->away.count > ConfigFileEntry.away_count) |
80 |
|
{ |
81 |
< |
sendto_one_numeric(source_p, &me, RPL_LOAD2HI); |
81 |
> |
sendto_one_numeric(source_p, &me, ERR_TOOMANYAWAY); |
82 |
|
return 0; |
83 |
|
} |
84 |
|
|
85 |
< |
source_p->localClient->last_away = CurrentTime; |
86 |
< |
sendto_one_numeric(source_p, &me, RPL_NOWAWAY); |
84 |
< |
|
85 |
< |
if (!strncmp(source_p->away, parv[1], sizeof(source_p->away) - 1)) |
86 |
< |
return 0; |
85 |
> |
source_p->localClient->away.last_attempt = CurrentTime; |
86 |
> |
source_p->localClient->away.count++; |
87 |
|
|
88 |
|
strlcpy(source_p->away, parv[1], sizeof(source_p->away)); |
89 |
|
|
90 |
+ |
sendto_one_numeric(source_p, &me, RPL_NOWAWAY); |
91 |
|
sendto_common_channels_local(source_p, 1, CAP_AWAY_NOTIFY, ":%s!%s@%s AWAY :%s", |
92 |
|
source_p->name, source_p->username, |
93 |
|
source_p->host, source_p->away); |
127 |
|
return 0; |
128 |
|
} |
129 |
|
|
129 |
– |
if (!strncmp(source_p->away, parv[1], sizeof(source_p->away) - 1)) |
130 |
– |
return 0; |
131 |
– |
|
130 |
|
strlcpy(source_p->away, parv[1], sizeof(source_p->away)); |
131 |
|
|
132 |
|
sendto_common_channels_local(source_p, 1, CAP_AWAY_NOTIFY, ":%s!%s@%s AWAY :%s", |