Changeset 02a09ed in mainline for uspace/srv/net/inetsrv/inet_link.c
- Timestamp:
- 2013-06-28T20:20:03Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 1d24ad3
- Parents:
- edf0d27
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/net/inetsrv/inet_link.c
redf0d27 r02a09ed 43 43 #include <stdlib.h> 44 44 #include <str.h> 45 45 #include <net/socket_codes.h> 46 46 #include "addrobj.h" 47 47 #include "inetsrv.h" … … 49 49 #include "pdu.h" 50 50 51 static int inet_link_open(service_id_t sid);52 static int inet_iplink_recv(iplink_t * ilink, iplink_sdu_t *sdu);51 static int inet_link_open(service_id_t); 52 static int inet_iplink_recv(iplink_t *, iplink_recv_sdu_t *, uint16_t); 53 53 54 54 static iplink_ev_ops_t inet_iplink_ev_ops = { … … 59 59 static FIBRIL_MUTEX_INITIALIZE(inet_discovery_lock); 60 60 61 static int inet_iplink_recv(iplink_t *iplink, iplink_sdu_t *sdu) 62 { 61 static int inet_iplink_recv(iplink_t *iplink, iplink_recv_sdu_t *sdu, uint16_t af) 62 { 63 log_msg(LOG_DEFAULT, LVL_DEBUG, "inet_iplink_recv()"); 64 65 int rc; 63 66 inet_packet_t packet; 64 int rc; 65 66 log_msg(LOG_DEFAULT, LVL_DEBUG, "inet_iplink_recv()"); 67 rc = inet_pdu_decode(sdu->data, sdu->size, &packet); 67 68 switch (af) { 69 case AF_INET: 70 rc = inet_pdu_decode(sdu->data, sdu->size, &packet); 71 break; 72 case AF_INET6: 73 // FIXME TODO 74 return ENOTSUP; 75 default: 76 log_msg(LOG_DEFAULT, LVL_DEBUG, "invalid address family"); 77 return EINVAL; 78 } 79 68 80 if (rc != EOK) { 69 81 log_msg(LOG_DEFAULT, LVL_DEBUG, "failed decoding PDU"); … … 228 240 229 241 return EOK; 230 242 231 243 error: 232 244 if (ilink->iplink != NULL) … … 277 289 278 290 iplink_sdu_t sdu; 279 280 int rc = inet_addr_pack(lsrc, &sdu.lsrc);281 if (rc != EOK)282 return rc;283 284 rc = inet_addr_pack(ldest, &sdu.ldest);285 if (rc != EOK)286 return rc;287 288 291 size_t offs = 0; 292 int rc; 293 294 sdu.src = *lsrc; 295 sdu.dest = *ldest; 296 289 297 do { 298 /* Encode one fragment */ 290 299 size_t roffs; 291 292 /* Encode one fragment */293 300 rc = inet_pdu_encode(&packet, offs, ilink->def_mtu, &sdu.data, 294 301 &sdu.size, &roffs);
Note:
See TracChangeset
for help on using the changeset viewer.