diff options
author | Günther Deschner <gd@samba.org> | 2005-11-18 14:33:12 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 11:05:28 -0500 |
commit | 4ba65300ec7fa1b69600efdfd704d10b6a181d81 (patch) | |
tree | 196741630a2d9a305c4b4f59add6c71c2dcd754f | |
parent | d75de28c9ee6463d53920dcd0e769aa11c0b562e (diff) | |
download | samba-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.c | 14 |
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 |