add socket timeout