diff options
author | Jakob Bornecrantz <jakob@vmware.com> | 2009-11-29 02:46:55 +0000 |
---|---|---|
committer | Jakob Bornecrantz <jakob@vmware.com> | 2009-11-29 02:46:55 +0000 |
commit | 0cfd4764958de5b1c76f6503dca3e514aa9f2769 (patch) | |
tree | 8b6f020b9ea15464aa5641b7b7237ccd974667d4 | |
parent | 11c37d84a16bf86cd40c8f2bb7cbd28417bbfe94 (diff) |
Try ten times to connect
For each try add one to the port number
-rw-r--r-- | src/ask.c | 15 |
1 files changed, 11 insertions, 4 deletions
@@ -28,12 +28,19 @@ gboolean ask_connect(struct program *p) { - int socket; + uint16_t port = p->ask.port; + int socket = -1; - socket = u_socket_connect(p->ask.host, p->ask.port); + while (socket < 0) { + /* after ten tries quit */ + if (port >= p->ask.port + 10) + return false; - if (socket < 0) - return false; + socket = u_socket_connect(p->ask.host, port++); + } + + /* store the actual port, minus one */ + p->ask.port = --port; p->rbug.socket = socket; p->rbug.con = rbug_from_socket(socket); |