68netconn_new_with_proto_and_callback(
enum netconn_type
t,
u8_t proto, netconn_callback
callback)
75 msg.function = do_newconn;
103netconn_delete(
struct netconn *conn)
112 msg.function = do_delconn;
144 msg.function = do_getaddr;
151 NETCONN_SET_SAFE_ERR(conn,
err);
179 NETCONN_SET_SAFE_ERR(conn,
err);
199 msg.function = do_connect;
206 NETCONN_SET_SAFE_ERR(conn,
err);
217netconn_disconnect(
struct netconn *conn)
224 msg.function = do_disconnect;
228 NETCONN_SET_SAFE_ERR(conn,
err);
241netconn_listen_with_backlog(
struct netconn *conn,
u8_t backlog)
252 msg.function = do_listen;
254#if TCP_LISTEN_BACKLOG
255 msg.msg.msg.lb.backlog = backlog;
259 NETCONN_SET_SAFE_ERR(conn,
err);
282#if TCP_LISTEN_BACKLOG
291 err = conn->last_err;
307 API_EVENT(conn, NETCONN_EVT_RCVMINUS, 0);
309 if (newconn ==
NULL) {
311 NETCONN_SET_SAFE_ERR(conn,
ERR_ABRT);
314#if TCP_LISTEN_BACKLOG
316 msg.function = do_recv;
342netconn_recv_data(
struct netconn *conn,
void **new_buf)
356 err = conn->last_err;
375#if (LWIP_UDP || LWIP_RAW)
376 if (conn->type == NETCONN_TCP)
379 if (!netconn_get_noautorecved(conn) || (
buf ==
NULL)) {
383 msg.function = do_recv;
386 msg.msg.msg.r.len = ((
struct pbuf *)
buf)->tot_len;
388 msg.msg.msg.r.len = 1;
396 API_EVENT(conn, NETCONN_EVT_RCVMINUS, 0);
398 NETCONN_SET_SAFE_ERR(conn,
ERR_CLSD);
404#if LWIP_TCP && (LWIP_UDP || LWIP_RAW)
407#if (LWIP_UDP || LWIP_RAW)
418 API_EVENT(conn, NETCONN_EVT_RCVMINUS,
len);
437netconn_recv_tcp_pbuf(
struct netconn *conn,
struct pbuf **new_buf)
440 netconn_type(conn) == NETCONN_TCP,
return ERR_ARG;);
442 return netconn_recv_data(conn, (
void **)new_buf);
467#if (LWIP_UDP || LWIP_RAW)
468 if (conn->type == NETCONN_TCP)
476 NETCONN_SET_SAFE_ERR(conn,
ERR_MEM);
480 err = netconn_recv_data(conn, (
void **)&
p);
496#if LWIP_TCP && (LWIP_UDP || LWIP_RAW)
500#if (LWIP_UDP || LWIP_RAW)
501 return netconn_recv_data(conn, (
void **)new_buf);
520 if ((conn !=
NULL) && (conn->type == NETCONN_TCP) &&
521 (netconn_get_noautorecved(conn))) {
526 msg.function = do_recv;
575 msg.function = do_send;
580 NETCONN_SET_SAFE_ERR(conn,
err);
599 u8_t apiflags,
size_t *bytes_written)
606 LWIP_ERROR(
"netconn_write: invalid conn->type", (conn->type == NETCONN_TCP),
return ERR_VAL;);
610 dontblock = netconn_is_nonblocking(conn) || (apiflags & NETCONN_DONTBLOCK);
611 if (dontblock && !bytes_written) {
621 msg.msg.msg.w.apiflags = apiflags;
624 if (conn->send_timeout != 0) {
629 msg.msg.msg.w.time_started = 0;
640 || (conn->send_timeout != 0)
644 *bytes_written =
msg.msg.msg.w.len;
647 *bytes_written =
size;
651 NETCONN_SET_SAFE_ERR(conn,
err);
663netconn_close_shutdown(
struct netconn *conn,
u8_t how)
673 msg.msg.msg.sd.shut = how;
678 NETCONN_SET_SAFE_ERR(conn,
err);
692 return netconn_close_shutdown(conn, NETCONN_SHUT_RDWR);
704 return netconn_close_shutdown(conn, (shut_rx ? NETCONN_SHUT_RD : 0) | (shut_tx ? NETCONN_SHUT_WR : 0));
719netconn_join_leave_group(
struct netconn *conn,
722 enum netconn_igmp join_or_leave)
729 msg.function = do_join_leave_group;
731 msg.msg.msg.jl.multiaddr = multiaddr;
732 msg.msg.msg.jl.netif_addr = netif_addr;
733 msg.msg.msg.jl.join_or_leave = join_or_leave;
736 NETCONN_SET_SAFE_ERR(conn,
err);
755 struct dns_api_msg
msg;
#define LWIP_UNUSED_ARG(x)
NTSTATUS do_write(device_extension *Vcb, PIRP Irp)
void netconn_close(struct netconn *conn)
BOOL netconn_recv(struct netconn *conn, void *buf, size_t len, int flags, int *recvd)
BOOL netconn_send(struct netconn *conn, const void *msg, size_t len, int *sent)
#define LWIP_DEBUGF(debug, message)
#define LWIP_ERROR(message, expression, handler)
#define LWIP_ASSERT(message, assertion)
#define tcpip_callback(f, ctx)
GLenum GLuint GLenum GLsizei const GLchar * buf
GLuint GLsizei GLsizei * length
GLenum const GLvoid * addr
#define ip_addr_set(dest, src)
typedefPACK_STRUCT_END struct ip_addr ip_addr_t
#define ip_addr_set_any(ipaddr)
int const JOCTET * dataptr
void * memp_malloc(memp_t type)
void memp_free(memp_t type, void *mem)
static IPrintDialogCallback callback
static void do_close(SOCKET)
static void do_bind(SOCKET s, struct sockaddr *addr, int addrlen)
#define sys_sem_wait(sem)
#define SYS_ARCH_DEC(var, val)
int sys_sem_valid(sys_sem_t *sem)
u32_t sys_arch_mbox_fetch(sys_mbox_t *mbox, void **msg, u32_t timeout)
void sys_sem_free(sys_sem_t *sem)
int sys_mbox_valid(sys_mbox_t *mbox)
void sys_mbox_free(sys_mbox_t *mbox)
err_t sys_sem_new(sys_sem_t *sem, u8_t count)