Definir o timeout da biblioteca Ethernet Shield

Alguém sabe se é possível definir o tempo para o timeout da biblioteca Ethernet Shield? Explico:

Criei um função muito simples (logo abaixo) que tenta conectar a um endereço, se ele não for acessível retorna 0, se for acessível retorna 1. Problema é que quando o site não está disponível, o microcontrolador fica esperando a resposta por um tempo muito longo, queria diminuir isso.

uint8_t ping(const char* address)
{
    EthernetClient http;

    if(http.connect(address, 80)) {
        http.stop();
        return 1;
    }
    else 
        return 0;
}

ja ouviste falar da funcao millis()??

Já sim, não se aplica a pergunta inicial pelo que entendo.

Acho que a solução está nesse post aqui do forum.

Sera isto um exemplo que se aplica??

uint8_t ping(const char* address, unsigned long timeout)
{
    EthernetClient http;
    unsigned long now = millis();

while (millis() - now < timeout) {
    if(http.connect(address, 80)) {
        http.stop();
        return 1;
    }
    else 
        return 0;
}//end while
}

Realmente é só modificar a biblioteca. Melhor ainda, mudar meu código! Basta adicionar

W5100.setRetransmissionTime(0x07D0);
W5100.setRetransmissionCount(3);

Obrigado a todos que ajudaram.

Para quem deseja ler a solução completa http://forum.arduino.cc/index.php?topic=49401.msg353032#msg353032