fixed bug #34540: compiler error when CORE_LOCKING is used and not all protocols are enabled

This commit is contained in:
Simon Goldschmidt 2011-10-13 19:25:11 +02:00
parent c74d881d3d
commit dc34636598
3 changed files with 32 additions and 8 deletions

View File

@ -69,6 +69,10 @@ HISTORY
++ Bugfixes: ++ Bugfixes:
2011-10-13: Simon Goldschmidt
* sockets.c, api_lib.c: fixed bug #34540: compiler error when CORE_LOCKING is
used and not all protocols are enabled
2011-10-12: Simon Goldschmidt 2011-10-12: Simon Goldschmidt
* pbuf.c: fixed bug #34534: Error in sending fragmented IP if MEM_ALIGNMENT > 4 * pbuf.c: fixed bug #34534: Error in sending fragmented IP if MEM_ALIGNMENT > 4

View File

@ -372,7 +372,10 @@ netconn_recv_data(struct netconn *conn, void **new_buf)
#endif /* LWIP_SO_RCVTIMEO*/ #endif /* LWIP_SO_RCVTIMEO*/
#if LWIP_TCP #if LWIP_TCP
if (NETCONNTYPE_GROUP(conn->type) == NETCONN_TCP) { #if (LWIP_UDP || LWIP_RAW)
if (NETCONNTYPE_GROUP(conn->type) == NETCONN_TCP)
#endif /* (LWIP_UDP || LWIP_RAW) */
{
if (!netconn_get_noautorecved(conn) || (buf == NULL)) { if (!netconn_get_noautorecved(conn) || (buf == NULL)) {
/* Let the stack know that we have taken the data. */ /* Let the stack know that we have taken the data. */
/* TODO: Speedup: Don't block and wait for the answer here /* TODO: Speedup: Don't block and wait for the answer here
@ -461,7 +464,10 @@ netconn_recv(struct netconn *conn, struct netbuf **new_buf)
LWIP_ERROR("netconn_accept: invalid recvmbox", sys_mbox_valid(&conn->recvmbox), return ERR_CONN;); LWIP_ERROR("netconn_accept: invalid recvmbox", sys_mbox_valid(&conn->recvmbox), return ERR_CONN;);
#if LWIP_TCP #if LWIP_TCP
if (NETCONNTYPE_GROUP(conn->type) == NETCONN_TCP) { #if (LWIP_UDP || LWIP_RAW)
if (NETCONNTYPE_GROUP(conn->type) == NETCONN_TCP)
#endif /* (LWIP_UDP || LWIP_RAW) */
{
struct pbuf *p = NULL; struct pbuf *p = NULL;
/* This is not a listening netconn, since recvmbox is set */ /* This is not a listening netconn, since recvmbox is set */
@ -485,8 +491,11 @@ netconn_recv(struct netconn *conn, struct netbuf **new_buf)
*new_buf = buf; *new_buf = buf;
/* don't set conn->last_err: it's only ERR_OK, anyway */ /* don't set conn->last_err: it's only ERR_OK, anyway */
return ERR_OK; return ERR_OK;
} else }
#endif /* LWIP_TCP */ #endif /* LWIP_TCP */
#if LWIP_TCP && (LWIP_UDP || LWIP_RAW)
else
#endif /* LWIP_TCP && (LWIP_UDP || LWIP_RAW) */
{ {
#if (LWIP_UDP || LWIP_RAW) #if (LWIP_UDP || LWIP_RAW)
return netconn_recv_data(conn, (void **)new_buf); return netconn_recv_data(conn, (void **)new_buf);

View File

@ -914,18 +914,29 @@ lwip_sendto(int s, const void *data, size_t size, int flags,
to, &remote_addr_tmp, remote_port); to, &remote_addr_tmp, remote_port);
remote_addr = &remote_addr_tmp; remote_addr = &remote_addr_tmp;
} else { } else {
remote_addr = &sock->conn->pcb.raw->remote_ip; remote_addr = &sock->conn->pcb.ip->remote_ip;
if (NETCONNTYPE_GROUP(sock->conn->type) == NETCONN_RAW) { #if LWIP_UDP
remote_port = 0; if (NETCONNTYPE_GROUP(sock->conn->type) == NETCONN_UDP) {
} else {
remote_port = sock->conn->pcb.udp->remote_port; remote_port = sock->conn->pcb.udp->remote_port;
} else
#endif /* LWIP_UDP */
{
remote_port = 0;
} }
} }
LOCK_TCPIP_CORE(); LOCK_TCPIP_CORE();
if (NETCONNTYPE_GROUP(netconn_type(sock->conn)) == NETCONN_RAW) { if (NETCONNTYPE_GROUP(netconn_type(sock->conn)) == NETCONN_RAW) {
#if LWIP_RAW
err = sock->conn->last_err = raw_sendto(sock->conn->pcb.raw, p, ipX_2_ip(remote_addr)); err = sock->conn->last_err = raw_sendto(sock->conn->pcb.raw, p, ipX_2_ip(remote_addr));
} else { #else /* LWIP_RAW */
err = ERR_ARG;
#endif /* LWIP_RAW */
}
#if LWIP_UDP && LWIP_RAW
else
#endif /* LWIP_UDP && LWIP_RAW */
{
#if LWIP_UDP #if LWIP_UDP
#if LWIP_CHECKSUM_ON_COPY && LWIP_NETIF_TX_SINGLE_PBUF #if LWIP_CHECKSUM_ON_COPY && LWIP_NETIF_TX_SINGLE_PBUF
err = sock->conn->last_err = udp_sendto_chksum(sock->conn->pcb.udp, p, err = sock->conn->last_err = udp_sendto_chksum(sock->conn->pcb.udp, p,