Main Page | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages

SRC/transmit.c File Reference


Detailed Description

BSD send(), sendto(), write().

Definition in file transmit.c.

Go to the source code of this file.

Functions

int raw_transmit (Socket *socket, const void *buf, unsigned len)
int udp_transmit (Socket *socket, const void *buf, unsigned len)
int tcp_transmit (Socket *socket, const void *buf, unsigned len, int flags)
int setup_udp_raw (Socket *socket, const struct sockaddr *to, int tolen)
int transmit (const char *func, int s, const void *buf, unsigned len, int flags, const struct sockaddr *to, int tolen, BOOL have_remote_addr)
int W32_CALL sendto (int s, const void *buf, int len, int flags, const struct sockaddr *to, int tolen)
int W32_CALL send (int s, const void *buf, int len, int flags)
int write_s (int s, const char *buf, int nbyte)
int writev_s (int s, const struct iovec *vector, size_t count)
int sendmsg (int s, const struct msghdr *msg, int flags)
__inline void msg_eor_close (Socket *socket)
__inline BOOL check_non_block_tx (Socket *socket, unsigned *len)
int ip4_transmit (Socket *socket, const void *tx, unsigned len)
 Raw IPv4 transmitter.
int ip6_transmit (Socket *socket, const void *tx, unsigned len)
 Raw IPv6 transmitter.


Function Documentation

int ip4_transmit Socket *  socket,
const void *  tx,
unsigned  len
[static]
 

Raw IPv4 transmitter.

Note:
'tx' is always non-NULL and 'len' is always > 0. Except for SOCK_DGRAM probe packets (tx=NULL and len==0).

Todo:
Handle sending fragments with IP optons
Definition at line 724 of file transmit.c.

References _arp_resolve(), _eth_formatpacket(), _eth_send(), _get_ip4_id(), BYTE, DWORD, eth_address, gethostid(), socket(), UINT, and WORD.

int ip6_transmit Socket *  socket,
const void *  tx,
unsigned  len
[static]
 

Raw IPv6 transmitter.

Note:
'tx' is always non-NULL and 'len' is always > 0. Except for SOCK_DGRAM probe packets (tx=NULL and len==0).

Todo:
support fragmentation
Definition at line 881 of file transmit.c.

References _default_ttl, _eth_formatpacket(), _eth_send(), _gethostid6(), _inet6_ntoa(), BYTE, eth_address, ip6_address, and socket().

int tcp_transmit Socket *  socket,
const void *  buf,
unsigned  len,
int  flags
[static]
 

Todo:
Allow non-blocking sockets to send in SYNSENT state
Definition at line 474 of file transmit.c.

References _inet6_ntoa(), BYTE, _tcp_Socket::datatimer, _tcp_Socket::max_tx_data, sock_enqueue(), sock_write(), socket(), _tcp_Socket::state, sock_type::tcp, tcp_Retransmitter(), and tcp_tick().


Generated on Wed Aug 4 08:55:59 2010 for Watt-32 tcp/ip by doxygen 1.3.8