Rev 4261 | Rev 4350 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4261 | Rev 4271 | ||
---|---|---|---|
Line 143... | Line 143... | ||
143 | measured_string_t translation; |
143 | measured_string_t translation; |
144 | 144 | ||
145 | if( !( address && data )) return EBADMEM; |
145 | if( !( address && data )) return EBADMEM; |
146 | rwlock_read_lock( & netif_globals.lock ); |
146 | rwlock_read_lock( & netif_globals.lock ); |
147 | if( ! ERROR_OCCURRED( netif_get_addr_message( device_id, & translation ))){ |
147 | if( ! ERROR_OCCURRED( netif_get_addr_message( device_id, & translation ))){ |
148 | // * address = measured_string_create_bulk( translation.value, translation.length ); |
148 | * address = measured_string_copy( & translation ); |
149 | * address = ( measured_string_ref ) malloc( sizeof( measured_string_t )); |
- | |
150 | if( * address ){ |
- | |
151 | * data = ( char * ) malloc( translation.length + 1 ); |
- | |
152 | if( * data ){ |
- | |
153 | memcpy( * data, translation.value, translation.length + 1 ); |
- | |
154 | ( ** address ).value = * data; |
- | |
155 | ( ** address ).length = translation.length; |
- | |
156 | rwlock_read_unlock( & netif_globals.lock ); |
- | |
157 | return EOK; |
- | |
158 | } |
- | |
159 | free( * address ); |
- | |
160 | } |
- | |
161 | ERROR_CODE = ENOMEM; |
149 | ERROR_CODE = ( * address ) ? EOK : ENOMEM; |
162 | } |
150 | } |
163 | rwlock_read_unlock( & netif_globals.lock ); |
151 | rwlock_read_unlock( & netif_globals.lock ); |
164 | return ERROR_CODE; |
152 | return ERROR_CODE; |
165 | } |
153 | } |
166 | 154 |