Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/net/modules.c

    rbc9da2a r7fb2ce3  
    5555
    5656int connect_to_service_timeout( services_t need, suseconds_t timeout ){
    57         if (timeout <= 0)
    58                 return async_connect_me_to_blocking( PHONE_NS, need, 0, 0);
    59        
     57        ipcarg_t phone;
     58        int res;
     59
    6060        while( true ){
    61                 int phone;
    62 
    63                 phone = async_connect_me_to( PHONE_NS, need, 0, 0);
    64                 if( (phone >= 0) || (phone != ENOENT) )
     61                res = async_req_3_5( PHONE_NS, IPC_M_CONNECT_ME_TO, need, 0, 0, NULL, NULL, NULL, NULL, & phone );
     62                if( res >= 0 ){
    6563                        return phone;
    66        
    67                 timeout -= MODULE_WAIT_TIME;
    68                 if( timeout <= 0 ) return ETIMEOUT;
    69 
     64                }
     65                if( timeout > 0 ){
     66                        timeout -= MODULE_WAIT_TIME;
     67                        if( timeout <= 0 ) return ETIMEOUT;
     68                }
    7069                usleep( MODULE_WAIT_TIME );
    7170        }
     
    8584        if( phone >= 0 ){
    8685                if( ERROR_OCCURRED( ipc_connect_to_me( phone, arg1, arg2, arg3, & phonehash ))){
    87                         ipc_hangup( phone );
     86                        async_msg_0( phone, IPC_M_PHONE_HUNGUP );
    8887                        return ERROR_CODE;
    8988                }
Note: See TracChangeset for help on using the changeset viewer.