Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/net/udp/assoc.c

    r89ba88c r498ced1  
    4040#include <fibril_synch.h>
    4141#include <inet/endpoint.h>
     42#include <inet/inet.h>
    4243#include <io/log.h>
    4344#include <nettl/amap.h>
     
    4748#include "msg.h"
    4849#include "pdu.h"
     50#include "udp_inet.h"
    4951#include "udp_type.h"
    5052
     
    5557static udp_assoc_t *udp_assoc_find_ref(inet_ep2_t *);
    5658static errno_t udp_assoc_queue_msg(udp_assoc_t *, inet_ep2_t *, udp_msg_t *);
    57 static udp_assocs_dep_t *assocs_dep;
    5859
    5960/** Initialize associations. */
    60 errno_t udp_assocs_init(udp_assocs_dep_t *dep)
     61errno_t udp_assocs_init(void)
    6162{
    6263        errno_t rc;
     
    6869        }
    6970
    70         assocs_dep = dep;
    7171        return EOK;
    72 }
    73 
    74 /** Finalize associations. */
    75 void udp_assocs_fini(void)
    76 {
    77         assert(list_empty(&assoc_list));
    78 
    79         amap_destroy(amap);
    80         amap = NULL;
    8172}
    8273
     
    183174
    184175        assert(assoc->deleted == false);
     176        udp_assoc_delref(assoc);
    185177        assoc->deleted = true;
    186         udp_assoc_delref(assoc);
    187178}
    188179
     
    253244errno_t udp_assoc_send(udp_assoc_t *assoc, inet_ep_t *remote, udp_msg_t *msg)
    254245{
     246        udp_pdu_t *pdu;
    255247        inet_ep2_t epp;
    256248        errno_t rc;
     
    274266        if (inet_addr_is_any(&epp.local.addr) && !assoc->nolocal) {
    275267                log_msg(LOG_DEFAULT, LVL_DEBUG, "Determine local address.");
    276                 rc = (*assocs_dep->get_srcaddr)(&epp.remote.addr, 0,
    277                     &epp.local.addr);
     268                rc = inet_get_srcaddr(&epp.remote.addr, 0, &epp.local.addr);
    278269                if (rc != EOK) {
    279270                        log_msg(LOG_DEFAULT, LVL_DEBUG, "Cannot determine "
     
    289280                return EINVAL;
    290281
     282        log_msg(LOG_DEFAULT, LVL_DEBUG, "udp_assoc_send - encode pdu");
     283
     284        rc = udp_pdu_encode(&epp, msg, &pdu);
     285        if (rc != EOK)
     286                return ENOMEM;
     287
    291288        log_msg(LOG_DEFAULT, LVL_DEBUG, "udp_assoc_send - transmit");
    292         rc = (*assocs_dep->transmit_msg)(&epp, msg);
     289
     290        rc = udp_transmit_pdu(pdu);
     291        udp_pdu_delete(pdu);
    293292
    294293        if (rc != EOK)
Note: See TracChangeset for help on using the changeset viewer.