Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
opt
cpr
opt
curl
src
tool_cb_rea.c
Go to the documentation of this file.
1
/***************************************************************************
2
* _ _ ____ _
3
* Project ___| | | | _ \| |
4
* / __| | | | |_) | |
5
* | (__| |_| | _ <| |___
6
* \___|\___/|_| \_\_____|
7
*
8
* Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
9
*
10
* This software is licensed as described in the file COPYING, which
11
* you should have received as part of this distribution. The terms
12
* are also available at https://curl.haxx.se/docs/copyright.html.
13
*
14
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
15
* copies of the Software, and permit persons to whom the Software is
16
* furnished to do so, under the terms of the COPYING file.
17
*
18
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
19
* KIND, either express or implied.
20
*
21
***************************************************************************/
22
#include "
tool_setup.h
"
23
24
#define ENABLE_CURLX_PRINTF
25
/* use our own printf() functions */
26
#include "
curlx.h
"
27
28
#include "
tool_cfgable.h
"
29
#include "
tool_cb_rea.h
"
30
31
#include "
memdebug.h
"
/* keep this as LAST include */
32
33
/*
34
** callback for CURLOPT_READFUNCTION
35
*/
36
37
size_t
tool_read_cb
(
void
*
buffer
,
size_t
sz,
size_t
nmemb,
void
*
userdata
)
38
{
39
ssize_t
rc
;
40
struct
InStruct
*in = userdata;
41
42
rc = read(in->
fd
, buffer, sz*nmemb);
43
if
(rc < 0) {
44
if
(errno ==
EAGAIN
) {
45
errno = 0;
46
in->
config
->
readbusy
=
TRUE
;
47
return
CURL_READFUNC_PAUSE
;
48
}
49
/* since size_t is unsigned we can't return negative values fine */
50
rc = 0;
51
}
52
in->
config
->
readbusy
=
FALSE
;
53
return
(
size_t
)
rc
;
54
}
55
tool_cfgable.h
tool_read_cb
size_t tool_read_cb(void *buffer, size_t sz, size_t nmemb, void *userdata)
Definition:
tool_cb_rea.c:37
InStruct::config
struct OperationConfig * config
Definition:
tool_sdecls.h:93
tool_cb_rea.h
buffer
char buffer[]
Definition:
unit1308.c:48
curlx.h
InStruct::fd
int fd
Definition:
tool_sdecls.h:92
FALSE
#define FALSE
Definition:
curl_setup_once.h:347
rc
UNITTEST_START int rc
Definition:
unit1301.c:31
EAGAIN
#define EAGAIN
Definition:
config-win32ce.h:447
userdata
Definition:
lib506.c:35
ssize_t
#define ssize_t
Definition:
config-win32.h:382
CURL_READFUNC_PAUSE
#define CURL_READFUNC_PAUSE
Definition:
curl.h:353
InStruct
Definition:
tool_sdecls.h:91
TRUE
#define TRUE
Definition:
multi-debugcallback.c:38
memdebug.h
tool_setup.h
OperationConfig::readbusy
bool readbusy
Definition:
tool_cfgable.h:145
rc_tagdetect_client
Author(s): Monika Florek-Jasinska
, Raphael Schaller
autogenerated on Sat Feb 13 2021 03:42:16