projects
/
platform
/
upstream
/
curl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Imported Upstream version 7.50.2
[platform/upstream/curl.git]
/
lib
/
rtsp.c
diff --git
a/lib/rtsp.c
b/lib/rtsp.c
index
24bf801
..
ed3fd64
100644
(file)
--- a/
lib/rtsp.c
+++ b/
lib/rtsp.c
@@
-5,7
+5,7
@@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 201
5
, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 201
6
, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@
-36,9
+36,8
@@
#include "rawstr.h"
#include "select.h"
#include "connect.h"
#include "rawstr.h"
#include "select.h"
#include "connect.h"
+/* The last 3 #include files should be in this order */
#include "curl_printf.h"
#include "curl_printf.h"
-
-/* The last #include files should be: */
#include "curl_memory.h"
#include "memdebug.h"
#include "curl_memory.h"
#include "memdebug.h"
@@
-74,7
+73,7
@@
static int rtsp_getsock_do(struct connectdata *conn,
* data is parsed and k->str is moved up
* readmore: whether or not the RTP parser needs more data right away
*/
* data is parsed and k->str is moved up
* readmore: whether or not the RTP parser needs more data right away
*/
-static CURLcode rtsp_rtp_readwrite(struct
SessionHandle
*data,
+static CURLcode rtsp_rtp_readwrite(struct
Curl_easy
*data,
struct connectdata *conn,
ssize_t *nread,
bool *readmore);
struct connectdata *conn,
ssize_t *nread,
bool *readmore);
@@
-159,7
+158,7
@@
bool Curl_rtsp_connisdead(struct connectdata *check)
}
else if((sval & CURL_CSELECT_IN) && check->data) {
/* readable with no error. could be closed or could be alive but we can
}
else if((sval & CURL_CSELECT_IN) && check->data) {
/* readable with no error. could be closed or could be alive but we can
- only check if we have a proper
SessionHandle
for the connection */
+ only check if we have a proper
Curl_easy
for the connection */
curl_socket_t connectinfo = Curl_getconnectinfo(check->data, &check);
if(connectinfo != CURL_SOCKET_BAD)
ret_val = FALSE;
curl_socket_t connectinfo = Curl_getconnectinfo(check->data, &check);
if(connectinfo != CURL_SOCKET_BAD)
ret_val = FALSE;
@@
-171,7
+170,7
@@
bool Curl_rtsp_connisdead(struct connectdata *check)
static CURLcode rtsp_connect(struct connectdata *conn, bool *done)
{
CURLcode httpStatus;
static CURLcode rtsp_connect(struct connectdata *conn, bool *done)
{
CURLcode httpStatus;
- struct
SessionHandle
*data = conn->data;
+ struct
Curl_easy
*data = conn->data;
httpStatus = Curl_http_connect(conn, done);
httpStatus = Curl_http_connect(conn, done);
@@
-197,7
+196,7
@@
static CURLcode rtsp_disconnect(struct connectdata *conn, bool dead)
static CURLcode rtsp_done(struct connectdata *conn,
CURLcode status, bool premature)
{
static CURLcode rtsp_done(struct connectdata *conn,
CURLcode status, bool premature)
{
- struct
SessionHandle
*data = conn->data;
+ struct
Curl_easy
*data = conn->data;
struct RTSP *rtsp = data->req.protop;
CURLcode httpStatus;
long CSeq_sent;
struct RTSP *rtsp = data->req.protop;
CURLcode httpStatus;
long CSeq_sent;
@@
-231,7
+230,7
@@
static CURLcode rtsp_done(struct connectdata *conn,
static CURLcode rtsp_do(struct connectdata *conn, bool *done)
{
static CURLcode rtsp_do(struct connectdata *conn, bool *done)
{
- struct
SessionHandle
*data = conn->data;
+ struct
Curl_easy
*data = conn->data;
CURLcode result=CURLE_OK;
Curl_RtspReq rtspreq = data->set.rtspreq;
struct RTSP *rtsp = data->req.protop;
CURLcode result=CURLE_OK;
Curl_RtspReq rtspreq = data->set.rtspreq;
struct RTSP *rtsp = data->req.protop;
@@
-601,7
+600,7
@@
static CURLcode rtsp_do(struct connectdata *conn, bool *done)
}
}
-static CURLcode rtsp_rtp_readwrite(struct
SessionHandle
*data,
+static CURLcode rtsp_rtp_readwrite(struct
Curl_easy
*data,
struct connectdata *conn,
ssize_t *nread,
bool *readmore) {
struct connectdata *conn,
ssize_t *nread,
bool *readmore) {
@@
-732,7
+731,7
@@
static CURLcode rtsp_rtp_readwrite(struct SessionHandle *data,
static
CURLcode rtp_client_write(struct connectdata *conn, char *ptr, size_t len)
{
static
CURLcode rtp_client_write(struct connectdata *conn, char *ptr, size_t len)
{
- struct
SessionHandle
*data = conn->data;
+ struct
Curl_easy
*data = conn->data;
size_t wrote;
curl_write_callback writeit;
size_t wrote;
curl_write_callback writeit;
@@
-760,7
+759,7
@@
CURLcode rtp_client_write(struct connectdata *conn, char *ptr, size_t len)
CURLcode Curl_rtsp_parseheader(struct connectdata *conn,
char *header)
{
CURLcode Curl_rtsp_parseheader(struct connectdata *conn,
char *header)
{
- struct
SessionHandle
*data = conn->data;
+ struct
Curl_easy
*data = conn->data;
long CSeq = 0;
if(checkprefix("CSeq:", header)) {
long CSeq = 0;
if(checkprefix("CSeq:", header)) {
@@
-797,19
+796,15
@@
CURLcode Curl_rtsp_parseheader(struct connectdata *conn,
}
}
else {
}
}
else {
- /* If the Session ID is not set, and we find it in a response, then
- set it */
-
- /* The session ID can be an alphanumeric or a 'safe' character
+ /* If the Session ID is not set, and we find it in a response, then set
+ * it.
*
*
- * RFC 2326 15.1 Base Syntax:
- * safe = "\$" | "-" | "_" | "." | "+"
- * */
+ * Allow any non whitespace content, up to the field seperator or end of
+ * line. RFC 2326 isn't 100% clear on the session ID and for example
+ * gstreamer does url-encoded session ID's not covered by the standard.
+ */
char *end = start;
char *end = start;
- while(*end &&
- (ISALNUM(*end) || *end == '-' || *end == '_' || *end == '.' ||
- *end == '+' ||
- (*end == '\\' && *(end + 1) && *(end + 1) == '$' && (++end, 1))))
+ while(*end && *end != ';' && !ISSPACE(*end))
end++;
/* Copy the id substring into a new buffer */
end++;
/* Copy the id substring into a new buffer */