rtsp_client: allow parameter "kd" to be NULL
When the caller isn't interested in the values.
This commit is contained in:
parent
2525d32e17
commit
9209ccfa40
@ -756,7 +756,7 @@ raop_output_cancel(void *data)
|
|||||||
kd.data = buf;
|
kd.data = buf;
|
||||||
kd.next = NULL;
|
kd.next = NULL;
|
||||||
exec_request(rd->rtspcl, "FLUSH", NULL, NULL, 1,
|
exec_request(rd->rtspcl, "FLUSH", NULL, NULL, 1,
|
||||||
&kd, &(rd->rtspcl->kd), NULL);
|
&kd, NULL, NULL);
|
||||||
g_mutex_unlock(rd->control_mutex);
|
g_mutex_unlock(rd->control_mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -815,7 +815,7 @@ raop_output_close(void *data)
|
|||||||
|
|
||||||
g_mutex_lock(rd->control_mutex);
|
g_mutex_lock(rd->control_mutex);
|
||||||
exec_request(rd->rtspcl, "TEARDOWN", NULL, NULL, 0,
|
exec_request(rd->rtspcl, "TEARDOWN", NULL, NULL, 0,
|
||||||
NULL, &rd->rtspcl->kd, NULL);
|
NULL, NULL, NULL);
|
||||||
g_mutex_unlock(rd->control_mutex);
|
g_mutex_unlock(rd->control_mutex);
|
||||||
|
|
||||||
rd->started = 0;
|
rd->started = 0;
|
||||||
|
@ -265,7 +265,6 @@ void
|
|||||||
rtspcl_close(struct rtspcl_data *rtspcld)
|
rtspcl_close(struct rtspcl_data *rtspcld)
|
||||||
{
|
{
|
||||||
rtspcl_disconnect(rtspcld);
|
rtspcl_disconnect(rtspcld);
|
||||||
free_kd(rtspcld->kd);
|
|
||||||
rtspcl_remove_all_exthds(rtspcld);
|
rtspcl_remove_all_exthds(rtspcld);
|
||||||
g_free(rtspcld->session);
|
g_free(rtspcld->session);
|
||||||
g_free(rtspcld);
|
g_free(rtspcld);
|
||||||
@ -350,7 +349,6 @@ exec_request(struct rtspcl_data *rtspcld, const char *cmd,
|
|||||||
const char delimiters[] = " ";
|
const char delimiters[] = " ";
|
||||||
char *token, *dp;
|
char *token, *dp;
|
||||||
int dsize = 0,rval;
|
int dsize = 0,rval;
|
||||||
struct key_data *cur_kd = *kd;
|
|
||||||
int timeout = 5000; // msec unit
|
int timeout = 5000; // msec unit
|
||||||
|
|
||||||
fd_set rdfds;
|
fd_set rdfds;
|
||||||
@ -437,6 +435,15 @@ exec_request(struct rtspcl_data *rtspcld, const char *cmd,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* if the caller isn't interested in response headers, put
|
||||||
|
them on the trash, which is freed before returning from
|
||||||
|
this function */
|
||||||
|
struct key_data *trash = NULL;
|
||||||
|
if (kd == NULL)
|
||||||
|
kd = &trash;
|
||||||
|
|
||||||
|
struct key_data *cur_kd = *kd;
|
||||||
|
|
||||||
struct key_data *new_kd = NULL;
|
struct key_data *new_kd = NULL;
|
||||||
while (read_line(rtspcld->fd, line, sizeof(line), timeout, 0) > 0) {
|
while (read_line(rtspcld->fd, line, sizeof(line), timeout, 0) > 0) {
|
||||||
timeout = 1000; // once it started, it shouldn't take a long time
|
timeout = 1000; // once it started, it shouldn't take a long time
|
||||||
@ -473,6 +480,9 @@ exec_request(struct rtspcl_data *rtspcld, const char *cmd,
|
|||||||
cur_kd = new_kd;
|
cur_kd = new_kd;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
free_kd(trash);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -481,7 +491,7 @@ rtspcl_set_parameter(struct rtspcl_data *rtspcld, const char *parameter,
|
|||||||
GError **error_r)
|
GError **error_r)
|
||||||
{
|
{
|
||||||
return exec_request(rtspcld, "SET_PARAMETER", "text/parameters",
|
return exec_request(rtspcld, "SET_PARAMETER", "text/parameters",
|
||||||
parameter, 1, NULL, &rtspcld->kd, error_r);
|
parameter, 1, NULL, NULL, error_r);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -495,7 +505,7 @@ rtspcl_announce_sdp(struct rtspcl_data *rtspcld, const char *sdp,
|
|||||||
GError **error_r)
|
GError **error_r)
|
||||||
{
|
{
|
||||||
return exec_request(rtspcld, "ANNOUNCE", "application/sdp", sdp, 1,
|
return exec_request(rtspcld, "ANNOUNCE", "application/sdp", sdp, 1,
|
||||||
NULL, &rtspcld->kd, error_r);
|
NULL, NULL, error_r);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
@ -598,7 +608,7 @@ rtspcl_record(struct rtspcl_data *rtspcld,
|
|||||||
range.next = &rtp;
|
range.next = &rtp;
|
||||||
|
|
||||||
return exec_request(rtspcld, "RECORD", NULL, NULL, 1, &range,
|
return exec_request(rtspcld, "RECORD", NULL, NULL, 1, &range,
|
||||||
&rtspcld->kd, error_r);
|
NULL, error_r);
|
||||||
}
|
}
|
||||||
|
|
||||||
char *
|
char *
|
||||||
|
@ -45,7 +45,6 @@ struct rtspcl_data {
|
|||||||
int fd;
|
int fd;
|
||||||
char url[128];
|
char url[128];
|
||||||
int cseq;
|
int cseq;
|
||||||
struct key_data *kd;
|
|
||||||
struct key_data *exthds;
|
struct key_data *exthds;
|
||||||
char *session;
|
char *session;
|
||||||
char *transport;
|
char *transport;
|
||||||
|
Loading…
Reference in New Issue
Block a user