summaryrefslogtreecommitdiffstats
path: root/dss1.cpp
diff options
context:
space:
mode:
authorSuper User2008-05-12 13:12:28 +0200
committerSuper User2008-05-12 13:12:28 +0200
commit7946b6b8829d7f905bb31f5fee27936b9fc2790a (patch)
tree6bbaf706710d3c7b19f04e3e16a47b3eb1c877b0 /dss1.cpp
parentfixed multiplexing bug (diff)
downloadlcr-7946b6b8829d7f905bb31f5fee27936b9fc2790a.tar.gz
lcr-7946b6b8829d7f905bb31f5fee27936b9fc2790a.tar.xz
lcr-7946b6b8829d7f905bb31f5fee27936b9fc2790a.zip
nt-mode multiplexing debugged
-> tested in all variations (connect/reject before/after T312) modified: dss1.cpp
Diffstat (limited to 'dss1.cpp')
-rw-r--r--dss1.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/dss1.cpp b/dss1.cpp
index 384ac2f..3c9afa5 100644
--- a/dss1.cpp
+++ b/dss1.cpp
@@ -2203,7 +2203,7 @@ void Pdss1::message_isdn(unsigned int cmd, unsigned int pid, struct l3_msg *l3m)
case MT_SETUP_ACKNOWLEDGE:
if (p_state != PORT_STATE_OUT_SETUP)
{
- PERROR("Pdss1(%s) received setup_acknowledge, but we are not in outgoing setup state, IGNORING.\n", p_name);
+ PDEBUG(DEBUG_ISDN, "Pdss1(%s) received setup_acknowledge, but we are not in outgoing setup state, IGNORING.\n", p_name);
break;
}
setup_acknowledge_ind(cmd, pid, l3m);
@@ -2213,7 +2213,7 @@ void Pdss1::message_isdn(unsigned int cmd, unsigned int pid, struct l3_msg *l3m)
if (p_state != PORT_STATE_OUT_SETUP
&& p_state != PORT_STATE_OUT_OVERLAP)
{
- PERROR("Pdss1(%s) received proceeding, but we are not in outgoing setup OR overlap state, IGNORING.\n", p_name);
+ PDEBUG(DEBUG_ISDN, "Pdss1(%s) received proceeding, but we are not in outgoing setup OR overlap state, IGNORING.\n", p_name);
break;
}
proceeding_ind(cmd, pid, l3m);
@@ -2224,7 +2224,7 @@ void Pdss1::message_isdn(unsigned int cmd, unsigned int pid, struct l3_msg *l3m)
&& p_state != PORT_STATE_OUT_OVERLAP
&& p_state != PORT_STATE_OUT_PROCEEDING)
{
- PERROR("Pdss1(%s) received alerting, but we are not in outgoing setup OR overlap OR proceeding state, IGNORING.\n", p_name);
+ PDEBUG(DEBUG_ISDN, "Pdss1(%s) received alerting, but we are not in outgoing setup OR overlap OR proceeding state, IGNORING.\n", p_name);
break;
}
alerting_ind(cmd, pid, l3m);
@@ -2236,7 +2236,7 @@ void Pdss1::message_isdn(unsigned int cmd, unsigned int pid, struct l3_msg *l3m)
&& p_state != PORT_STATE_OUT_PROCEEDING
&& p_state != PORT_STATE_OUT_ALERTING)
{
- PERROR("Pdss1(%s) received alerting, but we are not in outgoing setup OR overlap OR proceeding OR ALERTING state, IGNORING.\n", p_name);
+ PDEBUG(DEBUG_ISDN, "Pdss1(%s) received alerting, but we are not in outgoing setup OR overlap OR proceeding OR ALERTING state, IGNORING.\n", p_name);
break;
}
connect_ind(cmd, pid, l3m);
@@ -4107,9 +4107,15 @@ int stack2manager(struct mISDNport *mISDNport, unsigned int cmd, unsigned int pi
if (cmd == MT_RELEASE_COMPLETE)
return(0);
}
- /* if process id and layer 3 id matches */
-// if (pid == pdss1->p_m_d_l3id)
- pdss1->message_isdn(cmd, pid, l3m);
+ /* if we have child pid and got different child pid message, ignore */
+ if (mISDNport->ntmode
+ && (pid & MISDN_PID_CRTYPE_MASK) != MISDN_PID_MASTER
+ && (pdss1->p_m_d_l3id & MISDN_PID_CRTYPE_MASK) != MISDN_PID_MASTER
+ && pid != pdss1->p_m_d_l3id)
+ return(0);
+
+ /* process message */
+ pdss1->message_isdn(cmd, pid, l3m);
return(0);
}