Electroneum
Toggle main menu visibility
Loading...
Searching...
No Matches
asyncsendto.h
Go to the documentation of this file.
1
/* $Id: asyncsendto.h,v 1.3 2017/11/02 15:48:29 nanard Exp $ */
2
/* MiniUPnP project
3
* http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
4
* (c) 2006-2017 Thomas Bernard
5
* This software is subject to the conditions detailed
6
* in the LICENCE file provided within the distribution */
7
8
#ifndef ASYNCSENDTO_H_INCLUDED
9
#define ASYNCSENDTO_H_INCLUDED
10
/* for fd_set */
11
#include <sys/select.h>
12
13
/* sendto_schedule() : see sendto(2)
14
* schedule sendto() call after delay (milliseconds) */
15
ssize_t
16
sendto_schedule2
(
int
sockfd,
const
void
*
buf
,
size_t
len,
int
flags,
17
const
struct
sockaddr *dest_addr, socklen_t addrlen,
18
const
struct
sockaddr_in6
*src_addr,
19
unsigned
int
delay);
20
21
#define sendto_schedule(sockfd, buf, len, flags, dest_addr, addrlen, delay) \
22
sendto_schedule2(sockfd, buf, len, flags, dest_addr, addrlen, NULL, delay)
23
24
/* sendto_schedule() : see sendto(2)
25
* try sendto() at once and schedule if EINTR/EAGAIN/EWOULDBLOCK */
26
ssize_t
27
sendto_or_schedule
(
int
sockfd,
const
void
*
buf
,
size_t
len,
int
flags,
28
const
struct
sockaddr *dest_addr, socklen_t addrlen);
29
30
/* same as sendto_schedule() except it will try to set source address
31
* (for IPV6 only) */
32
ssize_t
33
sendto_or_schedule2
(
int
sockfd,
const
void
*
buf
,
size_t
len,
int
flags,
34
const
struct
sockaddr *dest_addr, socklen_t addrlen,
35
const
struct
sockaddr_in6
*src_addr);
36
37
/* get_next_scheduled_send()
38
* return number of scheduled sendto
39
* set next_send to timestamp to send next packet */
40
int
get_next_scheduled_send
(
struct
timeval * next_send);
41
42
/* execute sendto() for needed packets */
43
int
try_sendto
(fd_set * writefds);
44
45
/* set writefds before select() */
46
int
get_sendto_fds
(fd_set * writefds,
int
* max_fd,
const
struct
timeval * now);
47
48
/* empty the list */
49
void
finalize_sendto
(
void
);
50
51
#endif
try_sendto
int try_sendto(fd_set *writefds)
get_next_scheduled_send
int get_next_scheduled_send(struct timeval *next_send)
get_sendto_fds
int get_sendto_fds(fd_set *writefds, int *max_fd, const struct timeval *now)
finalize_sendto
void finalize_sendto(void)
sendto_or_schedule2
ssize_t sendto_or_schedule2(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen, const struct sockaddr_in6 *src_addr)
sendto_schedule2
ssize_t sendto_schedule2(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen, const struct sockaddr_in6 *src_addr, unsigned int delay)
sendto_or_schedule
ssize_t sendto_or_schedule(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen)
buf
const char * buf
Definition
slow_memmem.cpp:74
sockaddr_in6
Definition
fake-rfc2553.h:74
external
miniupnp
minissdpd
asyncsendto.h
Generated on
for Electroneum by
1.17.0