69 |
for(q = p; q != NULL; q = q->next) { |
for(q = p; q != NULL; q = q->next) { |
70 |
for(i = 0; i < q->len; i++) { |
for(i = 0; i < q->len; i++) { |
71 |
c = ((u8_t *)q->payload)[i]; |
c = ((u8_t *)q->payload)[i]; |
72 |
switch(c) { |
switch (c) { |
73 |
case SLIP_END: |
case SLIP_END: |
74 |
sio_send(SLIP_ESC, netif->state); |
sio_send(SLIP_ESC, netif->state); |
75 |
sio_send(SLIP_ESC_END, netif->state); |
sio_send(SLIP_ESC_END, netif->state); |
107 |
recved = i = 0; |
recved = i = 0; |
108 |
c = 0; |
c = 0; |
109 |
|
|
110 |
while(1) { |
while (1) { |
111 |
c = sio_recv(netif->state); |
c = sio_recv(netif->state); |
112 |
switch(c) { |
switch (c) { |
113 |
case SLIP_END: |
case SLIP_END: |
114 |
if(recved > 0) { |
if (recved > 0) { |
115 |
/* Received whole packet. */ |
/* Received whole packet. */ |
116 |
pbuf_realloc(q, recved); |
pbuf_realloc(q, recved); |
117 |
|
|
126 |
|
|
127 |
case SLIP_ESC: |
case SLIP_ESC: |
128 |
c = sio_recv(netif->state); |
c = sio_recv(netif->state); |
129 |
switch(c) { |
switch (c) { |
130 |
case SLIP_ESC_END: |
case SLIP_ESC_END: |
131 |
c = SLIP_END; |
c = SLIP_END; |
132 |
break; |
break; |
137 |
/* FALLTHROUGH */ |
/* FALLTHROUGH */ |
138 |
|
|
139 |
default: |
default: |
140 |
if(p == NULL) { |
if (p == NULL) { |
141 |
DEBUGF(SLIP_DEBUG, ("slipif_input: alloc\n")); |
DEBUGF(SLIP_DEBUG, ("slipif_input: alloc\n")); |
142 |
p = pbuf_alloc(PBUF_LINK, PBUF_POOL_BUFSIZE, PBUF_POOL); |
p = pbuf_alloc(PBUF_LINK, PBUF_POOL_BUFSIZE, PBUF_POOL); |
143 |
|
|
144 |
#ifdef LINK_STATS |
#ifdef LINK_STATS |
145 |
if(p == NULL) { |
if (p == NULL) { |
146 |
++lwip_stats.link.drop; |
++lwip_stats.link.drop; |
147 |
DEBUGF(SLIP_DEBUG, ("slipif_input: no new pbuf! (DROP)\n")); |
DEBUGF(SLIP_DEBUG, ("slipif_input: no new pbuf! (DROP)\n")); |
148 |
} |
} |
149 |
#endif /* LINK_STATS */ |
#endif /* LINK_STATS */ |
150 |
|
|
151 |
if(q != NULL) { |
if (q != NULL) { |
152 |
pbuf_chain(q, p); |
pbuf_chain(q, p); |
153 |
} else { |
} else { |
154 |
q = p; |
q = p; |
155 |
} |
} |
156 |
} |
} |
157 |
if(p != NULL && recved < MAX_SIZE) { |
if (p != NULL && recved < MAX_SIZE) { |
158 |
((u8_t *)p->payload)[i] = c; |
((u8_t *)p->payload)[i] = c; |
159 |
recved++; |
recved++; |
160 |
i++; |
i++; |
161 |
if(i >= p->len) { |
if (i >= p->len) { |
162 |
i = 0; |
i = 0; |
163 |
p = NULL; |
p = NULL; |
164 |
} |
} |
181 |
struct pbuf *p; |
struct pbuf *p; |
182 |
struct netif *netif = (struct netif *)nf; |
struct netif *netif = (struct netif *)nf; |
183 |
|
|
184 |
while(1) { |
while (1) { |
185 |
p = slipif_input(netif); |
p = slipif_input(netif); |
186 |
netif->input(p, netif); |
netif->input(p, netif); |
187 |
} |
} |