Changeset 45aa22c in mainline for uspace/srv/inet/inetcfg.c
- Timestamp:
- 2012-03-07T23:05:42Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- a88a6eac
- Parents:
- 0e25780
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/inet/inetcfg.c
r0e25780 r45aa22c 35 35 */ 36 36 37 #include <adt/list.h>38 37 #include <async.h> 39 38 #include <errno.h> 40 39 #include <macros.h> 41 #include <fibril_synch.h>42 40 #include <io/log.h> 43 41 #include <ipc/inet.h> 44 #include <ipc/services.h>45 42 #include <loc.h> 46 #include <stdio.h>47 43 #include <stdlib.h> 48 44 #include <sys/types.h> 49 45 46 #include "addrobj.h" 50 47 #include "inet.h" 48 #include "inet_link.h" 51 49 #include "inetcfg.h" 52 50 53 static int inetcfg_addr_create_static(inet_naddr_t *naddr, sysarg_t *addr_id) 54 { 55 return ENOTSUP; 51 static int inetcfg_addr_create_static(inet_naddr_t *naddr, sysarg_t link_id, 52 sysarg_t *addr_id) 53 { 54 inet_link_t *ilink; 55 inet_addrobj_t *addr; 56 iplink_addr_t iaddr; 57 int rc; 58 59 ilink = inet_link_get_by_id(link_id); 60 if (ilink == NULL) { 61 log_msg(LVL_DEBUG, "Link %lu not found.", 62 (unsigned long) link_id); 63 return ENOENT; 64 } 65 66 addr = inet_addrobj_new(); 67 addr->naddr = *naddr; 68 addr->ilink = ilink; 69 inet_addrobj_add(addr); 70 71 iaddr.ipv4 = addr->naddr.ipv4; 72 rc = iplink_addr_add(ilink->iplink, &iaddr); 73 if (rc != EOK) { 74 log_msg(LVL_ERROR, "Failed setting IP address on internet link."); 75 inet_addrobj_remove(addr); 76 inet_addrobj_delete(addr); 77 return rc; 78 } 79 80 return EOK; 56 81 } 57 82 … … 85 110 { 86 111 inet_naddr_t naddr; 112 sysarg_t link_id; 87 113 sysarg_t addr_id; 88 114 int rc; … … 92 118 naddr.ipv4 = IPC_GET_ARG1(*call); 93 119 naddr.bits = IPC_GET_ARG2(*call); 120 link_id = IPC_GET_ARG3(*call); 94 121 95 122 addr_id = 0; 96 rc = inetcfg_addr_create_static(&naddr, &addr_id);123 rc = inetcfg_addr_create_static(&naddr, link_id, &addr_id); 97 124 async_answer_1(callid, rc, addr_id); 98 125 }
Note:
See TracChangeset
for help on using the changeset viewer.