summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2005-11-18 14:33:12 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 11:05:28 -0500
commit4ba65300ec7fa1b69600efdfd704d10b6a181d81 (patch)
tree196741630a2d9a305c4b4f59add6c71c2dcd754f
parentd75de28c9ee6463d53920dcd0e769aa11c0b562e (diff)
downloadsamba-4ba65300ec7fa1b69600efdfd704d10b6a181d81.tar.gz
samba-4ba65300ec7fa1b69600efdfd704d10b6a181d81.tar.bz2
samba-4ba65300ec7fa1b69600efdfd704d10b6a181d81.zip
r11790: Avoid infinite retry to gather a connection.
Guenther (This used to be commit 7b6195b421b6c572d82d00b9a11bcf8579456c21)
-rw-r--r--source3/client/smbspool.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/source3/client/smbspool.c b/source3/client/smbspool.c
index da517297f7..aff241adee 100644
--- a/source3/client/smbspool.c
+++ b/source3/client/smbspool.c
@@ -30,6 +30,7 @@
#define CC_MAX_FILE_PATH_LEN (sizeof(TICKET_CC_DIR)-1)+ CC_MAX_FILE_LEN+2
#define OVERWRITE 1
#define KRB5CCNAME "KRB5CCNAME"
+#define MAX_RETRY_CONNECT 3
/*
@@ -71,6 +72,7 @@ static int smb_print(struct cli_state *, char *, FILE *);
int status=0; /* Status of LPD job */
struct cli_state *cli; /* SMB interface */
char null_str[1];
+ int tries = 0;
null_str[0] = '\0';
@@ -229,17 +231,23 @@ static int smb_print(struct cli_state *, char *, FILE *);
{
if (getenv("CLASS") == NULL)
{
- fprintf(stderr, "ERROR: Unable to connect to CIFS host, will retry in 60 seconds...");
+ fprintf(stderr, "ERROR: Unable to connect to CIFS host, will retry in 60 seconds...\n");
sleep (60); /* should just waiting and retrying fix authentication ??? */
+ tries++;
}
else
{
- fprintf(stderr, "ERROR: Unable to connect to CIFS host, trying next printer...");
+ fprintf(stderr, "ERROR: Unable to connect to CIFS host, trying next printer...\n");
return (1);
}
}
}
- while (cli == NULL);
+ while ((cli == NULL) && (tries < MAX_RETRY_CONNECT));
+
+ if (cli == NULL) {
+ fprintf(stderr, "ERROR: Unable to connect to CIFS host after (tried %d times)\n", tries);
+ return (1);
+ }
/*
* Now that we are connected to the server, ignore SIGTERM so that we