You will have far greater success if you post your code here, inside code tags, as the Intro post at the top of the forum suggests. That being said, your connect() function contains this
while ( ether.begin( sizeof Ethernet::buffer, this->mac ) == 0 ) {
//Serial.println( "Failed to access Ethernet controller" );
delay( 1000 );
}
which will loop indefinitely until a connection is made. You will have to look in the ether.begin() code