-
Notifications
You must be signed in to change notification settings - Fork 48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
VStarcam: EOF while expecting response to DESCRIBE CSeq 2 #45
Comments
In the capture you sent, I see this:
which is consistent with the error message you quoted. Maybe the camera just always drops the connection after sending an unauthorized response. This is discouraged but allowed, [1] and clients are supposed to handle it by retrying as described in RFC 2616 section 8.1.4:
Retina isn't doing this today—it hadn't come up until now—and fixing it might address this problem. I'd be interested to see any client talking successfully with this server, to know if they're indeed retrying with a fresh connection. I wonder also if the server is just dropping the connection after the unauthorized or if does this after every response. When using TCP, they must at least be keeping the connection open after the [1] doubly discouraged: servers SHOULD keep connections open even after an error, and they SHOULD send |
Checking in. Would it be possible to see a packet capture of any client talking successfully with this server? That would help me determine if it's worth investing the time right now in making Retina reopen the transport connection as I mentioned above. |
I'm away from this camera and don't know when I'll be able to get access again :( |
Maybe i can help with this issue? I have a Wansview Cam with the exact same error. What exactly do you need to debug this? |
Here is a PCAP Dump of the cam via ffplay. Maybe that helps |
@nsauter Interesting! There's only one TCP stream there. So my theory was off. Implementing the retry I mentioned above probably wouldn't help. @lattice0's original pcap with Retina looked like this:
vs the one you supplied with ffmpeg:
My new theory is that it doesn't like something about Retina's second
The order shouldn't matter. But this server may not be super standards-compliant. They're using the original RFC 2069 digest form, not the updated form from RFC 2617 (written in the year 1999). RFC 7616 (written in the year 2015) dropped RFC 2069 compatibility. So they released this camera with an obsolete standard... RFC 2069 section 2.4 gives an example with ffmpeg's ordering:
maybe they are expecting that. I can throw together a patched Retina with this order to see if that makes a difference. |
Let's see if this affects behavior with VStarcam: scottlamb/retina#45 (comment)
This uses a modified version of `http-auth` which swaps the `uri` and `nonce` parameters. Let's see if that helps...
@nsauter If you try out Retina's new |
Can you please tell me the correct test? Unfortunately i have never used the cli so i dont know what exactly should work and what not. So far i did try to execute |
I got help and managed to execute the corret command:
With that i recieved a video file without errors. |
Okay. That confirms the new theory. Now the question is if other servers require the former order. I think I'll make a new |
So.. @nsauter was using a build from my |
Tried a new Vstarcam camera that I haven't tried before and got:
thread 'retina_client_cam1' panicked at 'called
Result::unwrap()on an
Errvalue: RtspReadError { conn_ctx: ConnectionContext { local_addr: 172.17.0.2:57760, peer_addr: 192.168.1.140:10554, established_wall: WallTime(Timespec { sec: 1640306208, nsec: 801928570 }), established: Instant { tv_sec: 7103, tv_nsec: 209861352 } }, msg_ctx: RtspMessageContext { pos: 119, received_wall: WallTime(Timespec { sec: 1640306209, nsec: 106381244 }), received: Instant { tv_sec: 7103, tv_nsec: 514314058 } }, source: Custom { kind: UnexpectedEof, error: "EOF while expecting response to DESCRIBE CSeq 2" } }', /home/dev/orwell/liborwell/src/rtsp/retina_client.rs:132:77
capture sent in email
I have no idea what's happening but I remember we might have stumbled upon this before?
On the capture the camera basically closes connection once we receive the DESCRIBE. I think it's malformed
The text was updated successfully, but these errors were encountered: