Ignore:
File:
1 edited

Legend:

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

    r6b82009 r9934f7d  
    118118
    119119/** Global data */
    120 static async_sess_t *net_sess = NULL;
    121 static async_sess_t *ip_sess = NULL;
     120static int phone_net = -1;
     121static int phone_ip = -1;
    122122static bool error_reporting = true;
    123123static bool echo_replying = true;
     
    173173static void icmp_release(packet_t *packet)
    174174{
    175         pq_release_remote(net_sess, packet_get_id(packet));
     175        pq_release_remote(phone_net, packet_get_id(packet));
    176176}
    177177
     
    225225        }
    226226       
    227         return ip_send_msg(ip_sess, -1, packet, SERVICE_ICMP, error);
     227        return ip_send_msg(phone_ip, -1, packet, SERVICE_ICMP, error);
    228228}
    229229
     
    297297        size_t length = (size_t) addrlen;
    298298       
    299         packet_t *packet = packet_get_4_remote(net_sess, size,
     299        packet_t *packet = packet_get_4_remote(phone_net, size,
    300300            icmp_dimension.addr_len, ICMP_HEADER_SIZE + icmp_dimension.prefix,
    301301            icmp_dimension.suffix);
     
    595595        case ICMP_SKIP:
    596596        case ICMP_PHOTURIS:
    597                 ip_received_error_msg(ip_sess, -1, packet,
     597                ip_received_error_msg(phone_ip, -1, packet,
    598598                    SERVICE_IP, SERVICE_ICMP);
    599599                return EOK;
     
    609609 * @param[in,out] icall Message parameters.
    610610 * @param[in]     arg   Local argument.
    611  *
    612611 */
    613612static void icmp_receiver(ipc_callid_t iid, ipc_call_t *icall, void *arg)
     
    622621                switch (IPC_GET_IMETHOD(*icall)) {
    623622                case NET_TL_RECEIVED:
    624                         rc = packet_translate_remote(net_sess, &packet,
     623                        rc = packet_translate_remote(phone_net, &packet,
    625624                            IPC_GET_PACKET(*icall));
    626625                        if (rc == EOK) {
     
    642641/** Initialize the ICMP module.
    643642 *
    644  * @param[in] sess Network module session.
     643 * @param[in] net_phone Network module phone.
    645644 *
    646645 * @return EOK on success.
     
    648647 *
    649648 */
    650 int tl_initialize(async_sess_t *sess)
     649int tl_initialize(int net_phone)
    651650{
    652651        measured_string_t names[] = {
     
    670669        atomic_set(&icmp_client, 0);
    671670       
    672         net_sess = sess;
    673         ip_sess = ip_bind_service(SERVICE_IP, IPPROTO_ICMP, SERVICE_ICMP,
     671        phone_net = net_phone;
     672        phone_ip = ip_bind_service(SERVICE_IP, IPPROTO_ICMP, SERVICE_ICMP,
    674673            icmp_receiver);
    675         if (ip_sess == NULL)
    676                 return ENOENT;
    677        
    678         int rc = ip_packet_size_req(ip_sess, -1, &icmp_dimension);
     674        if (phone_ip < 0)
     675                return phone_ip;
     676       
     677        int rc = ip_packet_size_req(phone_ip, -1, &icmp_dimension);
    679678        if (rc != EOK)
    680679                return rc;
     
    685684        /* Get configuration */
    686685        configuration = &names[0];
    687         rc = net_get_conf_req(net_sess, &configuration, count, &data);
     686        rc = net_get_conf_req(phone_net, &configuration, count, &data);
    688687        if (rc != EOK)
    689688                return rc;
     
    763762       
    764763        case NET_ICMP_DEST_UNREACH:
    765                 rc = packet_translate_remote(net_sess, &packet,
     764                rc = packet_translate_remote(phone_net, &packet,
    766765                    IPC_GET_PACKET(*call));
    767766                if (rc != EOK)
     
    772771       
    773772        case NET_ICMP_SOURCE_QUENCH:
    774                 rc = packet_translate_remote(net_sess, &packet,
     773                rc = packet_translate_remote(phone_net, &packet,
    775774                    IPC_GET_PACKET(*call));
    776775                if (rc != EOK)
     
    780779       
    781780        case NET_ICMP_TIME_EXCEEDED:
    782                 rc = packet_translate_remote(net_sess, &packet,
     781                rc = packet_translate_remote(phone_net, &packet,
    783782                    IPC_GET_PACKET(*call));
    784783                if (rc != EOK)
     
    788787       
    789788        case NET_ICMP_PARAMETERPROB:
    790                 rc = packet_translate_remote(net_sess, &packet,
     789                rc = packet_translate_remote(phone_net, &packet,
    791790                    IPC_GET_PACKET(*call));
    792791                if (rc != EOK)
Note: See TracChangeset for help on using the changeset viewer.