Subversion Repositories HelenOS

Rev

Rev 4261 | Rev 4307 | 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