Changeset 7f95c904 in mainline for uspace/srv/inet/inet.c
- Timestamp:
- 2012-04-16T07:04:19Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 7fda2e0
- Parents:
- 347768d
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/inet/inet.c
r347768d r7f95c904 54 54 #include "inetping.h" 55 55 #include "inet_link.h" 56 #include "reass.h" 56 57 #include "sroute.h" 57 58 … … 375 376 } 376 377 377 staticint inet_recv_dgram_local(inet_dgram_t *dgram, uint8_t proto)378 int inet_recv_dgram_local(inet_dgram_t *dgram, uint8_t proto) 378 379 { 379 380 inet_client_t *client; … … 404 405 /* Destined for one of the local addresses */ 405 406 406 /* XXX Reassemble packets */ 407 dgram.src = packet->src; 408 dgram.dest = packet->dest; 409 dgram.tos = packet->tos; 410 dgram.data = packet->data; 411 dgram.size = packet->size; 412 413 return inet_recv_dgram_local(&dgram, packet->proto); 407 /* Check if packet is a complete datagram */ 408 if (packet->offs == 0 && !packet->mf) { 409 /* It is complete deliver it immediately */ 410 dgram.src = packet->src; 411 dgram.dest = packet->dest; 412 dgram.tos = packet->tos; 413 dgram.data = packet->data; 414 dgram.size = packet->size; 415 416 return inet_recv_dgram_local(&dgram, packet->proto); 417 } else { 418 /* It is a fragment, queue it for reassembly */ 419 inet_reass_queue_packet(packet); 420 } 414 421 } 415 422
Note:
See TracChangeset
for help on using the changeset viewer.