mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2025-02-11 06:40:28 +00:00
Included patch #5938: changed raw_pcb.protocol from u16_t to u8_t since for IPv4 and IPv6, proto is only 8 bits wide. This affects the api, as there, the protocol was u16_t, too.
This commit is contained in:
parent
980af63b8d
commit
81ac03a28b
@ -166,6 +166,12 @@ HISTORY
|
|||||||
|
|
||||||
++ Bug fixes:
|
++ Bug fixes:
|
||||||
|
|
||||||
|
2007-05-22 Simon Goldschmidt
|
||||||
|
* api_lib.c, api_msg.c, raw.c, api.h, api_msg.h, raw.h: Included patch #5938:
|
||||||
|
changed raw_pcb.protocol from u16_t to u8_t since for IPv4 and IPv6, proto
|
||||||
|
is only 8 bits wide. This affects the api, as there, the protocol was
|
||||||
|
u16_t, too.
|
||||||
|
|
||||||
2007-05-18 Simon Goldschmidt
|
2007-05-18 Simon Goldschmidt
|
||||||
* memp.c: addition to patch #5913: smaller pointer was returned but
|
* memp.c: addition to patch #5913: smaller pointer was returned but
|
||||||
memp_memory was the same size -> did not save memory.
|
memp_memory was the same size -> did not save memory.
|
||||||
|
@ -182,7 +182,7 @@ netbuf_copy_partial(struct netbuf *buf, void *dataptr, u16_t len, u16_t offset)
|
|||||||
}
|
}
|
||||||
|
|
||||||
struct
|
struct
|
||||||
netconn *netconn_new_with_proto_and_callback(enum netconn_type t, u16_t proto,
|
netconn *netconn_new_with_proto_and_callback(enum netconn_type t, u8_t proto,
|
||||||
void (*callback)(struct netconn *, enum netconn_evt, u16_t len))
|
void (*callback)(struct netconn *, enum netconn_evt, u16_t len))
|
||||||
{
|
{
|
||||||
struct netconn *conn;
|
struct netconn *conn;
|
||||||
@ -218,7 +218,7 @@ netconn *netconn_new_with_proto_and_callback(enum netconn_type t, u16_t proto,
|
|||||||
#endif /* LWIP_SO_RCVTIMEO */
|
#endif /* LWIP_SO_RCVTIMEO */
|
||||||
|
|
||||||
msg.function = do_newconn;
|
msg.function = do_newconn;
|
||||||
msg.msg.msg.bc.port = proto; /* misusing the port field */
|
msg.msg.msg.raw_proto = proto;
|
||||||
msg.msg.conn = conn;
|
msg.msg.conn = conn;
|
||||||
tcpip_apimsg(&msg);
|
tcpip_apimsg(&msg);
|
||||||
|
|
||||||
@ -682,7 +682,7 @@ netconn_join_leave_group (struct netconn *conn,
|
|||||||
msg.function = do_join_leave_group;
|
msg.function = do_join_leave_group;
|
||||||
msg.msg.conn = conn;
|
msg.msg.conn = conn;
|
||||||
msg.msg.msg.bc.ipaddr = (struct ip_addr *)ipaddr;
|
msg.msg.msg.bc.ipaddr = (struct ip_addr *)ipaddr;
|
||||||
msg.msg.msg.bc.port = join_or_leave;
|
msg.msg.msg.bc.port = join_or_leave; /* misusing the port field */
|
||||||
tcpip_apimsg(&msg);
|
tcpip_apimsg(&msg);
|
||||||
return conn->err;
|
return conn->err;
|
||||||
}
|
}
|
||||||
|
@ -293,7 +293,7 @@ pcb_new(struct api_msg_msg *msg)
|
|||||||
switch(msg->conn->type) {
|
switch(msg->conn->type) {
|
||||||
#if LWIP_RAW
|
#if LWIP_RAW
|
||||||
case NETCONN_RAW:
|
case NETCONN_RAW:
|
||||||
msg->conn->pcb.raw = raw_new(msg->msg.bc.port); /* misusing the port field */
|
msg->conn->pcb.raw = raw_new(msg->msg.raw_proto);
|
||||||
if(msg->conn->pcb.raw == NULL) {
|
if(msg->conn->pcb.raw == NULL) {
|
||||||
msg->conn->err = ERR_MEM;
|
msg->conn->err = ERR_MEM;
|
||||||
break;
|
break;
|
||||||
@ -667,7 +667,7 @@ do_join_leave_group(struct api_msg_msg *msg)
|
|||||||
case NETCONN_UDPLITE:
|
case NETCONN_UDPLITE:
|
||||||
case NETCONN_UDPNOCHKSUM:
|
case NETCONN_UDPNOCHKSUM:
|
||||||
case NETCONN_UDP:
|
case NETCONN_UDP:
|
||||||
switch(msg->msg.bc.port){
|
switch(msg->msg.bc.port){ /* misusing the port field */
|
||||||
case NETCONN_JOIN: msg->conn->err = igmp_joingroup (netif_default, ((struct ip_addr**)(msg->msg.bc.ipaddr))[0]); break;
|
case NETCONN_JOIN: msg->conn->err = igmp_joingroup (netif_default, ((struct ip_addr**)(msg->msg.bc.ipaddr))[0]); break;
|
||||||
case NETCONN_LEAVE: msg->conn->err = igmp_leavegroup(netif_default, ((struct ip_addr**)(msg->msg.bc.ipaddr))[0]); break;
|
case NETCONN_LEAVE: msg->conn->err = igmp_leavegroup(netif_default, ((struct ip_addr**)(msg->msg.bc.ipaddr))[0]); break;
|
||||||
}
|
}
|
||||||
|
@ -310,7 +310,7 @@ raw_remove(struct raw_pcb *pcb)
|
|||||||
* @see raw_remove()
|
* @see raw_remove()
|
||||||
*/
|
*/
|
||||||
struct raw_pcb *
|
struct raw_pcb *
|
||||||
raw_new(u16_t proto) {
|
raw_new(u8_t proto) {
|
||||||
struct raw_pcb *pcb;
|
struct raw_pcb *pcb;
|
||||||
|
|
||||||
LWIP_DEBUGF(RAW_DEBUG | LWIP_DBG_TRACE | 3, ("raw_new\n"));
|
LWIP_DEBUGF(RAW_DEBUG | LWIP_DBG_TRACE | 3, ("raw_new\n"));
|
||||||
|
@ -143,7 +143,7 @@ struct
|
|||||||
netconn *netconn_new_with_callback(enum netconn_type t,
|
netconn *netconn_new_with_callback(enum netconn_type t,
|
||||||
void (*callback)(struct netconn *, enum netconn_evt, u16_t len));
|
void (*callback)(struct netconn *, enum netconn_evt, u16_t len));
|
||||||
struct
|
struct
|
||||||
netconn *netconn_new_with_proto_and_callback(enum netconn_type t, u16_t proto,
|
netconn *netconn_new_with_proto_and_callback(enum netconn_type t, u8_t proto,
|
||||||
void (*callback)(struct netconn *, enum netconn_evt, u16_t len));
|
void (*callback)(struct netconn *, enum netconn_evt, u16_t len));
|
||||||
err_t netconn_delete (struct netconn *conn);
|
err_t netconn_delete (struct netconn *conn);
|
||||||
enum netconn_type netconn_type (struct netconn *conn);
|
enum netconn_type netconn_type (struct netconn *conn);
|
||||||
|
@ -67,6 +67,7 @@ struct api_msg_msg {
|
|||||||
} w;
|
} w;
|
||||||
sys_mbox_t mbox;
|
sys_mbox_t mbox;
|
||||||
u16_t len;
|
u16_t len;
|
||||||
|
u8_t raw_proto;
|
||||||
} msg;
|
} msg;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ struct raw_pcb {
|
|||||||
|
|
||||||
struct raw_pcb *next;
|
struct raw_pcb *next;
|
||||||
|
|
||||||
u16_t protocol;
|
u8_t protocol;
|
||||||
|
|
||||||
u8_t (* recv)(void *arg, struct raw_pcb *pcb, struct pbuf *p,
|
u8_t (* recv)(void *arg, struct raw_pcb *pcb, struct pbuf *p,
|
||||||
struct ip_addr *addr);
|
struct ip_addr *addr);
|
||||||
@ -57,7 +57,7 @@ struct raw_pcb {
|
|||||||
|
|
||||||
/* The following functions is the application layer interface to the
|
/* The following functions is the application layer interface to the
|
||||||
RAW code. */
|
RAW code. */
|
||||||
struct raw_pcb * raw_new (u16_t proto);
|
struct raw_pcb * raw_new (u8_t proto);
|
||||||
void raw_remove (struct raw_pcb *pcb);
|
void raw_remove (struct raw_pcb *pcb);
|
||||||
err_t raw_bind (struct raw_pcb *pcb, struct ip_addr *ipaddr);
|
err_t raw_bind (struct raw_pcb *pcb, struct ip_addr *ipaddr);
|
||||||
err_t raw_connect (struct raw_pcb *pcb, struct ip_addr *ipaddr);
|
err_t raw_connect (struct raw_pcb *pcb, struct ip_addr *ipaddr);
|
||||||
@ -67,11 +67,11 @@ void raw_recv (struct raw_pcb *pcb,
|
|||||||
struct pbuf *p,
|
struct pbuf *p,
|
||||||
struct ip_addr *addr),
|
struct ip_addr *addr),
|
||||||
void *recv_arg);
|
void *recv_arg);
|
||||||
err_t raw_sendto (struct raw_pcb *pcb, struct pbuf *p, struct ip_addr *ipaddr);
|
err_t raw_sendto (struct raw_pcb *pcb, struct pbuf *p, struct ip_addr *ipaddr);
|
||||||
err_t raw_send (struct raw_pcb *pcb, struct pbuf *p);
|
err_t raw_send (struct raw_pcb *pcb, struct pbuf *p);
|
||||||
|
|
||||||
/* The following functions are the lower layer interface to RAW. */
|
/* The following functions are the lower layer interface to RAW. */
|
||||||
u8_t raw_input (struct pbuf *p, struct netif *inp);
|
u8_t raw_input (struct pbuf *p, struct netif *inp);
|
||||||
void raw_init (void);
|
void raw_init (void);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
Loading…
x
Reference in New Issue
Block a user