Changeset ee603c4 in mainline for uspace/srv/udp/ucall.c


Ignore:
Timestamp:
2012-04-04T21:10:22Z (13 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
92b42442
Parents:
4794417
Message:

UDP associations, sending datagrams.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/udp/ucall.c

    r4794417 ree603c4  
    3737#include <io/log.h>
    3838
    39 //#include "conn.h"
     39#include "assoc.h"
    4040#include "udp_type.h"
    4141#include "ucall.h"
     
    4343udp_error_t udp_uc_create(udp_assoc_t **assoc)
    4444{
    45 //      udo_assoc_t *nassoc;
     45        udp_assoc_t *nassoc;
    4646
    4747        log_msg(LVL_DEBUG, "udp_uc_create()");
     48        nassoc = udp_assoc_new(NULL, NULL);
     49        if (nassoc == NULL)
     50                return UDP_ENORES;
    4851
     52        udp_assoc_add(nassoc);
     53        *assoc = nassoc;
    4954        return UDP_EOK;
    5055}
     
    5257udp_error_t udp_uc_set_foreign(udp_assoc_t *assoc, udp_sock_t *fsock)
    5358{
    54 //      udo_assoc_t *nconn;
    55 
    5659        log_msg(LVL_DEBUG, "udp_uc_set_foreign(%p, %p)", assoc, fsock);
    5760
     61        udp_assoc_set_foreign(assoc, fsock);
    5862        return UDP_EOK;
    5963}
     
    6165udp_error_t udp_uc_set_local(udp_assoc_t *assoc, udp_sock_t *lsock)
    6266{
    63 //      udo_assoc_t *nconn;
    64 
    6567        log_msg(LVL_DEBUG, "udp_uc_set_local(%p, %p)", assoc, lsock);
    6668
     69        udp_assoc_set_local(assoc, lsock);
    6770        return UDP_EOK;
    6871}
     
    7174    size_t size, xflags_t flags)
    7275{
     76        int rc;
     77        udp_msg_t msg;
     78
    7379        log_msg(LVL_DEBUG, "%s: udp_uc_send()", assoc->name);
     80
     81        msg.data = data;
     82        msg.data_size = size;
     83
     84        rc = udp_assoc_send(assoc, fsock, &msg);
     85        switch (rc) {
     86        case ENOMEM:
     87                return UDP_ENORES;
     88        case EINVAL:
     89                return UDP_EUNSPEC;
     90        case EIO:
     91                return UDP_ENOROUTE;
     92        }
    7493        return UDP_EOK;
    7594}
     
    92111void udp_uc_destroy(udp_assoc_t *assoc)
    93112{
    94         log_msg(LVL_DEBUG, "udp_uc_delete()");
    95 //      udp_assoc_destroy(assoc);
     113        log_msg(LVL_DEBUG, "udp_uc_destroy()");
     114        udp_assoc_remove(assoc);
     115        udp_assoc_delete(assoc);
    96116}
    97117
Note: See TracChangeset for help on using the changeset viewer.