Changeset 7f95c904 in mainline for uspace/srv/inet/inet.c


Ignore:
Timestamp:
2012-04-16T07:04:19Z (12 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
7fda2e0
Parents:
347768d
Message:

Prototype datagram reassembly.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/inet/inet.c

    r347768d r7f95c904  
    5454#include "inetping.h"
    5555#include "inet_link.h"
     56#include "reass.h"
    5657#include "sroute.h"
    5758
     
    375376}
    376377
    377 static int inet_recv_dgram_local(inet_dgram_t *dgram, uint8_t proto)
     378int inet_recv_dgram_local(inet_dgram_t *dgram, uint8_t proto)
    378379{
    379380        inet_client_t *client;
     
    404405                /* Destined for one of the local addresses */
    405406
    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                }
    414421        }
    415422
Note: See TracChangeset for help on using the changeset viewer.