Changeset aadf01e in mainline for uspace/srv/net/il/ip/ip_client.c


Ignore:
Timestamp:
2010-03-07T15:13:28Z (14 years ago)
Author:
Lukas Mejdrech <lukasmejdrech@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
936835e
Parents:
aa85487
Message:

Coding style (no functional change)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/net/il/ip/ip_client.c

    raa85487 raadf01e  
    4848#include "ip_header.h"
    4949
    50 int ip_client_prepare_packet( packet_t packet, ip_protocol_t protocol, ip_ttl_t ttl, ip_tos_t tos, int dont_fragment, size_t ipopt_length ){
    51         ip_header_ref   header;
    52         uint8_t *               data;
    53         size_t                  padding;
     50int ip_client_prepare_packet(packet_t packet, ip_protocol_t protocol, ip_ttl_t ttl, ip_tos_t tos, int dont_fragment, size_t ipopt_length){
     51        ip_header_ref header;
     52        uint8_t * data;
     53        size_t padding;
    5454
    5555        padding =  ipopt_length % 4;
    56         if( padding ){
     56        if(padding){
    5757                padding = 4 - padding;
    5858                ipopt_length += padding;
    5959        }
    60         data = ( uint8_t * ) packet_prefix( packet, sizeof( ip_header_t ) + padding );
    61         if( ! data ) return ENOMEM;
    62         while( padding -- ) data[ sizeof( ip_header_t ) + padding ] = IPOPT_NOOP;
    63         header = ( ip_header_ref ) data;
    64         header->header_length = IP_COMPUTE_HEADER_LENGTH( sizeof( ip_header_t ) + ipopt_length );
    65         header->ttl = ( ttl ? ttl : IPDEFTTL ); //((( ttl ) <= MAXTTL ) ? ttl : MAXTTL ) : IPDEFTTL;
     60        data = (uint8_t *) packet_prefix(packet, sizeof(ip_header_t) + padding);
     61        if(! data){
     62                return ENOMEM;
     63        }
     64        while(padding --){
     65                data[sizeof(ip_header_t) + padding] = IPOPT_NOOP;
     66        }
     67        header = (ip_header_ref) data;
     68        header->header_length = IP_COMPUTE_HEADER_LENGTH(sizeof(ip_header_t) + ipopt_length);
     69        header->ttl = (ttl ? ttl : IPDEFTTL); //(((ttl) <= MAXTTL) ? ttl : MAXTTL) : IPDEFTTL;
    6670        header->tos = tos;
    6771        header->protocol = protocol;
    68         if( dont_fragment ) header->flags = IPFLAG_DONT_FRAGMENT;
     72        if(dont_fragment){
     73                header->flags = IPFLAG_DONT_FRAGMENT;
     74        }
    6975        return EOK;
    7076}
    7177
    72 int ip_client_process_packet( packet_t packet, ip_protocol_t * protocol, ip_ttl_t * ttl, ip_tos_t * tos, int * dont_fragment, size_t * ipopt_length ){
    73         ip_header_ref   header;
     78int ip_client_process_packet(packet_t packet, ip_protocol_t * protocol, ip_ttl_t * ttl, ip_tos_t * tos, int * dont_fragment, size_t * ipopt_length){
     79        ip_header_ref header;
    7480
    75         header = ( ip_header_ref ) packet_get_data( packet );
    76         if(( ! header )
    77         || ( packet_get_data_length( packet ) < sizeof( ip_header_t ))){
     81        header = (ip_header_ref) packet_get_data(packet);
     82        if((! header)
     83                || (packet_get_data_length(packet) < sizeof(ip_header_t))){
    7884                return ENOMEM;
    7985        }
    80         if( protocol ) * protocol = header->protocol;
    81         if( ttl ) * ttl = header->ttl;
    82         if( tos ) * tos = header->tos;
    83         if( dont_fragment ) * dont_fragment = header->flags & IPFLAG_DONT_FRAGMENT;
    84         if( ipopt_length ){
    85                 * ipopt_length = IP_HEADER_LENGTH( header ) - sizeof( ip_header_t );
    86                 return sizeof( ip_header_t );
     86        if(protocol){
     87                *protocol = header->protocol;
     88        }
     89        if(ttl){
     90                *ttl = header->ttl;
     91        }
     92        if(tos){
     93                *tos = header->tos;
     94        }
     95        if(dont_fragment){
     96                *dont_fragment = header->flags &IPFLAG_DONT_FRAGMENT;
     97        }
     98        if(ipopt_length){
     99                *ipopt_length = IP_HEADER_LENGTH(header) - sizeof(ip_header_t);
     100                return sizeof(ip_header_t);
    87101        }else{
    88                 return IP_HEADER_LENGTH( header );
     102                return IP_HEADER_LENGTH(header);
    89103        }
    90104}
    91105
    92 size_t ip_client_header_length( packet_t packet ){
    93         ip_header_ref   header;
     106size_t ip_client_header_length(packet_t packet){
     107        ip_header_ref header;
    94108
    95         header = ( ip_header_ref ) packet_get_data( packet );
    96         if(( ! header )
    97         || ( packet_get_data_length( packet ) < sizeof( ip_header_t ))){
     109        header = (ip_header_ref) packet_get_data(packet);
     110        if((! header)
     111                || (packet_get_data_length(packet) < sizeof(ip_header_t))){
    98112                return 0;
    99113        }
    100         return IP_HEADER_LENGTH( header );
     114        return IP_HEADER_LENGTH(header);
    101115}
    102116
    103 int ip_client_set_pseudo_header_data_length( ip_pseudo_header_ref header, size_t headerlen, size_t data_length ){
    104         ipv4_pseudo_header_ref  header_in;
     117int ip_client_set_pseudo_header_data_length(ip_pseudo_header_ref header, size_t headerlen, size_t data_length){
     118        ipv4_pseudo_header_ref header_in;
    105119
    106         if( ! header ) return EBADMEM;
    107         if( headerlen == sizeof( ipv4_pseudo_header_t )){
    108                 header_in = ( ipv4_pseudo_header_ref ) header;
    109                 header_in->data_length = htons( data_length );
     120        if(! header){
     121                return EBADMEM;
     122        }
     123        if(headerlen == sizeof(ipv4_pseudo_header_t)){
     124                header_in = (ipv4_pseudo_header_ref) header;
     125                header_in->data_length = htons(data_length);
    110126                return EOK;
    111127        }else{
     
    114130}
    115131
    116 int ip_client_get_pseudo_header( ip_protocol_t protocol, struct sockaddr * src, socklen_t srclen, struct sockaddr * dest, socklen_t destlen, size_t data_length, ip_pseudo_header_ref * header, size_t * headerlen ){
    117         ipv4_pseudo_header_ref  header_in;
    118         struct sockaddr_in *    address_in;
     132int ip_client_get_pseudo_header(ip_protocol_t protocol, struct sockaddr * src, socklen_t srclen, struct sockaddr * dest, socklen_t destlen, size_t data_length, ip_pseudo_header_ref * header, size_t * headerlen){
     133        ipv4_pseudo_header_ref header_in;
     134        struct sockaddr_in * address_in;
    119135
    120         if( !( header && headerlen )) return EBADMEM;
    121         if( !( src && dest && ( srclen > 0 ) && (( size_t ) srclen >= sizeof( struct sockaddr )) && ( srclen == destlen ) && ( src->sa_family == dest->sa_family ))) return EINVAL;
    122         switch( src->sa_family ){
     136        if(!(header && headerlen)){
     137                return EBADMEM;
     138        }
     139        if(!(src && dest && (srclen > 0) && ((size_t) srclen >= sizeof(struct sockaddr)) && (srclen == destlen) && (src->sa_family == dest->sa_family))){
     140                return EINVAL;
     141        }
     142        switch(src->sa_family){
    123143                case AF_INET:
    124                         if( srclen != sizeof( struct sockaddr_in )) return EINVAL;
    125                         * headerlen = sizeof( * header_in );
    126                         header_in = ( ipv4_pseudo_header_ref ) malloc( * headerlen );
    127                         if( ! header_in ) return ENOMEM;
    128                         bzero( header_in, * headerlen );
    129                         address_in = ( struct sockaddr_in * ) dest;
     144                        if(srclen != sizeof(struct sockaddr_in)){
     145                                return EINVAL;
     146                        }
     147                        *headerlen = sizeof(*header_in);
     148                        header_in = (ipv4_pseudo_header_ref) malloc(*headerlen);
     149                        if(! header_in){
     150                                return ENOMEM;
     151                        }
     152                        bzero(header_in, * headerlen);
     153                        address_in = (struct sockaddr_in *) dest;
    130154                        header_in->destination_address = address_in->sin_addr.s_addr;
    131                         address_in = ( struct sockaddr_in * ) src;
     155                        address_in = (struct sockaddr_in *) src;
    132156                        header_in->source_address = address_in->sin_addr.s_addr;
    133157                        header_in->protocol = protocol;
    134                         header_in->data_length = htons( data_length );
    135                         * header = ( ip_pseudo_header_ref ) header_in;
     158                        header_in->data_length = htons(data_length);
     159                        *header = (ip_pseudo_header_ref) header_in;
    136160                        return EOK;
    137161                // TODO IPv6
    138162/*              case AF_INET6:
    139                         if( addrlen != sizeof( struct sockaddr_in6 )) return EINVAL;
    140                         address_in6 = ( struct sockaddr_in6 * ) addr;
     163                        if(addrlen != sizeof(struct sockaddr_in6)){
     164                                return EINVAL;
     165                        }
     166                        address_in6 = (struct sockaddr_in6 *) addr;
    141167                        return EOK;
    142168*/              default:
Note: See TracChangeset for help on using the changeset viewer.