~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to vio/viosocket.c

  • Committer: Andy Lester
  • Date: 2008-08-10 02:15:48 UTC
  • mto: (266.1.31 use-replace-funcs)
  • mto: This revision was merged to the branch mainline in revision 295.
  • Revision ID: andy@petdance.com-20080810021548-0zx8nhzva6al10k3
Added a proper const qualifer.

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
 
23
23
#include "vio_priv.h"
24
24
#include <sys/socket.h>
25
 
#include <drizzled/util/test.h>
26
25
 
27
26
int vio_errno(Vio *vio __attribute__((unused)))
28
27
{
29
 
  return errno;
 
28
  return socket_errno;          /* On Win32 this mapped to WSAGetLastError() */
30
29
}
31
30
 
32
31
 
33
 
size_t vio_read(Vio * vio, unsigned char* buf, size_t size)
 
32
size_t vio_read(Vio * vio, uchar* buf, size_t size)
34
33
{
35
34
  size_t r;
36
35
 
47
46
  reduce number of syscalls.
48
47
*/
49
48
 
50
 
size_t vio_read_buff(Vio *vio, unsigned char* buf, size_t size)
 
49
size_t vio_read_buff(Vio *vio, uchar* buf, size_t size)
51
50
{
52
51
  size_t rc;
53
52
#define VIO_UNBUFFERED_READ_MIN_SIZE 2048
54
53
 
55
54
  if (vio->read_pos < vio->read_end)
56
55
  {
57
 
    rc= cmin((size_t) (vio->read_end - vio->read_pos), size);
 
56
    rc= min((size_t) (vio->read_end - vio->read_pos), size);
58
57
    memcpy(buf, vio->read_pos, rc);
59
58
    vio->read_pos+= rc;
60
59
    /*
65
64
  }
66
65
  else if (size < VIO_UNBUFFERED_READ_MIN_SIZE)
67
66
  {
68
 
    rc= vio_read(vio, (unsigned char*) vio->read_buffer, VIO_READ_BUFFER_SIZE);
 
67
    rc= vio_read(vio, (uchar*) vio->read_buffer, VIO_READ_BUFFER_SIZE);
69
68
    if (rc != 0 && rc != (size_t) -1)
70
69
    {
71
70
      if (rc > size)
85
84
}
86
85
 
87
86
 
88
 
size_t vio_write(Vio * vio, const unsigned char* buf, size_t size)
 
87
size_t vio_write(Vio * vio, const uchar* buf, size_t size)
89
88
{
90
89
  size_t r;
91
90
 
168
167
bool
169
168
vio_should_retry(Vio * vio __attribute__((unused)))
170
169
{
171
 
  int en = errno;
172
 
  return (en == EAGAIN || en == EINTR ||
173
 
          en == EWOULDBLOCK);
 
170
  int en = socket_errno;
 
171
  return (en == SOCKET_EAGAIN || en == SOCKET_EINTR ||
 
172
          en == SOCKET_EWOULDBLOCK);
174
173
}
175
174
 
176
175
 
177
176
bool
178
177
vio_was_interrupted(Vio *vio __attribute__((unused)))
179
178
{
180
 
  int en= errno;
181
 
  return (en == EAGAIN || en == EINTR ||
182
 
          en == EWOULDBLOCK || en == ETIMEDOUT);
 
179
  int en= socket_errno;
 
180
  return (en == SOCKET_EAGAIN || en == SOCKET_EINTR ||
 
181
          en == SOCKET_EWOULDBLOCK || en == SOCKET_ETIMEDOUT);
183
182
}
184
183
 
185
184
 
191
190
    assert(vio->sd >= 0);
192
191
    if (shutdown(vio->sd, SHUT_RDWR))
193
192
      r= -1;
194
 
    if (close(vio->sd))
 
193
    if (closesocket(vio->sd))
195
194
      r= -1;
196
195
  }
197
196
  vio->type= VIO_CLOSED;