Changeset ce1836e in mainline for uspace/srv/net
- Timestamp:
- 2012-05-15T19:51:06Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 2bd578a
- Parents:
- 6df2202 (diff), bf9e6fc (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Location:
- uspace/srv/net/inetsrv
- Files:
-
- 23 moved
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/net/inetsrv/Makefile
r6df2202 rce1836e 28 28 29 29 USPACE_PREFIX = ../../.. 30 BINARY = inet 30 BINARY = inetsrv 31 31 32 32 SOURCES = \ 33 33 addrobj.c \ 34 34 icmp.c \ 35 inet .c \35 inetsrv.c \ 36 36 inet_link.c \ 37 37 inet_util.c \ -
uspace/srv/net/inetsrv/addrobj.c
r6df2202 rce1836e 44 44 45 45 #include "addrobj.h" 46 #include "inet .h"46 #include "inetsrv.h" 47 47 #include "inet_link.h" 48 48 #include "inet_util.h" 49 50 static inet_addrobj_t *inet_addrobj_find_by_name_locked(const char *, inet_link_t *); 49 51 50 52 static FIBRIL_MUTEX_INITIALIZE(addr_list_lock); … … 77 79 } 78 80 79 void inet_addrobj_add(inet_addrobj_t *addr) 80 { 81 fibril_mutex_lock(&addr_list_lock); 81 int inet_addrobj_add(inet_addrobj_t *addr) 82 { 83 inet_addrobj_t *aobj; 84 85 fibril_mutex_lock(&addr_list_lock); 86 aobj = inet_addrobj_find_by_name_locked(addr->name, addr->ilink); 87 if (aobj != NULL) { 88 /* Duplicate address name */ 89 fibril_mutex_unlock(&addr_list_lock); 90 return EEXISTS; 91 } 92 82 93 list_append(&addr->addr_list, &addr_list); 83 94 fibril_mutex_unlock(&addr_list_lock); 95 96 return EOK; 84 97 } 85 98 … … 130 143 * @return Address object 131 144 */ 132 inet_addrobj_t *inet_addrobj_find_by_name(const char *name, inet_link_t *ilink) 133 { 134 log_msg(LVL_DEBUG, "inet_addrobj_find_by_name('%s', '%s')", 145 static inet_addrobj_t *inet_addrobj_find_by_name_locked(const char *name, inet_link_t *ilink) 146 { 147 assert(fibril_mutex_is_locked(&addr_list_lock)); 148 149 log_msg(LVL_DEBUG, "inet_addrobj_find_by_name_locked('%s', '%s')", 135 150 name, ilink->svc_name); 136 151 137 fibril_mutex_lock(&addr_list_lock);138 139 152 list_foreach(addr_list, link) { 140 153 inet_addrobj_t *naddr = list_get_instance(link, … … 142 155 143 156 if (naddr->ilink == ilink && str_cmp(naddr->name, name) == 0) { 144 fibril_mutex_unlock(&addr_list_lock); 145 log_msg(LVL_DEBUG, "inet_addrobj_find_by_name: found %p", 157 log_msg(LVL_DEBUG, "inet_addrobj_find_by_name_locked: found %p", 146 158 naddr); 147 159 return naddr; … … 149 161 } 150 162 151 log_msg(LVL_DEBUG, "inet_addrobj_find_by_name: Not found"); 152 fibril_mutex_unlock(&addr_list_lock); 163 log_msg(LVL_DEBUG, "inet_addrobj_find_by_name_locked: Not found"); 153 164 154 165 return NULL; 166 } 167 168 169 /** Find address object on a link, with a specific name. 170 * 171 * @param name Address object name 172 * @param ilink Inet link 173 * @return Address object 174 */ 175 inet_addrobj_t *inet_addrobj_find_by_name(const char *name, inet_link_t *ilink) 176 { 177 inet_addrobj_t *aobj; 178 179 log_msg(LVL_DEBUG, "inet_addrobj_find_by_name('%s', '%s')", 180 name, ilink->svc_name); 181 182 fibril_mutex_lock(&addr_list_lock); 183 aobj = inet_addrobj_find_by_name_locked(name, ilink); 184 fibril_mutex_unlock(&addr_list_lock); 185 186 return aobj; 155 187 } 156 188 -
uspace/srv/net/inetsrv/addrobj.h
r6df2202 rce1836e 39 39 40 40 #include <sys/types.h> 41 #include "inet .h"41 #include "inetsrv.h" 42 42 43 43 typedef enum { … … 50 50 extern inet_addrobj_t *inet_addrobj_new(void); 51 51 extern void inet_addrobj_delete(inet_addrobj_t *); 52 extern voidinet_addrobj_add(inet_addrobj_t *);52 extern int inet_addrobj_add(inet_addrobj_t *); 53 53 extern void inet_addrobj_remove(inet_addrobj_t *); 54 54 extern inet_addrobj_t *inet_addrobj_find(inet_addr_t *, inet_addrobj_find_t); -
uspace/srv/net/inetsrv/icmp.c
r6df2202 rce1836e 43 43 #include "icmp.h" 44 44 #include "icmp_std.h" 45 #include "inet .h"45 #include "inetsrv.h" 46 46 #include "inetping.h" 47 47 #include "pdu.h" -
uspace/srv/net/inetsrv/icmp.h
r6df2202 rce1836e 38 38 #define ICMP_H_ 39 39 40 #include "inet .h"40 #include "inetsrv.h" 41 41 42 42 extern int icmp_recv(inet_dgram_t *); -
uspace/srv/net/inetsrv/inet_link.c
r6df2202 rce1836e 45 45 46 46 #include "addrobj.h" 47 #include "inet .h"47 #include "inetsrv.h" 48 48 #include "inet_link.h" 49 49 #include "pdu.h" … … 207 207 addr->ilink = ilink; 208 208 addr->name = str_dup("v4a"); 209 inet_addrobj_add(addr); 209 rc = inet_addrobj_add(addr); 210 if (rc != EOK) { 211 log_msg(LVL_ERROR, "Failed setting IP address on internet link."); 212 inet_addrobj_delete(addr); 213 /* XXX Roll back */ 214 return rc; 215 } 210 216 211 217 iaddr.ipv4 = addr->naddr.ipv4; … … 213 219 if (rc != EOK) { 214 220 log_msg(LVL_ERROR, "Failed setting IP address on internet link."); 221 inet_addrobj_remove(addr); 222 inet_addrobj_delete(addr); 215 223 /* XXX Roll back */ 216 224 return rc; -
uspace/srv/net/inetsrv/inet_link.h
r6df2202 rce1836e 39 39 40 40 #include <sys/types.h> 41 #include "inet .h"41 #include "inetsrv.h" 42 42 43 43 extern int inet_link_discovery_start(void); -
uspace/srv/net/inetsrv/inetcfg.c
r6df2202 rce1836e 46 46 47 47 #include "addrobj.h" 48 #include "inet .h"48 #include "inetsrv.h" 49 49 #include "inet_link.h" 50 50 #include "inetcfg.h" … … 75 75 addr->ilink = ilink; 76 76 addr->name = str_dup(name); 77 inet_addrobj_add(addr); 77 rc = inet_addrobj_add(addr); 78 if (rc != EOK) { 79 log_msg(LVL_DEBUG, "Duplicate address name '%s'.", addr->name); 80 inet_addrobj_delete(addr); 81 return rc; 82 } 78 83 79 84 iaddr.ipv4 = addr->naddr.ipv4; -
uspace/srv/net/inetsrv/inetping.c
r6df2202 rce1836e 46 46 #include "icmp.h" 47 47 #include "icmp_std.h" 48 #include "inet .h"48 #include "inetsrv.h" 49 49 #include "inetping.h" 50 50 -
uspace/srv/net/inetsrv/inetsrv.c
r6df2202 rce1836e 50 50 #include "icmp.h" 51 51 #include "icmp_std.h" 52 #include "inet .h"52 #include "inetsrv.h" 53 53 #include "inetcfg.h" 54 54 #include "inetping.h" … … 57 57 #include "sroute.h" 58 58 59 #define NAME "inet "59 #define NAME "inetsrv" 60 60 61 61 static void inet_client_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg); -
uspace/srv/net/inetsrv/inetsrv.h
r6df2202 rce1836e 27 27 */ 28 28 29 /** @addtogroup inet 29 /** @addtogroup inetsrv 30 30 * @{ 31 31 */ … … 35 35 */ 36 36 37 #ifndef INET _H_38 #define INET _H_37 #ifndef INETSRV_H_ 38 #define INETSRV_H_ 39 39 40 40 #include <adt/list.h> -
uspace/srv/net/inetsrv/pdu.c
r6df2202 rce1836e 45 45 #include <stdlib.h> 46 46 47 #include "inet .h"47 #include "inetsrv.h" 48 48 #include "inet_std.h" 49 49 #include "pdu.h" -
uspace/srv/net/inetsrv/pdu.h
r6df2202 rce1836e 39 39 40 40 #include <sys/types.h> 41 #include "inet .h"41 #include "inetsrv.h" 42 42 43 43 #define INET_CHECKSUM_INIT 0xffff -
uspace/srv/net/inetsrv/reass.c
r6df2202 rce1836e 42 42 #include <stdlib.h> 43 43 44 #include "inet .h"44 #include "inetsrv.h" 45 45 #include "inet_std.h" 46 46 #include "reass.h" -
uspace/srv/net/inetsrv/reass.h
r6df2202 rce1836e 39 39 40 40 #include <sys/types.h> 41 #include "inet .h"41 #include "inetsrv.h" 42 42 43 43 extern int inet_reass_queue_packet(inet_packet_t *); -
uspace/srv/net/inetsrv/sroute.c
r6df2202 rce1836e 44 44 45 45 #include "sroute.h" 46 #include "inet .h"46 #include "inetsrv.h" 47 47 #include "inet_link.h" 48 48 #include "inet_util.h" -
uspace/srv/net/inetsrv/sroute.h
r6df2202 rce1836e 39 39 40 40 #include <sys/types.h> 41 #include "inet .h"41 #include "inetsrv.h" 42 42 43 43 extern inet_sroute_t *inet_sroute_new(void);
Note:
See TracChangeset
for help on using the changeset viewer.