Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset bf172825 in mainline


Ignore:
Timestamp:
2011-06-21T22:32:00Z (11 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial
Children:
55091847, f1fae414
Parents:
e3a6c45
Message:

get rid of the weird timeout connection routines

Location:
uspace
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/ping/ping.c

    re3a6c45 rbf172825  
    341341            config.dest_str, config.size, config.size);
    342342       
    343         int icmp_phone = icmp_connect_module(ICMP_CONNECT_TIMEOUT);
     343        int icmp_phone = icmp_connect_module();
    344344        if (icmp_phone < 0) {
    345345                fprintf(stderr, "%s: Unable to connect to ICMP service (%s)\n", NAME,
  • uspace/lib/c/generic/net/icmp_common.c

    re3a6c45 rbf172825  
    4545/** Connect to the ICMP module.
    4646 *
    47  * @param[in] timeout Connection timeout in microseconds, zero
    48  *                    for no timeout.
    49  *
    5047 * @return ICMP module phone on success.
    51  * @return ETIMEOUT if the connection timeouted.
    5248 *
    5349 */
    54 int icmp_connect_module(suseconds_t timeout)
     50int icmp_connect_module(void)
    5551{
    56         return connect_to_service_timeout(SERVICE_ICMP, timeout);
     52        return connect_to_service(SERVICE_ICMP);
    5753}
    5854
  • uspace/lib/c/generic/net/modules.c

    re3a6c45 rbf172825  
    114114    async_client_conn_t client_receiver)
    115115{
    116         return bind_service_timeout(need, arg1, arg2, arg3, client_receiver, 0);
    117 }
    118 
    119 /** Create bidirectional connection with the needed module service and registers
    120  * the message receiver.
    121  *
    122  * @param[in] need      The needed module service.
    123  * @param[in] arg1      The first parameter.
    124  * @param[in] arg2      The second parameter.
    125  * @param[in] arg3      The third parameter.
    126  * @param[in] client_receiver The message receiver.
    127  * @param[in] timeout   The connection timeout in microseconds. No timeout if
    128  *                      set to zero (0).
    129  *
    130  * @return              The phone of the needed service.
    131  * @return              ETIMEOUT if the connection timeouted.
    132  * @return              Other error codes as defined for the ipc_connect_to_me()
    133  *                      function.
    134  *
    135  */
    136 int bind_service_timeout(services_t need, sysarg_t arg1, sysarg_t arg2,
    137     sysarg_t arg3, async_client_conn_t client_receiver, suseconds_t timeout)
    138 {
    139116        /* Connect to the needed service */
    140         int phone = connect_to_service_timeout(need, timeout);
     117        int phone = connect_to_service(need);
    141118        if (phone >= 0) {
    142119                /* Request the bidirectional connection */
     
    159136int connect_to_service(services_t need)
    160137{
    161         return connect_to_service_timeout(need, 0);
    162 }
    163 
    164 /** Connects to the needed module.
    165  *
    166  *  @param[in] need     The needed module service.
    167  *  @param[in] timeout  The connection timeout in microseconds. No timeout if
    168  *                      set to zero (0).
    169  *  @return             The phone of the needed service.
    170  *  @return             ETIMEOUT if the connection timeouted.
    171  */
    172 int connect_to_service_timeout(services_t need, suseconds_t timeout)
    173 {
    174         int phone;
    175 
    176         /* If no timeout is set */
    177         if (timeout <= 0)
    178                 return service_obsolete_connect_blocking(need, 0, 0);
    179        
    180         while (true) {
    181                 phone = service_obsolete_connect(need, 0, 0);
    182                 if ((phone >= 0) || (phone != ENOENT))
    183                         return phone;
    184 
    185                 /* Abort if no time is left */
    186                 if (timeout <= 0)
    187                         return ETIMEOUT;
    188 
    189                 /* Wait the minimum of the module wait time and the timeout */
    190                 usleep((timeout <= MODULE_WAIT_TIME) ?
    191                     timeout : MODULE_WAIT_TIME);
    192                 timeout -= MODULE_WAIT_TIME;
    193         }
     138        return service_obsolete_connect_blocking(need, 0, 0);
    194139}
    195140
  • uspace/lib/c/generic/net/socket_client.c

    re3a6c45 rbf172825  
    6464/** Maximum waiting sockets queue size. */
    6565#define SOCKET_MAX_ACCEPTED_SIZE        0
    66 
    67 /** Default timeout for connections in microseconds. */
    68 #define SOCKET_CONNECT_TIMEOUT  (1 * 1000 * 1000)
    6966
    7067/**
     
    289286 * @return              The TCP module phone.
    290287 * @return              Other error codes as defined for the
    291  *                      bind_service_timeout() function.
     288 *                      bind_service() function.
    292289 */
    293290static int socket_get_tcp_phone(void)
    294291{
    295292        if (socket_globals.tcp_phone < 0) {
    296                 socket_globals.tcp_phone = bind_service_timeout(SERVICE_TCP,
    297                     0, 0, SERVICE_TCP, socket_connection,
    298                     SOCKET_CONNECT_TIMEOUT);
     293                socket_globals.tcp_phone = bind_service(SERVICE_TCP,
     294                    0, 0, SERVICE_TCP, socket_connection);
    299295        }
    300296
     
    308304 * @return              The UDP module phone.
    309305 * @return              Other error codes as defined for the
    310  *                      bind_service_timeout() function.
     306 *                      bind_service() function.
    311307 */
    312308static int socket_get_udp_phone(void)
    313309{
    314310        if (socket_globals.udp_phone < 0) {
    315                 socket_globals.udp_phone = bind_service_timeout(SERVICE_UDP,
    316                     0, 0, SERVICE_UDP, socket_connection,
    317                     SOCKET_CONNECT_TIMEOUT);
     311                socket_globals.udp_phone = bind_service(SERVICE_UDP,
     312                    0, 0, SERVICE_UDP, socket_connection);
    318313        }
    319314
     
    397392 * @return              Other error codes as defined for the NET_SOCKET message.
    398393 * @return              Other error codes as defined for the
    399  *                      bind_service_timeout() function.
     394 *                      bind_service() function.
    400395 */
    401396int socket(int domain, int type, int protocol)
  • uspace/lib/c/include/net/icmp_common.h

    re3a6c45 rbf172825  
    4141#include <sys/time.h>
    4242
    43 /** Default timeout for incoming connections in microseconds (1 sec). */
    44 #define ICMP_CONNECT_TIMEOUT  1000000
    45 
    46 extern int icmp_connect_module(suseconds_t);
     43extern int icmp_connect_module(void);
    4744
    4845#endif
  • uspace/lib/c/include/net/modules.h

    re3a6c45 rbf172825  
    5858extern int bind_service(services_t, sysarg_t, sysarg_t, sysarg_t,
    5959    async_client_conn_t);
    60 extern int bind_service_timeout(services_t, sysarg_t, sysarg_t, sysarg_t,
    61     async_client_conn_t, suseconds_t);
    6260extern int connect_to_service(services_t);
    63 extern int connect_to_service_timeout(services_t, suseconds_t);
    6461extern int data_reply(void *, size_t);
    6562extern void refresh_answer(ipc_call_t *, size_t *);
  • uspace/srv/net/tl/tcp/tcp.c

    re3a6c45 rbf172825  
    24832483        tcp_globals.net_phone = net_phone;
    24842484       
    2485         tcp_globals.icmp_phone = icmp_connect_module(ICMP_CONNECT_TIMEOUT);
     2485        tcp_globals.icmp_phone = icmp_connect_module();
    24862486        tcp_globals.ip_phone = ip_bind_service(SERVICE_IP, IPPROTO_TCP,
    24872487            SERVICE_TCP, tcp_receiver);
  • uspace/srv/net/tl/udp/udp.c

    re3a6c45 rbf172825  
    396396        udp_globals.net_phone = net_phone;
    397397       
    398         udp_globals.icmp_phone = icmp_connect_module(ICMP_CONNECT_TIMEOUT);
     398        udp_globals.icmp_phone = icmp_connect_module();
    399399       
    400400        udp_globals.ip_phone = ip_bind_service(SERVICE_IP, IPPROTO_UDP,
Note: See TracChangeset for help on using the changeset viewer.