< Previous by Date Date Index Next by Date >
< Previous in Thread Thread Index  

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