#include "uip_pbuf.h" #include "uip-conf.h" #include "rtdef.h" #include "uip.h" #include "uip_arp.h" #include "uip_netif.h" err_t tcpip_input(struct pbuf *p, struct netif *inp) { int i; u8_t *pdata; if (uip_len) { uip_arp_out(); if (( pdata =(u8_t*)rt_malloc(1500*sizeof(u8_t))) == RT_NULL) { pbuf_free(p); return 1; } for (i=0; i < (UIP_LLH_LEN + 40); ++i) // 14+40 =54 { pdata[i] = uip_buf[i]; /* get dest an src ipaddr */ } // Copy the data portion part for(; i < uip_len; ++i) { pdata[i] = uip_appdata[i - UIP_LLH_LEN - 40 ]; } p ->payload = pdata; p->len = uip_len; inp->linkoutput(inp,p); rt_free(pdata); return 1; } else { pbuf_free(p); return 0; } }