RE: [reSIProcate] bug in StatelessHandler::process() ?
Jason & Martin,
I didn't see a followup to know if this was found... I just
ran into it.
in DnsResult::lookup() if the address specified is all
numeric (ie,
no DNS required) the mType immediately transitions to
Available.
Unfortunately, there is no callback for the handler.
Patch:
--- DnsResult.cxx (revision 3288)
+++ DnsResult.cxx (working copy)
@@ -176,6 +176,12 @@
lookupNAPTR(); // for current target
}
}
+
+ // Handles case of numeric IP - no DNS required
+ if (mType == Available) {
+ mHandler->handle(this);
+ }
+
}
int
Jay
----- Original Message Follows -----
From: martin.van.den.berg@xxxxxxxxxxx
To: resiprocate-devel@xxxxxxxxxxxxxxxxxxx
Subject: RE: [reSIProcate] bug in
StatelessHandler::process() ?
Date: Mon, 2 Aug 2004 09:41:49 +0200
> The stateless proxy has probably undergone some bit rot.
> Can you run your test and post the output with the log
> level set at Log::Stack.
>
> e.g.
>
> /stateless-proxy -l cout -v STACK ...
> <..........>
>
>
>
>
> Ok, you can find the trace below:
>
> INFO | 20040802-093059 | proxy | RESIP:TRANSPORT | 1620 |
> udptransport.cxx:31 | Creating udp transport host=
> port=5060 ipv4=1 DEBUG | 20040802-093059 | proxy |
> RESIP:TRANSPORT | 1620 | transport.cxx:100 | Creating
> fd=744 V4/UDP DEBUG | 20040802-093059 | proxy |
> RESIP:TRANSPORT | 1620 | transport.cxx:108 | Binding to
> 0.0.0.0 INFO | 20040802-093059 | proxy | RESIP:TRANSPORT |
> 1620 | transportselector.cxx:142 | Adding transport: [ V4
> 0.0.0.0:5060 UDP connectionId=0 ]
> DEBUG | 20040802-093059 | proxy | RESIP:TRANSPORT | 1620 |
> transport.cxx:100 | Creating fd=728 V4/TCP
> DEBUG | 20040802-093059 | proxy | RESIP:TRANSPORT | 1620 |
> transport.cxx:108 | Binding to 0.0.0.0
> INFO | 20040802-093059 | proxy | RESIP:TRANSPORT | 1620 |
> transportselector.cxx:142 | Adding transport: [ V4
> 0.0.0.0:5060 TCP connectionId=0 ]
> DEBUG | 20040802-093254 | proxy | RESIP:TRANSPORT | 920 |
> transport.cxx:374 | incoming from: [ V4
> 130.139.45.174:1048 UDP received on: Transport: [ V4
> 0.0.0.0:5060 UDP connectionId=0 ] connectionId=0 ] STACK |
> 20040802-093254 | proxy | RESIP:TRANSPORT | 920 |
> transport.cxx:375 | INVITE sip:130.139.44.249 SIP/2.0
> To: <sip:130.139.44.249>
> From: "MvdBerg" <sip:118484C>
> ;tag=d423cdbd2f47469787566e318858166e Via: SIP/2.0/UDP
> 130.139.45.174:11802;received=130.139.45.174 Call-ID:
> 9180daf3359e4a8ca2dacc0ec4d539db@xxxxxxxxxxxxxx CSeq: 1
> INVITE Contact: <sip:130.139.45.174:11802>
> Max-Forwards: 70
> Content-Type: application/sdp
> User-Agent: RTC/1.2
> Content-Length: 289
>
>
> v=0
> o=- 0 0 IN IP4 130.139.45.174
> s=session
> c=IN IP4 130.139.45.174
> b=CT:1000
> t=0 0
> m=audio 37462 RTP/AVP 97 0 8 4 101
> a=rtpmap:97 red/8000
> a=rtpmap:0 PCMU/8000
> a=rtpmap:8 PCMA/8000
> a=rtpmap:4 G723/8000
> a=rtpmap:101 telephone-event/8000
> a=fmtp:101 0-16
> a=encryption:rejected
>
>
> DEBUG | 20040802-093254 | proxy | RESIP:TRANSACTION | 920
> | statelesshandler.cxx:46 | Processing sip from wire:
> SipReq: INVITE 130.139.44.249
> tid=afa6dee3e3a796a0fcb8b8dff67f15d4 cseq=INVITE / 1
> from(wire) DEBUG | 20040802-093254 | proxy | RESIP | 920 |
> sipstack.cxx:278 | RECV: SipReq: INVITE 130.139.44.249
> tid=afa6dee3e3a796a0fcb8b8dff67f15d4 cseq=INVITE / 1
> from(wire) INFO | 20040802-093254 | proxy | RESIP:TEST |
> 920 | statelessproxy.cxx:69 | stack1 got: SipReq: INVITE
> 130.139.44.249 tid=afa6dee3e3a796a0fcb8b8dff67f15d4
> cseq=INVITE / 1 from(wire) from user:
>
> DEBUG | 20040802-093254 | proxy | RESIP:TEST | 920 |
> statelessproxy.cxx:215 | proxy request :
> 1f2e032b42890145a9c31762263858a2 : SipReq: INVITE
> 130.139.44.249 tid=1f2e032b42890145a9c31762263858a2
> cseq=INVITE / 1 from(wire) DEBUG | 20040802-093254 | proxy
> | RESIP:TRANSACTION | 920 | statelesshandler.cxx:61 |
> Processing request from TU : SipReq: INVITE
> 130.139.44.249 tid=1f2e032b42890145a9c31762263858a2
> cseq=INVITE / 1 from(tu)
> DEBUG | 20040802-093254 | proxy | RESIP:DNS | 920 |
> dnsresult.cxx:116 | DnsResult::lookup
> sip:130.139.45.174:5070;protocol=UDP DEBUG |
> 20040802-093254 | proxy | RESIP:DNS | 920 |
> dnsresult.cxx:166 | Numeric result so return immediately:
> [ V4 130.139.45.174:5070 UDP connectionId=0 ]
> DEBUG | 20040802-093254 | proxy | RESIP:TRANSPORT | 920 |
> transport.cxx:374 | incoming from: [ V4
> 130.139.45.174:1048 UDP received on: Transport: [ V4
> 0.0.0.0:5060 UDP connectionId=0 ] connectionId=0 ] STACK |
> 20040802-093254 | proxy | RESIP:TRANSPORT | 920 |
> transport.cxx:375 | INVITE sip:130.139.44.249 SIP/2.0
> To: <sip:130.139.44.249>
> From: "MvdBerg" <sip:118484C>
> ;tag=d423cdbd2f47469787566e318858166e Via: SIP/2.0/UDP
> 130.139.45.174:11802;received=130.139.45.174 Call-ID:
> 9180daf3359e4a8ca2dacc0ec4d539db@xxxxxxxxxxxxxx CSeq: 1
> INVITE Contact: <sip:130.139.45.174:11802>
> Max-Forwards: 70
> Content-Type: application/sdp
> User-Agent: RTC/1.2
> Content-Length: 289
>
> <etc...>
>
>
> I've made a little change in StatelessHandler.cxx which
> makes it work. But I don't know if this is 100%
> correct...
>
> else // line 59
> {
> DebugLog (<< "Processing request from TU :
> " << msg->brief());
> StatelessMessage* stateless = new
> StatelessMessage(mController.mTransportSelector, sip);
> DnsResult*dnsr =
> mController.mTransportSelector.dnsResolve(sip, stateless);
> // Modification MvdB 2004-08-02: Added 5
> lines
> if (dnsr->available() ==
> DnsResult::Available )
> {
>
> mController.mTransportSelector.transmit(sip, dnsr->next()
> );
> }
> delete dnsr;
> // End Mod
> }
>
> Martin.
>
> _______________________________________________
> resiprocate-devel mailing list
> resiprocate-devel@xxxxxxxxxxxxxxxxxxx
>
https://list.sipfoundry.org/mailman/listinfo/resiprocate-devel