| | 179 | if (sig->SubSignal() == USER_STATUS) |
| | 180 | { |
| | 181 | if (sig->Argument() == 0) |
| | 182 | { |
| | 183 | if (conf->statusChange == GROUP_TYPE_NONE || |
| | 184 | (conf->statusChange == GROUP_TYPE_ONLINE_NOTIFY && !on)) |
| | 185 | ret = true; |
| | 186 | } |
| | 187 | else |
| | 188 | if (conf->logonLogoff == GROUP_TYPE_NONE || |
| | 189 | (conf->logonLogoff == GROUP_TYPE_ONLINE_NOTIFY && !on)) |
| | 190 | ret = true; |
| | 191 | } |
| | 192 | |
| | 193 | if (sig->SubSignal() == USER_EVENTS) |
| | 194 | { |
| | 195 | if (sig->Argument() < 0) |
| | 196 | ret = true; |
| | 197 | else |
| | 198 | if (sig->Argument() == 0) |
| | 199 | { |
| | 200 | if (conf->statusChange == GROUP_TYPE_NONE || |
| | 201 | (conf->statusChange == GROUP_TYPE_ONLINE_NOTIFY && !on)) |
| | 202 | ret = true; |
| | 203 | } |
| | 204 | else |
| | 205 | { |
| | 206 | if (conf->showMessage == GROUP_TYPE_NONE || |
| | 207 | (conf->showMessage == GROUP_TYPE_ONLINE_NOTIFY && !on && |
| | 208 | strcmp(sig->Id(), o->IdString()) != 0)) |
| | 209 | ret = true; |
| | 210 | } |
| | 211 | } |
| | 212 | |
| | 213 | if (ret) |
| | 214 | { |
| | 215 | gUserManager.DropOwner(o->PPID()); |
| | 216 | return true; |
| | 217 | } |
| | 218 | |