Actually parse the auth headers in RTSP
Originally committed as revision 22677 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
aa8bf2fb80
commit
2626308abb
@ -2756,7 +2756,7 @@ static int rtsp_parse_request(HTTPContext *c)
|
|||||||
len = sizeof(line) - 1;
|
len = sizeof(line) - 1;
|
||||||
memcpy(line, p, len);
|
memcpy(line, p, len);
|
||||||
line[len] = '\0';
|
line[len] = '\0';
|
||||||
ff_rtsp_parse_line(header, line);
|
ff_rtsp_parse_line(header, line, NULL);
|
||||||
p = p1 + 1;
|
p = p1 + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -838,7 +838,8 @@ static void rtsp_parse_transport(RTSPMessageHeader *reply, const char *p)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ff_rtsp_parse_line(RTSPMessageHeader *reply, const char *buf)
|
void ff_rtsp_parse_line(RTSPMessageHeader *reply, const char *buf,
|
||||||
|
HTTPAuthState *auth_state)
|
||||||
{
|
{
|
||||||
const char *p;
|
const char *p;
|
||||||
|
|
||||||
@ -871,6 +872,12 @@ void ff_rtsp_parse_line(RTSPMessageHeader *reply, const char *buf)
|
|||||||
} else if (av_stristart(p, "Location:", &p)) {
|
} else if (av_stristart(p, "Location:", &p)) {
|
||||||
skip_spaces(&p);
|
skip_spaces(&p);
|
||||||
av_strlcpy(reply->location, p , sizeof(reply->location));
|
av_strlcpy(reply->location, p , sizeof(reply->location));
|
||||||
|
} else if (av_stristart(p, "WWW-Authenticate:", &p) && auth_state) {
|
||||||
|
skip_spaces(&p);
|
||||||
|
ff_http_auth_handle_header(auth_state, "WWW-Authenticate", p);
|
||||||
|
} else if (av_stristart(p, "Authentication-Info:", &p) && auth_state) {
|
||||||
|
skip_spaces(&p);
|
||||||
|
ff_http_auth_handle_header(auth_state, "Authentication-Info", p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -951,7 +958,7 @@ int ff_rtsp_read_reply(AVFormatContext *s, RTSPMessageHeader *reply,
|
|||||||
get_word(buf1, sizeof(buf1), &p);
|
get_word(buf1, sizeof(buf1), &p);
|
||||||
reply->status_code = atoi(buf1);
|
reply->status_code = atoi(buf1);
|
||||||
} else {
|
} else {
|
||||||
ff_rtsp_parse_line(reply, p);
|
ff_rtsp_parse_line(reply, p, &rt->auth_state);
|
||||||
av_strlcat(rt->last_reply, p, sizeof(rt->last_reply));
|
av_strlcat(rt->last_reply, p, sizeof(rt->last_reply));
|
||||||
av_strlcat(rt->last_reply, "\n", sizeof(rt->last_reply));
|
av_strlcat(rt->last_reply, "\n", sizeof(rt->last_reply));
|
||||||
}
|
}
|
||||||
|
@ -322,7 +322,8 @@ typedef struct RTSPStream {
|
|||||||
//@}
|
//@}
|
||||||
} RTSPStream;
|
} RTSPStream;
|
||||||
|
|
||||||
void ff_rtsp_parse_line(RTSPMessageHeader *reply, const char *buf);
|
void ff_rtsp_parse_line(RTSPMessageHeader *reply, const char *buf,
|
||||||
|
HTTPAuthState *auth_state);
|
||||||
|
|
||||||
#if LIBAVFORMAT_VERSION_INT < (53 << 16)
|
#if LIBAVFORMAT_VERSION_INT < (53 << 16)
|
||||||
extern int rtsp_default_protocols;
|
extern int rtsp_default_protocols;
|
||||||
|
Loading…
Reference in New Issue
Block a user