~ubuntu-branches/ubuntu/trusty/gnutls26/trusty-security

« back to all changes in this revision

Viewing changes to gl/sockets.c

  • Committer: Bazaar Package Importer
  • Author(s): Andreas Metzler
  • Date: 2010-04-22 19:29:52 UTC
  • mto: (12.4.3 experimental) (1.5.1)
  • mto: This revision was merged to the branch mainline in revision 26.
  • Revision ID: james.westby@ubuntu.com-20100422192952-gbj6cvaan8e4ejck
Tags: upstream-2.9.10
ImportĀ upstreamĀ versionĀ 2.9.10

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/* sockets.c --- wrappers for Windows socket functions
2
2
 
3
 
   Copyright (C) 2008-2009 Free Software Foundation, Inc.
 
3
   Copyright (C) 2008-2010 Free Software Foundation, Inc.
4
4
 
5
5
   This program is free software: you can redistribute it and/or modify
6
6
   it under the terms of the GNU General Public License as published by
46
46
    {
47
47
      /* fd refers to a socket.  */
48
48
      /* FIXME: other applications, like squid, use an undocumented
49
 
         _free_osfhnd free function.  But this is not enough: The 'osfile'
50
 
         flags for fd also needs to be cleared, but it is hard to access it.
51
 
         Instead, here we just close twice the file descriptor.  */
 
49
         _free_osfhnd free function.  But this is not enough: The 'osfile'
 
50
         flags for fd also needs to be cleared, but it is hard to access it.
 
51
         Instead, here we just close twice the file descriptor.  */
52
52
      if (closesocket (sock))
53
 
        {
54
 
          set_winsock_errno ();
55
 
          return -1;
56
 
        }
 
53
        {
 
54
          set_winsock_errno ();
 
55
          return -1;
 
56
        }
57
57
      else
58
 
        {
59
 
          /* This call frees the file descriptor and does a
60
 
             CloseHandle ((HANDLE) _get_osfhandle (fd)), which fails.  */
61
 
          _close (fd);
62
 
          return 0;
63
 
        }
 
58
        {
 
59
          /* This call frees the file descriptor and does a
 
60
             CloseHandle ((HANDLE) _get_osfhandle (fd)), which fails.  */
 
61
          _close (fd);
 
62
          return 0;
 
63
        }
64
64
    }
65
65
  else
66
66
    /* Some other type of file descriptor.  */
74
74
#endif /* WINDOWS_SOCKETS */
75
75
 
76
76
int
77
 
gl_sockets_startup (int version _UNUSED_PARAMETER_)
 
77
gl_sockets_startup (int version _GL_UNUSED)
78
78
{
79
79
#if WINDOWS_SOCKETS
80
80
  if (version > initialized_sockets_version)
84
84
 
85
85
      err = WSAStartup (version, &data);
86
86
      if (err != 0)
87
 
        return 1;
 
87
        return 1;
88
88
 
89
89
      if (data.wVersion < version)
90
 
        return 2;
 
90
        return 2;
91
91
 
92
92
      if (initialized_sockets_version == 0)
93
 
        register_close_hook (close_fd_maybe_socket, &close_sockets_hook);
 
93
        register_close_hook (close_fd_maybe_socket, &close_sockets_hook);
94
94
 
95
95
      initialized_sockets_version = version;
96
96
    }