2008-08-08 18:30:57 +02:00
/*
Unix SMB / CIFS implementation .
async socket operations
Copyright ( C ) Volker Lendecke 2008
2009-05-29 14:14:50 +02:00
* * NOTE ! The following LGPL license applies to the async_sock
* * library . This does NOT imply that all of Samba is released
* * under the LGPL
2008-08-08 18:30:57 +02:00
2009-05-29 14:14:50 +02:00
This library is free software ; you can redistribute it and / or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation ; either
version 3 of the License , or ( at your option ) any later version .
This library is distributed in the hope that it will be useful ,
2008-08-08 18:30:57 +02:00
but WITHOUT ANY WARRANTY ; without even the implied warranty of
2009-05-29 14:14:50 +02:00
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the GNU
Library General Public License for more details .
2008-08-08 18:30:57 +02:00
2009-05-29 14:14:50 +02:00
You should have received a copy of the GNU Lesser General Public License
2008-08-08 18:30:57 +02:00
along with this program . If not , see < http : //www.gnu.org/licenses/>.
*/
# ifndef __ASYNC_SOCK_H__
# define __ASYNC_SOCK_H__
# include "includes.h"
2009-02-23 08:53:01 +01:00
struct tevent_req * async_send_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
int fd , const void * buf , size_t len ,
int flags ) ;
ssize_t async_send_recv ( struct tevent_req * req , int * perrno ) ;
2009-02-23 08:56:35 +01:00
struct tevent_req * async_recv_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
int fd , void * buf , size_t len , int flags ) ;
ssize_t async_recv_recv ( struct tevent_req * req , int * perrno ) ;
2009-02-22 19:49:18 +01:00
struct tevent_req * async_connect_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
int fd , const struct sockaddr * address ,
socklen_t address_len ) ;
int async_connect_recv ( struct tevent_req * req , int * perrno ) ;
2008-08-08 18:30:57 +02:00
2009-02-22 20:16:32 +01:00
struct tevent_req * writev_send ( TALLOC_CTX * mem_ctx , struct tevent_context * ev ,
2009-03-01 19:43:07 +01:00
struct tevent_queue * queue , int fd ,
2009-05-23 16:10:54 +02:00
bool err_on_readability ,
2009-03-01 19:43:07 +01:00
struct iovec * iov , int count ) ;
2009-02-22 20:16:32 +01:00
ssize_t writev_recv ( struct tevent_req * req , int * perrno ) ;
2009-02-22 23:13:34 +01:00
struct tevent_req * read_packet_send ( TALLOC_CTX * mem_ctx ,
struct tevent_context * ev ,
int fd , size_t initial ,
ssize_t ( * more ) ( uint8_t * buf ,
size_t buflen ,
void * private_data ) ,
void * private_data ) ;
ssize_t read_packet_recv ( struct tevent_req * req , TALLOC_CTX * mem_ctx ,
uint8_t * * pbuf , int * perrno ) ;
2008-08-08 18:30:57 +02:00
# endif