Curl_xfer_setup_send(data, FIRSTSOCKET);
}
else
- Curl_xfer_setup_recv(data, FIRSTSOCKET, -1, FALSE);
+ Curl_xfer_setup_recv(data, FIRSTSOCKET, -1);
*done = TRUE;
return CURLE_OK;
}
failf(data, "Failed sending DICT request");
goto error;
}
- Curl_xfer_setup_recv(data, FIRSTSOCKET, -1, FALSE);
+ Curl_xfer_setup_recv(data, FIRSTSOCKET, -1);
}
else if(curl_strnequal(path, DICT_DEFINE, sizeof(DICT_DEFINE)-1) ||
curl_strnequal(path, DICT_DEFINE2, sizeof(DICT_DEFINE2)-1) ||
failf(data, "Failed sending DICT request");
goto error;
}
- Curl_xfer_setup_recv(data, FIRSTSOCKET, -1, FALSE);
+ Curl_xfer_setup_recv(data, FIRSTSOCKET, -1);
}
else {
goto error;
}
- Curl_xfer_setup_recv(data, FIRSTSOCKET, -1, FALSE);
+ Curl_xfer_setup_recv(data, FIRSTSOCKET, -1);
}
}
}
else {
/* FTP download, shutdown, do not ignore errors */
- Curl_xfer_setup_recv(data, SECONDARYSOCKET,
- ftpc->retr_size_saved, FALSE);
+ Curl_xfer_setup_recv(data, SECONDARYSOCKET, ftpc->retr_size_saved);
Curl_xfer_set_shutdown(data, TRUE, FALSE);
}
if(result)
return result;
- Curl_xfer_setup_recv(data, FIRSTSOCKET, -1, FALSE);
+ Curl_xfer_setup_recv(data, FIRSTSOCKET, -1);
return CURLE_OK;
}
#endif /* CURL_DISABLE_GOPHER */
out:
if(!result) {
/* setup variables for the upcoming transfer */
- Curl_xfer_setup_sendrecv(data, FIRSTSOCKET, -1, TRUE);
+ Curl_xfer_setup_sendrecv(data, FIRSTSOCKET, -1);
}
return result;
}
else {
/* IMAP download */
data->req.maxdownload = size;
- Curl_xfer_setup_recv(data, FIRSTSOCKET, size, FALSE);
+ Curl_xfer_setup_recv(data, FIRSTSOCKET, size);
}
}
else {
}
lr->msgid = msgid;
- Curl_xfer_setup_recv(data, FIRSTSOCKET, -1, FALSE);
+ Curl_xfer_setup_recv(data, FIRSTSOCKET, -1);
*done = TRUE;
out:
if(pop3->transfer == PPTRANSFER_BODY) {
/* POP3 download */
- Curl_xfer_setup_recv(data, FIRSTSOCKET, -1, FALSE);
+ Curl_xfer_setup_recv(data, FIRSTSOCKET, -1);
if(pp->overflow) {
/* The recv buffer contains data that is actually body content so send
req->shutdown = FALSE;
req->bytecount = 0;
req->writebytecount = 0;
- req->header = TRUE; /* assume header */
+ req->header = FALSE;
req->headerline = 0;
req->headerbytecount = 0;
req->allheadercount = 0;
req->chunk = FALSE;
req->ignore_cl = FALSE;
req->upload_chunky = FALSE;
- req->getheader = FALSE;
req->no_body = data->set.opt_no_body;
req->authneg = FALSE;
req->shutdown = FALSE;
BIT(ignore_cl); /* ignore content-length */
BIT(upload_chunky); /* set TRUE if we are doing chunked transfer-encoding
on upload */
- BIT(getheader); /* TRUE if header parsing is wanted */
BIT(no_body); /* the response has no body */
BIT(authneg); /* TRUE when the auth phase has started, which means
that we are creating a request with an auth header,
const char *buf,
size_t blen,
bool is_eos);
+static CURLcode rtsp_rtp_write_resp_hd(struct Curl_easy *data,
+ const char *buf,
+ size_t blen,
+ bool is_eos);
static CURLcode rtsp_setup_connection(struct Curl_easy *data,
struct connectdata *conn);
ZERO_NULL, /* perform_pollset */
ZERO_NULL, /* disconnect */
rtsp_rtp_write_resp, /* write_resp */
- ZERO_NULL, /* write_resp_hd */
+ rtsp_rtp_write_resp_hd, /* write_resp_hd */
rtsp_conncheck, /* connection_check */
ZERO_NULL, /* attach connection */
Curl_http_follow, /* follow */
}
if(rtspreq == RTSPREQ_RECEIVE) {
- Curl_xfer_setup_recv(data, FIRSTSOCKET, -1, TRUE);
+ Curl_xfer_setup_recv(data, FIRSTSOCKET, -1);
goto out;
}
if(result)
goto out;
- Curl_xfer_setup_sendrecv(data, FIRSTSOCKET, -1, TRUE);
+ Curl_xfer_setup_sendrecv(data, FIRSTSOCKET, -1);
/* issue the request */
result = Curl_req_send(data, &req_buffer, httpversion);
return result;
}
+static CURLcode rtsp_rtp_write_resp_hd(struct Curl_easy *data,
+ const char *buf,
+ size_t blen,
+ bool is_eos)
+{
+ return rtsp_rtp_write_resp(data, buf, blen, is_eos);
+}
+
static
CURLcode rtp_client_write(struct Curl_easy *data, const char *ptr, size_t len)
{
struct Curl_easy *data, /* transfer */
int send_idx, /* sockindex to send on or -1 */
int recv_idx, /* sockindex to receive on or -1 */
- curl_off_t recv_size, /* how much to receive, -1 if unknown */
- bool getheader /* TRUE if header parsing is wanted */
+ curl_off_t recv_size /* how much to receive, -1 if unknown */
)
{
struct SingleRequest *k = &data->req;
conn->send_idx = send_idx;
conn->recv_idx = recv_idx;
- k->getheader = getheader;
/* without receiving, there should be not recv_size */
DEBUGASSERT((conn->recv_idx >= 0) || (recv_size == -1));
k->size = recv_size;
+ k->header = !!conn->handler->write_resp_hd;
/* by default, we do not shutdown at the end of the transfer */
k->shutdown = FALSE;
k->shutdown_err_ignore = FALSE;
/* The code sequence below is placed in this function just because all
necessary input is not always known in do_complete() as this function may
be called after that */
- if(!k->getheader) {
- k->header = FALSE;
- if(recv_size > 0)
- Curl_pgrsSetDownloadSize(data, recv_size);
- }
+ if(!k->header && (recv_size > 0))
+ Curl_pgrsSetDownloadSize(data, recv_size);
/* we want header and/or body, if neither then do not do this! */
- if(k->getheader || !data->req.no_body) {
+ if(conn->handler->write_resp_hd || !data->req.no_body) {
if(conn->recv_idx != -1)
k->keepon |= KEEP_RECV;
void Curl_xfer_setup_nop(struct Curl_easy *data)
{
- xfer_setup(data, -1, -1, -1, FALSE);
+ xfer_setup(data, -1, -1, -1);
}
void Curl_xfer_setup_sendrecv(struct Curl_easy *data,
int sockindex,
- curl_off_t recv_size,
- bool getheader)
+ curl_off_t recv_size)
{
- xfer_setup(data, sockindex, sockindex, recv_size, getheader);
+ xfer_setup(data, sockindex, sockindex, recv_size);
}
void Curl_xfer_setup_send(struct Curl_easy *data,
int sockindex)
{
- xfer_setup(data, sockindex, -1, -1, FALSE);
+ xfer_setup(data, sockindex, -1, -1);
}
void Curl_xfer_setup_recv(struct Curl_easy *data,
int sockindex,
- curl_off_t recv_size,
- bool getheader)
+ curl_off_t recv_size)
{
- xfer_setup(data, -1, sockindex, recv_size, getheader);
+ xfer_setup(data, -1, sockindex, recv_size);
}
void Curl_xfer_set_shutdown(struct Curl_easy *data,
int sockindex);
/* The transfer receives data on the given socket index, the
- * amount to receive (or -1 if unknown) and if headers are expected */
+ * amount to receive (or -1 if unknown). */
void Curl_xfer_setup_recv(struct Curl_easy *data,
int sockindex,
- curl_off_t recv_size,
- bool getheader);
+ curl_off_t recv_size);
/* *After* Curl_xfer_setup_xxx(), tell the transfer to shutdown the
* connection at the end. Let the transfer either fail or ignore any
/**
* The transfer will use socket 1 to send/recv. `recv_size` is
- * the amount to receive or -1 if unknown. `getheader` indicates
- * response header processing is expected.
+ * the amount to receive or -1 if unknown.
*/
void Curl_xfer_setup_sendrecv(struct Curl_easy *data,
int sockindex,
- curl_off_t recv_size,
- bool getheader);
+ curl_off_t recv_size);
/**
* Multi has set transfer to DONE. Last chance to trigger
myssh_to(data, sshc, SSH_STOP);
return rc;
}
- Curl_xfer_setup_recv(data, FIRSTSOCKET, data->req.size, FALSE);
+ Curl_xfer_setup_recv(data, FIRSTSOCKET, data->req.size);
/* not set by Curl_xfer_setup to preserve keepon bits */
data->conn->send_idx = 0;
/* download data */
bytecount = ssh_scp_request_get_size(sshc->scp_session);
data->req.maxdownload = (curl_off_t) bytecount;
- Curl_xfer_setup_recv(data, FIRSTSOCKET, bytecount, FALSE);
+ Curl_xfer_setup_recv(data, FIRSTSOCKET, bytecount);
/* not set by Curl_xfer_setup to preserve keepon bits */
conn->send_idx = 0;
myssh_state(data, sshc, SSH_STOP);
return CURLE_OK;
}
- Curl_xfer_setup_recv(data, FIRSTSOCKET, data->req.size, FALSE);
+ Curl_xfer_setup_recv(data, FIRSTSOCKET, data->req.size);
/* not set by Curl_xfer_setup to preserve keepon bits */
data->conn->send_idx = 0;
/* download data */
bytecount = (curl_off_t)sb.st_size;
data->req.maxdownload = (curl_off_t)sb.st_size;
- Curl_xfer_setup_recv(data, FIRSTSOCKET, bytecount, FALSE);
+ Curl_xfer_setup_recv(data, FIRSTSOCKET, bytecount);
/* not set by Curl_xfer_setup to preserve keepon bits */
data->conn->send_idx = 0;
wssh_state(data, sshc, SSH_STOP);
break;
}
- Curl_xfer_setup_recv(data, FIRSTSOCKET, data->req.size, FALSE);
+ Curl_xfer_setup_recv(data, FIRSTSOCKET, data->req.size);
/* not set by Curl_xfer_setup to preserve keepon bits */
conn->send_idx = 0;