RE: A DLR question
"Oded Arbel" <[email protected]>
| Newsgroups | gmane.comp.mobile.kannel.devel |
|---|---|
| Message-ID | <[email protected]> |
I always forget to attach the files. sorry again. sorry about the typo too. Oded Arbel m-Wise Inc. [email protected] -- Today's solutions are tomorrow's problems. -- Bruce Sterling at the American Center for Design ``Living Surfaces'' Conference, San Francisco, October 1994 > -----Original Message----- > From: Oded Arbel > Sent: Tuesday, February 26, 2002 10:54 AM > To: 'Andreas Fink' > Cc: Kannel-devel (E-mail) > Subject: RE: A DLR question > > > > Hi Andreas. > > About the DLRs - it's really bothering me, so I would > appreciate it if you could please notify me of your findings. > I still think that all DLRs should be handled by dlr.c - > though I admit that doing dlr_add() and then dlr_find() right > on top of that is not nice. maybe we should have a > dlr_create(), or have dlr_add() also generate a new Msg* . > > in the mean time, I submit my patch against dlr.c (don't > remember if I've done it already), and I hope you will > consider it for CVS.
dlr.patch
(application/octet-stream, 1019 B)
--- gw/dlr.c Fri Jan 4 14:18:32 2002
+++ gw/dlr.c Tue Feb 26 10:40:59 2002
@@ -308,9 +308,12 @@
{
debug("dlr.dlr",0,"ignoring DLR message because of mask");
}
-
- if((typ & DLR_BUFFERED) &&
- ((dlr_mask & DLR_SUCCESS) || (dlr_mask & DLR_FAIL)))
+
+ if (
+ ( (typ & DLR_SMSC_SUCCESS) && (dlr_mask & (DLR_SUCCESS | DLR_BUFFERED | DLR_FAIL)) )
+ ||
+ ( (typ & DLR_BUFFERED) && (dlr_mask & (DLR_SUCCESS | DLR_FAIL)) )
+ )
{
debug("dlr.mysql",0,"dlr not deleted because we wait on more reports");
}
@@ -384,8 +387,11 @@
octstr_destroy(text);
msg=NULL;
}
- if ((typ & DLR_BUFFERED) &&
- ((dlr_mask & DLR_SUCCESS) || (dlr_mask & DLR_FAIL))) {
+ if (
+ ( (typ & DLR_SMSC_SUCCESS) && (dlr_mask & (DLR_SUCCESS | DLR_BUFFERED | DLR_FAIL)) )
+ ||
+ ( (typ & DLR_BUFFERED) && (dlr_mask & (DLR_SUCCESS | DLR_FAIL)) )
+ )
info(0,"dlr not destroyed, still waiting for other delivery report");
} else {
list_delete(dlr_waiting_list,i,1);