~drizzle-trunk/libdrizzle/jenkins-Libdrizzle-29

« back to all changes in this revision

Viewing changes to libdrizzle/conn.cc

  • Committer: Andrew Hutchings
  • Date: 2012-12-21 08:10:08 UTC
  • mfrom: (43.2.14 5.0)
  • Revision ID: andrew@linuxjedi.co.uk-20121221081008-nwvhyxhn1s9omsn0
Merge 5.0 changes into 5.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
44
44
#include "config.h"
45
45
#include "libdrizzle/common.h"
46
46
 
 
47
#ifndef MSG_NOSIGNAL
 
48
# define MSG_NOSIGNAL 0
 
49
#endif
 
50
 
47
51
/**
48
52
 * @addtogroup drizzle_con_static Static Connection Declarations
49
53
 * @ingroup drizzle_con
1146
1150
      read_size= SSL_read(con->ssl, (char*)con->buffer_ptr + con->buffer_size, available_buffer);
1147
1151
    else
1148
1152
#endif
1149
 
      read_size = recv(con->fd, (char *)con->buffer_ptr + con->buffer_size,
1150
 
                     available_buffer, 0);
 
1153
      read_size= recv(con->fd, (char *)con->buffer_ptr + con->buffer_size, available_buffer, MSG_NOSIGNAL);
1151
1154
#ifdef _WIN32
1152
1155
    errno = WSAGetLastError();
1153
1156
    switch(errno) {
1272
1275
      write_size= SSL_write(con->ssl, con->buffer_ptr, con->buffer_size);
1273
1276
    else
1274
1277
#endif      
1275
 
      write_size = send(con->fd,(char *) con->buffer_ptr, con->buffer_size, 0);
 
1278
      write_size = send(con->fd,(char *) con->buffer_ptr, con->buffer_size, MSG_NOSIGNAL);
1276
1279
 
1277
1280
#ifdef _WIN32
1278
1281
    errno = WSAGetLastError();
1468
1471
    return DRIZZLE_RETURN_ERRNO;
1469
1472
  }
1470
1473
 
 
1474
#if defined(SO_NOSIGPIPE)
 
1475
  if (SO_NOSIGPIPE)
 
1476
  {
 
1477
    int ret= 1;
 
1478
    ret= setsockopt(con->fd, SOL_SOCKET, SO_NOSIGPIPE, static_cast<void *>(&ret), sizeof(int));
 
1479
 
 
1480
    if (ret == -1)
 
1481
    {
 
1482
      drizzle_set_error(con->drizzle, __func__, "setsockopt(SO_NOSIGPIPE): %s", strerror(errno));
 
1483
      return DRIZZLE_RETURN_ERRNO;
 
1484
    }
 
1485
  }
 
1486
#endif
 
1487
 
1471
1488
#if defined (_WIN32)
1472
1489
  {
1473
1490
    unsigned long asyncmode;