Changes in uspace/srv/net/udp/assoc.c [498ced1:89ba88c] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/net/udp/assoc.c
r498ced1 r89ba88c 40 40 #include <fibril_synch.h> 41 41 #include <inet/endpoint.h> 42 #include <inet/inet.h>43 42 #include <io/log.h> 44 43 #include <nettl/amap.h> … … 48 47 #include "msg.h" 49 48 #include "pdu.h" 50 #include "udp_inet.h"51 49 #include "udp_type.h" 52 50 … … 57 55 static udp_assoc_t *udp_assoc_find_ref(inet_ep2_t *); 58 56 static errno_t udp_assoc_queue_msg(udp_assoc_t *, inet_ep2_t *, udp_msg_t *); 57 static udp_assocs_dep_t *assocs_dep; 59 58 60 59 /** Initialize associations. */ 61 errno_t udp_assocs_init( void)60 errno_t udp_assocs_init(udp_assocs_dep_t *dep) 62 61 { 63 62 errno_t rc; … … 69 68 } 70 69 70 assocs_dep = dep; 71 71 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; 72 81 } 73 82 … … 174 183 175 184 assert(assoc->deleted == false); 185 assoc->deleted = true; 176 186 udp_assoc_delref(assoc); 177 assoc->deleted = true;178 187 } 179 188 … … 244 253 errno_t udp_assoc_send(udp_assoc_t *assoc, inet_ep_t *remote, udp_msg_t *msg) 245 254 { 246 udp_pdu_t *pdu;247 255 inet_ep2_t epp; 248 256 errno_t rc; … … 266 274 if (inet_addr_is_any(&epp.local.addr) && !assoc->nolocal) { 267 275 log_msg(LOG_DEFAULT, LVL_DEBUG, "Determine local address."); 268 rc = inet_get_srcaddr(&epp.remote.addr, 0, &epp.local.addr); 276 rc = (*assocs_dep->get_srcaddr)(&epp.remote.addr, 0, 277 &epp.local.addr); 269 278 if (rc != EOK) { 270 279 log_msg(LOG_DEFAULT, LVL_DEBUG, "Cannot determine " … … 280 289 return EINVAL; 281 290 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 288 291 log_msg(LOG_DEFAULT, LVL_DEBUG, "udp_assoc_send - transmit"); 289 290 rc = udp_transmit_pdu(pdu); 291 udp_pdu_delete(pdu); 292 rc = (*assocs_dep->transmit_msg)(&epp, msg); 292 293 293 294 if (rc != EOK)
Note:
See TracChangeset
for help on using the changeset viewer.