aboutsummaryrefslogtreecommitdiff
path: root/lib/telnet.c
diff options
context:
space:
mode:
authorYang Tse <yangsita@gmail.com>2006-07-12 07:33:54 +0000
committerYang Tse <yangsita@gmail.com>2006-07-12 07:33:54 +0000
commitf975fd03a15f3c4792c0f99d734e663440afaf40 (patch)
tree122498d69e64cc0a1cb1eeb455e5301758ef4fc4 /lib/telnet.c
parent8272874704485b57da9c3b4ea9a2511f27cc8045 (diff)
Read the return value of the swrite() macro and 'print' a message in case of failure.
Diffstat (limited to 'lib/telnet.c')
-rw-r--r--lib/telnet.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/telnet.c b/lib/telnet.c
index 0b57f7706..29e053e15 100644
--- a/lib/telnet.c
+++ b/lib/telnet.c
@@ -71,6 +71,7 @@
#include "transfer.h"
#include "sendf.h"
#include "telnet.h"
+#include "connect.h"
#define _MPRINTF_REPLACE /* use our functions only */
#include <curl/mprintf.h>
@@ -290,12 +291,18 @@ static void send_negotiation(struct connectdata *conn, int cmd, int option)
{
unsigned char buf[3];
ssize_t bytes_written;
+ int err;
+ struct SessionHandle *data = conn->data;
buf[0] = CURL_IAC;
buf[1] = cmd;
buf[2] = option;
bytes_written = swrite(conn->sock[FIRSTSOCKET], buf, 3);
+ if(bytes_written < 0) {
+ err = Curl_sockerrno();
+ failf(data,"Sending data failed (%d)",err);
+ }
printoption(conn->data, "SENT", cmd, option);
}
@@ -847,6 +854,7 @@ static void suboption(struct connectdata *conn)
ssize_t bytes_written;
size_t len;
size_t tmplen;
+ int err;
char varname[128];
char varval[128];
struct SessionHandle *data = conn->data;
@@ -860,6 +868,10 @@ static void suboption(struct connectdata *conn)
"%c%c%c%c%s%c%c", CURL_IAC, CURL_SB, CURL_TELOPT_TTYPE,
CURL_TELQUAL_IS, tn->subopt_ttype, CURL_IAC, CURL_SE);
bytes_written = swrite(conn->sock[FIRSTSOCKET], temp, len);
+ if(bytes_written < 0) {
+ err = Curl_sockerrno();
+ failf(data,"Sending data failed (%d)",err);
+ }
printsub(data, '>', &temp[2], len-2);
break;
case CURL_TELOPT_XDISPLOC:
@@ -868,6 +880,10 @@ static void suboption(struct connectdata *conn)
"%c%c%c%c%s%c%c", CURL_IAC, CURL_SB, CURL_TELOPT_XDISPLOC,
CURL_TELQUAL_IS, tn->subopt_xdisploc, CURL_IAC, CURL_SE);
bytes_written = swrite(conn->sock[FIRSTSOCKET], temp, len);
+ if(bytes_written < 0) {
+ err = Curl_sockerrno();
+ failf(data,"Sending data failed (%d)",err);
+ }
printsub(data, '>', &temp[2], len-2);
break;
case CURL_TELOPT_NEW_ENVIRON:
@@ -891,6 +907,10 @@ static void suboption(struct connectdata *conn)
"%c%c", CURL_IAC, CURL_SE);
len += 2;
bytes_written = swrite(conn->sock[FIRSTSOCKET], temp, len);
+ if(bytes_written < 0) {
+ err = Curl_sockerrno();
+ failf(data,"Sending data failed (%d)",err);
+ }
printsub(data, '>', &temp[2], len-2);
break;
}