summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Bornecrantz <jakob@vmware.com>2009-11-29 02:46:55 +0000
committerJakob Bornecrantz <jakob@vmware.com>2009-11-29 02:46:55 +0000
commit0cfd4764958de5b1c76f6503dca3e514aa9f2769 (patch)
tree8b6f020b9ea15464aa5641b7b7237ccd974667d4
parent11c37d84a16bf86cd40c8f2bb7cbd28417bbfe94 (diff)
Try ten times to connect
For each try add one to the port number
-rw-r--r--src/ask.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/ask.c b/src/ask.c
index 6859e38..5392911 100644
--- a/src/ask.c
+++ b/src/ask.c
@@ -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);