Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/net/tl/tcp/tcp.c

    r79ae36dd r28a3e74  
    3838#include <assert.h>
    3939#include <async.h>
    40 #include <async_obsolete.h>
    4140#include <fibril_synch.h>
    4241#include <malloc.h>
     
    7372#include "tcp.h"
    7473#include "tcp_header.h"
    75 
    76 // FIXME: remove this header
    77 #include <kernel/ipc/ipc_methods.h>
    7874
    7975/** TCP module name. */
     
    480476        old_incoming = socket_data->next_incoming;
    481477
    482         if (GET_TCP_HEADER_FINALIZE(header)) {
     478        if (header->finalize) {
    483479                socket_data->fin_incoming = new_sequence_number +
    484480                    total_length - TCP_HEADER_LENGTH(header);
     
    803799
    804800        /* Notify the destination socket */
    805         async_obsolete_msg_5(socket->phone, NET_SOCKET_RECEIVED,
     801        async_msg_5(socket->phone, NET_SOCKET_RECEIVED,
    806802            (sysarg_t) socket->socket_id,
    807803            ((packet_dimension->content < socket_data->data_fragment_size) ?
     
    824820
    825821        /* Notify the destination socket */
    826         async_obsolete_msg_5(socket->phone, NET_SOCKET_RECEIVED,
     822        async_msg_5(socket->phone, NET_SOCKET_RECEIVED,
    827823            (sysarg_t) socket->socket_id,
    828824            0, 0, 0,
     
    842838        assert(packet);
    843839
    844         if (!GET_TCP_HEADER_SYNCHRONIZE(header))
     840        if (!header->synchronize)
    845841                return tcp_release_and_return(packet, EINVAL);
    846842       
     
    907903        assert(packet);
    908904
    909         if (!GET_TCP_HEADER_SYNCHRONIZE(header))
     905        if (!header->synchronize)
    910906                return tcp_release_and_return(packet, EINVAL);
    911907
     
    10611057        assert(packet);
    10621058
    1063         if (!GET_TCP_HEADER_ACKNOWLEDGE(header))
     1059        if (!header->acknowledge)
    10641060                return tcp_release_and_return(packet, EINVAL);
    10651061
     
    10821078                if (rc == EOK) {
    10831079                        /* Notify the destination socket */
    1084                         async_obsolete_msg_5(socket->phone, NET_SOCKET_ACCEPTED,
     1080                        async_msg_5(socket->phone, NET_SOCKET_ACCEPTED,
    10851081                            (sysarg_t) listening_socket->socket_id,
    10861082                            socket_data->data_fragment_size, TCP_HEADER_SIZE,
     
    11301126        assert(header);
    11311127
    1132         if (!GET_TCP_HEADER_ACKNOWLEDGE(header))
     1128        if (!header->acknowledge)
    11331129                return;
    11341130
     
    12731269{
    12741270        int res;
     1271        bool keep_on_going = true;
    12751272        socket_cores_t local_sockets;
    12761273        int app_phone = IPC_GET_PHONE(call);
     
    12961293        fibril_rwlock_initialize(&lock);
    12971294
    1298         while (true) {
     1295        while (keep_on_going) {
    12991296
    13001297                /* Answer the call */
     
    13041301                /* Get the next call */
    13051302                callid = async_get_call(&call);
    1306                
    1307                 if (!IPC_GET_IMETHOD(call)) {
     1303
     1304                /* Process the call */
     1305                switch (IPC_GET_IMETHOD(call)) {
     1306                case IPC_M_PHONE_HUNGUP:
     1307                        keep_on_going = false;
    13081308                        res = EHANGUP;
    13091309                        break;
    1310                 }
    1311 
    1312                 /* Process the call */
    1313                 switch (IPC_GET_IMETHOD(call)) {
     1310
    13141311                case NET_SOCKET:
    13151312                        socket_data =
     
    15091506
    15101507        /* Release the application phone */
    1511         async_obsolete_hangup(app_phone);
     1508        async_hangup(app_phone);
    15121509
    15131510        printf("release\n");
     
    18361833
    18371834        /* Remember the outgoing FIN */
    1838         if (GET_TCP_HEADER_FINALIZE(header))
     1835        if (header->finalize)
    18391836                socket_data->fin_outgoing = socket_data->next_outgoing;
    18401837       
     
    19551952                header->acknowledgement_number =
    19561953                    htonl(socket_data->next_incoming);
    1957                 SET_TCP_HEADER_ACKNOWLEDGE(header, 1);
     1954                header->acknowledge = 1;
    19581955        }
    19591956        header->window = htons(socket_data->window);
     
    20272024        header->source_port = htons(socket->port);
    20282025        header->source_port = htons(socket_data->dest_port);
    2029         SET_TCP_HEADER_LENGTH(header,
    2030             TCP_COMPUTE_HEADER_LENGTH(sizeof(*header)));
    2031         SET_TCP_HEADER_SYNCHRONIZE(header, synchronize);
    2032         SET_TCP_HEADER_FINALIZE(header, finalize);
     2026        header->header_length = TCP_COMPUTE_HEADER_LENGTH(sizeof(*header));
     2027        header->synchronize = synchronize;
     2028        header->finalize = finalize;
    20332029}
    20342030
Note: See TracChangeset for help on using the changeset viewer.