--- modules/registrar/reg_mod.c 2003/03/21 13:37:50 1.1 +++ modules/registrar/reg_mod.c 2003/03/21 13:39:05 @@ -64,18 +64,21 @@ "registrar", (char*[]) { "save", + "save_noreply", "lookup" }, (cmd_function[]) { save, + save_noreply, lookup }, - (int[]){1, 1}, + (int[]){1, 1, 1}, (fixup_function[]) { domain_fixup, + domain_fixup, domain_fixup }, - 2, + 3, (char*[]) { /* Module parameter names */ "default_expires", --- modules/registrar/save.c 2003/03/21 13:34:00 1.1 +++ modules/registrar/save.c 2003/03/21 13:37:00 @@ -309,11 +309,20 @@ return 0; } +int save(struct sip_msg* _m, char* _t, char* _s) +{ + return save_real(_m, _t, _s, 1); +} + +int save_noreply(struct sip_msg* _m, char* _t, char* _s) +{ + return save_real(_m, _t, _s, 0); +} /* * Process REGISTER request and save it's contacts */ -int save(struct sip_msg* _m, char* _t, char* _s) +int save_real(struct sip_msg* _m, char* _t, char* _s, int doreply) { contact_t* c; int st; @@ -349,10 +358,10 @@ if (contacts(_m, c, (udomain_t*)_t, &user) < 0) goto error; } - if (send_reply(_m) < 0) return -1; + if (doreply && send_reply(_m) < 0) return -1; else return 1; error: - send_reply(_m); + if (doreply) send_reply(_m); return 0; } --- modules/registrar/save.h 2003/03/21 13:37:14 1.1 +++ modules/registrar/save.h 2003/03/21 13:37:40 @@ -39,7 +39,9 @@ /* * Process REGISTER request and save it's contacts */ +int save_real(struct sip_msg* _m, char* _t, char* _s, int); int save(struct sip_msg* _m, char* _t, char* _s); +int save_noreply(struct sip_msg* _m, char* _t, char* _s); #endif /* SAVE_H */