mirror of
https://github.com/moparisthebest/curl
synced 2024-11-10 19:45:04 -05:00
Read the return value of the swrite() macro and 'print' a message in case of failure.
This commit is contained in:
parent
8272874704
commit
f975fd03a1
20
lib/telnet.c
20
lib/telnet.c
@ -71,6 +71,7 @@
|
|||||||
#include "transfer.h"
|
#include "transfer.h"
|
||||||
#include "sendf.h"
|
#include "sendf.h"
|
||||||
#include "telnet.h"
|
#include "telnet.h"
|
||||||
|
#include "connect.h"
|
||||||
|
|
||||||
#define _MPRINTF_REPLACE /* use our functions only */
|
#define _MPRINTF_REPLACE /* use our functions only */
|
||||||
#include <curl/mprintf.h>
|
#include <curl/mprintf.h>
|
||||||
@ -290,12 +291,18 @@ static void send_negotiation(struct connectdata *conn, int cmd, int option)
|
|||||||
{
|
{
|
||||||
unsigned char buf[3];
|
unsigned char buf[3];
|
||||||
ssize_t bytes_written;
|
ssize_t bytes_written;
|
||||||
|
int err;
|
||||||
|
struct SessionHandle *data = conn->data;
|
||||||
|
|
||||||
buf[0] = CURL_IAC;
|
buf[0] = CURL_IAC;
|
||||||
buf[1] = cmd;
|
buf[1] = cmd;
|
||||||
buf[2] = option;
|
buf[2] = option;
|
||||||
|
|
||||||
bytes_written = swrite(conn->sock[FIRSTSOCKET], buf, 3);
|
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);
|
printoption(conn->data, "SENT", cmd, option);
|
||||||
}
|
}
|
||||||
@ -847,6 +854,7 @@ static void suboption(struct connectdata *conn)
|
|||||||
ssize_t bytes_written;
|
ssize_t bytes_written;
|
||||||
size_t len;
|
size_t len;
|
||||||
size_t tmplen;
|
size_t tmplen;
|
||||||
|
int err;
|
||||||
char varname[128];
|
char varname[128];
|
||||||
char varval[128];
|
char varval[128];
|
||||||
struct SessionHandle *data = conn->data;
|
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,
|
"%c%c%c%c%s%c%c", CURL_IAC, CURL_SB, CURL_TELOPT_TTYPE,
|
||||||
CURL_TELQUAL_IS, tn->subopt_ttype, CURL_IAC, CURL_SE);
|
CURL_TELQUAL_IS, tn->subopt_ttype, CURL_IAC, CURL_SE);
|
||||||
bytes_written = swrite(conn->sock[FIRSTSOCKET], temp, len);
|
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);
|
printsub(data, '>', &temp[2], len-2);
|
||||||
break;
|
break;
|
||||||
case CURL_TELOPT_XDISPLOC:
|
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,
|
"%c%c%c%c%s%c%c", CURL_IAC, CURL_SB, CURL_TELOPT_XDISPLOC,
|
||||||
CURL_TELQUAL_IS, tn->subopt_xdisploc, CURL_IAC, CURL_SE);
|
CURL_TELQUAL_IS, tn->subopt_xdisploc, CURL_IAC, CURL_SE);
|
||||||
bytes_written = swrite(conn->sock[FIRSTSOCKET], temp, len);
|
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);
|
printsub(data, '>', &temp[2], len-2);
|
||||||
break;
|
break;
|
||||||
case CURL_TELOPT_NEW_ENVIRON:
|
case CURL_TELOPT_NEW_ENVIRON:
|
||||||
@ -891,6 +907,10 @@ static void suboption(struct connectdata *conn)
|
|||||||
"%c%c", CURL_IAC, CURL_SE);
|
"%c%c", CURL_IAC, CURL_SE);
|
||||||
len += 2;
|
len += 2;
|
||||||
bytes_written = swrite(conn->sock[FIRSTSOCKET], temp, len);
|
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);
|
printsub(data, '>', &temp[2], len-2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user