diff options
author | Jeremy Allison <jra@samba.org> | 2001-07-03 00:52:56 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2001-07-03 00:52:56 +0000 |
commit | 8d1dab74c26d25938de14b34b383890731e9ebd0 (patch) | |
tree | 909583d10597888dd41b9e928b52af1ce47cb8a8 | |
parent | 1aef52245229741bc24c3e8147fa86eaa20fe9b2 (diff) | |
download | samba-8d1dab74c26d25938de14b34b383890731e9ebd0.tar.gz samba-8d1dab74c26d25938de14b34b383890731e9ebd0.tar.xz samba-8d1dab74c26d25938de14b34b383890731e9ebd0.zip |
Applied Michael Sweet's patch, with one minor signal change.
Jeremy.
-rw-r--r-- | source/client/smbspool.c | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/source/client/smbspool.c b/source/client/smbspool.c index 5a78fe14fc6..ce920d1a58d 100644 --- a/source/client/smbspool.c +++ b/source/client/smbspool.c @@ -115,7 +115,7 @@ static int smb_print(struct cli_state *, char *, FILE *); copies = atoi(argv[4]); /* - * Fine the URI... + * Find the URI... */ if (strncmp(argv[0], "smb://", 6) == 0) @@ -205,11 +205,33 @@ static int smb_print(struct cli_state *, char *, FILE *); load_interfaces(); - if ((cli = smb_connect(workgroup, server, printer, username, password)) == NULL) + do { - perror("ERROR: Unable to connect to SAMBA host"); - return (1); + if ((cli = smb_connect(workgroup, server, printer, username, password)) == NULL) + { + if (getenv("CLASS") == NULL) + { + perror("ERROR: Unable to connect to SAMBA host, will retry in 60 seconds..."); + sleep (60); + } + else + { + perror("ERROR: Unable to connect to SAMBA host, trying next printer..."); + return (1); + } + } } + while (cli == NULL); + + /* + * Now that we are connected to the server, ignore SIGTERM so that we + * can finish out any page data the driver sends (e.g. to eject the + * current page... Only ignore SIGTERM if we are printing data from + * stdin (otherwise you can't cancel raw jobs...) + */ + + if (argc < 7) + CatchSignal(SIGTERM, SIG_IGN); /* * Queue the job... |