lwIP  2.1.0
Lightweight IP stack
api_lib.c File Reference
#include "lwip/opt.h"
#include "lwip/api.h"
#include "lwip/memp.h"
#include "lwip/ip.h"
#include "lwip/raw.h"
#include "lwip/udp.h"
#include "lwip/priv/api_msg.h"
#include "lwip/priv/tcp_priv.h"
#include "lwip/priv/tcpip_priv.h"
#include "path/to/my/lwip_hooks.h"
#include <string.h>

Functions

struct netconnnetconn_new_with_proto_and_callback (enum netconn_type t, u8_t proto, netconn_callback callback)
 
err_t netconn_prepare_delete (struct netconn *conn)
 
err_t netconn_delete (struct netconn *conn)
 
err_t netconn_getaddr (struct netconn *conn, ip_addr_t *addr, u16_t *port, u8_t local)
 
err_t netconn_bind (struct netconn *conn, const ip_addr_t *addr, u16_t port)
 
err_t netconn_bind_if (struct netconn *conn, u8_t if_idx)
 
err_t netconn_connect (struct netconn *conn, const ip_addr_t *addr, u16_t port)
 
err_t netconn_disconnect (struct netconn *conn)
 
err_t netconn_listen_with_backlog (struct netconn *conn, u8_t backlog)
 
err_t netconn_accept (struct netconn *conn, struct netconn **new_conn)
 
err_t netconn_recv_tcp_pbuf (struct netconn *conn, struct pbuf **new_buf)
 
err_t netconn_recv_tcp_pbuf_flags (struct netconn *conn, struct pbuf **new_buf, u8_t apiflags)
 
err_t netconn_recv_udp_raw_netbuf (struct netconn *conn, struct netbuf **new_buf)
 
err_t netconn_recv_udp_raw_netbuf_flags (struct netconn *conn, struct netbuf **new_buf, u8_t apiflags)
 
err_t netconn_recv (struct netconn *conn, struct netbuf **new_buf)
 
err_t netconn_sendto (struct netconn *conn, struct netbuf *buf, const ip_addr_t *addr, u16_t port)
 
err_t netconn_send (struct netconn *conn, struct netbuf *buf)
 
err_t netconn_write_partly (struct netconn *conn, const void *dataptr, size_t size, u8_t apiflags, size_t *bytes_written)
 
err_t netconn_write_vectors_partly (struct netconn *conn, struct netvector *vectors, u16_t vectorcnt, u8_t apiflags, size_t *bytes_written)
 
err_t netconn_close (struct netconn *conn)
 
err_t netconn_err (struct netconn *conn)
 
err_t netconn_shutdown (struct netconn *conn, u8_t shut_rx, u8_t shut_tx)
 
err_t netconn_join_leave_group (struct netconn *conn, const ip_addr_t *multiaddr, const ip_addr_t *netif_addr, enum netconn_igmp join_or_leave)
 
err_t netconn_join_leave_group_netif (struct netconn *conn, const ip_addr_t *multiaddr, u8_t if_idx, enum netconn_igmp join_or_leave)
 
err_t netconn_gethostbyname_addrtype (const char *name, ip_addr_t *addr, u8_t dns_addrtype)
 

Detailed Description

Sequential API External module

Function Documentation

◆ netconn_getaddr()

err_t netconn_getaddr ( struct netconn conn,
ip_addr_t addr,
u16_t *  port,
u8_t  local 
)

Get the local or remote IP address and port of a netconn. For RAW netconns, this returns the protocol instead of a port!

Parameters
connthe netconn to query
addra pointer to which to save the IP address
porta pointer to which to save the port (or protocol for RAW)
local1 to get the local IP address, 0 to get the remote one
Returns
ERR_CONN for invalid connections ERR_OK if the information was retrieved

◆ netconn_new_with_proto_and_callback()

struct netconn* netconn_new_with_proto_and_callback ( enum netconn_type  t,
u8_t  proto,
netconn_callback  callback 
)

Create a new netconn (of a specific type) that has a callback function. The corresponding pcb is also created.

Parameters
tthe type of 'connection' to create (
See also
enum netconn_type)
Parameters
protothe IP protocol for RAW IP pcbs
callbacka function to call on status changes (RX available, TX'ed)
Returns
a newly allocated struct netconn or NULL on memory error

◆ netconn_recv_udp_raw_netbuf()

err_t netconn_recv_udp_raw_netbuf ( struct netconn conn,
struct netbuf **  new_buf 
)

Receive data (in form of a netbuf) from a UDP or RAW netconn

Parameters
connthe netconn from which to receive data
new_bufpointer where a new netbuf is stored when received data
Returns
ERR_OK if data has been received, an error code otherwise (timeout, memory error or another error) ERR_ARG if conn is not a UDP/RAW netconn

◆ netconn_recv_udp_raw_netbuf_flags()

err_t netconn_recv_udp_raw_netbuf_flags ( struct netconn conn,
struct netbuf **  new_buf,
u8_t  apiflags 
)

Receive data (in form of a netbuf) from a UDP or RAW netconn

Parameters
connthe netconn from which to receive data
new_bufpointer where a new netbuf is stored when received data
apiflagsflags that control function behaviour. For now only:
  • NETCONN_DONTBLOCK: only read data that is available now, don't wait for more data
Returns
ERR_OK if data has been received, an error code otherwise (timeout, memory error or another error) ERR_ARG if conn is not a UDP/RAW netconn

◆ netconn_write_vectors_partly()

err_t netconn_write_vectors_partly ( struct netconn conn,
struct netvector vectors,
u16_t  vectorcnt,
u8_t  apiflags,
size_t *  bytes_written 
)

Send vectorized data atomically over a TCP netconn.

Parameters
connthe TCP netconn over which to send data
vectorsarray of vectors containing data to send
vectorcntnumber of vectors in the array
apiflagscombination of following flags :
  • NETCONN_COPY: data will be copied into memory belonging to the stack
  • NETCONN_MORE: for TCP connection, PSH flag will be set on last segment sent
  • NETCONN_DONTBLOCK: only write the data if all data can be written at once
bytes_writtenpointer to a location that receives the number of written bytes
Returns
ERR_OK if data was sent, any other err_t on error