"FAIL_WAIT",
"EXPIRED",
"NOREG",
+ "DOWN",
"TIMEOUT",
NULL
};
if (!strcasecmp(gname, "all")) {
for (gateway_ptr = profile->gateways; gateway_ptr; gateway_ptr = gateway_ptr->next) {
- gateway_ptr->retry = 0;
- gateway_ptr->state = REG_STATE_UNREGED;
+ if (gateway_ptr->state != REG_STATE_NOREG) {
+ gateway_ptr->retry = 0;
+ gateway_ptr->state = REG_STATE_UNREGED;
+ }
}
stream->write_function(stream, "+OK\n");
} else if ((gateway_ptr = sofia_reg_find_gateway(gname))) {
- gateway_ptr->retry = 0;
- gateway_ptr->state = REG_STATE_UNREGED;
- stream->write_function(stream, "+OK\n");
- sofia_reg_release_gateway(gateway_ptr);
+ if (gateway_ptr->state != REG_STATE_NOREG) {
+ gateway_ptr->retry = 0;
+ gateway_ptr->state = REG_STATE_UNREGED;
+ stream->write_function(stream, "+OK\n");
+ sofia_reg_release_gateway(gateway_ptr);
+ }
} else {
stream->write_function(stream, "Invalid gateway!\n");
}
if (!strcasecmp(gname, "all")) {
for (gateway_ptr = profile->gateways; gateway_ptr; gateway_ptr = gateway_ptr->next) {
- gateway_ptr->retry = 0;
- gateway_ptr->state = REG_STATE_UNREGISTER;
+ if (gateway_ptr->state != REG_STATE_NOREG) {
+ gateway_ptr->retry = 0;
+ gateway_ptr->state = REG_STATE_UNREGISTER;
+ }
}
stream->write_function(stream, "+OK\n");
} else if ((gateway_ptr = sofia_reg_find_gateway(gname))) {
- gateway_ptr->retry = 0;
- gateway_ptr->state = REG_STATE_UNREGISTER;
- stream->write_function(stream, "+OK\n");
- sofia_reg_release_gateway(gateway_ptr);
+ if (gateway_ptr->state != REG_STATE_NOREG) {
+ gateway_ptr->retry = 0;
+ gateway_ptr->state = REG_STATE_UNREGISTER;
+ stream->write_function(stream, "+OK\n");
+ sofia_reg_release_gateway(gateway_ptr);
+ }
} else {
stream->write_function(stream, "Invalid gateway!\n");
}