Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
NE_SET_REQUEST_BODY_(3)        neon API reference	 NE_SET_REQUEST_BODY_(3)

NAME
     ne_set_request_body_buffer,	ne_set_request_body_fd,       ne_set_re-
     quest_body_provider - include a message body with a request

SYNOPSIS
     #include <ne_request.h>

     void      ne_set_request_body_buffer(ne_request *req,	const char *buf,
				     size_t count);

     int    ne_set_request_body_fd(ne_request *req,    int fd,	 ne_off_t begin,
				ne_off_t length);

     typedef ssize_t (*ne_provide_body)(void *userdata,  char *data,  size_t bu-
					flen);

     int  ne_set_request_body_provider(ne_request *req, ne_off_t length, ne_pro-
				      vide_body provider, void *userdata);

DESCRIPTION
     The ne_set_request_body_buffer  function  specifies  that	a  message  body
     should be included with the body, which is stored in the count bytes buffer
     buf.

     The  ne_set_request_body_fd  function can be used to include a message body
     with a request which is read from a file descriptor. The body is read  from
     the  file	descriptor  fd,  which must be a associated with a seekable file
     (not a pipe, socket, or FIFO).  count bytes are read, beginning  at  offset
     begin  (hence, passing begin as zero means the body is read from the begin-
     ning of the file).

     For both above functions, the source of the request body must survive until
     the request has been  dispatched;	neither  the  memory  buffer  passed  to
     ne_set_request_body_buffer  nor  the  file  descriptor passed to ne_set_re-
     quest_body_fd are copied internally.

     The ne_set_request_body_provider function can be used to include a  message
     body  with  a  request  which  is provided by a callback function. The body
     length passed in the length paramater must be positive, or if a chunked re-
     quest body is required, as covered below, -1 can be used.

     Before sending the body, the callback is invoked once with the buflen para-
     meter as 0. The body is then read by invoking the callback repeatedly until
     it returns 0 indicating the end-of-body. The callback return value must  be
     as follows:

     less than 0
	 An error; the request will be aborted. The session error string must be
	 set via ne_set_error.

     0
	 End of body.

     between 0 and buflen
	 Number of bytes of request body data.

   Chunked request bodies
     Chunked  request  bodies are only sent when ne_set_request_body_provider is
     used and -1 is passed as the length. In this case, the length  of	the  re-
     quest body does not have to be determined ahead of time. The end of the re-
     quest body is indicated by returning 0 from the callback function.

     Before  using  a  chunked	request  body,	the  caller  must determine that
     HTTP/1.1 is supported (by the origin server and any HTTP proxy server  con-
     figured).	This  can  be done by testing that ne_version_pre_http11 returns
     zero after performing an OPTIONS or HEAD request.

SEE ALSO
     ne_request_create, ne_set_error

COPYRIGHT
     Copyright (C) 2001-2024 Joe Orton

neon 0.34.0			23 November 2024	 NE_SET_REQUEST_BODY_(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ne_set_request_body_fd&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help