Changes in uspace/srv/net/udp/pdu.c [8d48c7e:f023251] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/net/udp/pdu.c
r8d48c7e rf023251 1 1 /* 2 * Copyright (c) 201 5Jiri Svoboda2 * Copyright (c) 2012 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 41 41 #include <stdlib.h> 42 42 #include <inet/addr.h> 43 #include <net/socket_codes.h> 43 44 #include "msg.h" 44 45 #include "pdu.h" … … 162 163 163 164 /** Decode incoming PDU */ 164 int udp_pdu_decode(udp_pdu_t *pdu, inet_ep2_t *epp, udp_msg_t **msg)165 int udp_pdu_decode(udp_pdu_t *pdu, udp_sockpair_t *sp, udp_msg_t **msg) 165 166 { 166 167 udp_msg_t *nmsg; … … 179 180 hdr = (udp_header_t *)pdu->data; 180 181 181 epp->local_link = pdu->iplink; 182 epp->remote.port = uint16_t_be2host(hdr->src_port); 183 epp->remote.addr = pdu->src; 184 epp->local.port = uint16_t_be2host(hdr->dest_port); 185 epp->local.addr = pdu->dest; 182 sp->foreign.port = uint16_t_be2host(hdr->src_port); 183 sp->foreign.addr = pdu->src; 184 sp->local.port = uint16_t_be2host(hdr->dest_port); 185 sp->local.addr = pdu->dest; 186 186 187 187 length = uint16_t_be2host(hdr->length); … … 197 197 return ENOMEM; 198 198 199 nmsg->data = text; 199 200 nmsg->data_size = length - sizeof(udp_header_t); 200 nmsg->data = malloc(nmsg->data_size);201 if (nmsg->data == NULL)202 return ENOMEM;203 204 memcpy(nmsg->data, text, nmsg->data_size);205 201 206 202 *msg = nmsg; … … 209 205 210 206 /** Encode outgoing PDU */ 211 int udp_pdu_encode( inet_ep2_t *epp, udp_msg_t *msg, udp_pdu_t **pdu)207 int udp_pdu_encode(udp_sockpair_t *sp, udp_msg_t *msg, udp_pdu_t **pdu) 212 208 { 213 209 udp_pdu_t *npdu; … … 219 215 return ENOMEM; 220 216 221 npdu->iplink = epp->local_link;222 npdu->src = epp->local.addr;223 npdu->dest = epp->remote.addr;217 npdu->iplink = sp->iplink; 218 npdu->src = sp->local.addr; 219 npdu->dest = sp->foreign.addr; 224 220 225 221 npdu->data_size = sizeof(udp_header_t) + msg->data_size; … … 231 227 232 228 hdr = (udp_header_t *)npdu->data; 233 hdr->src_port = host2uint16_t_be( epp->local.port);234 hdr->dest_port = host2uint16_t_be( epp->remote.port);229 hdr->src_port = host2uint16_t_be(sp->local.port); 230 hdr->dest_port = host2uint16_t_be(sp->foreign.port); 235 231 hdr->length = host2uint16_t_be(npdu->data_size); 236 232 hdr->checksum = 0;
Note:
See TracChangeset
for help on using the changeset viewer.