Eneboo - Documentación para desarrolladores
|
00001 /* Copyright (C) 2003 MySQL AB 00002 00003 This program is free software; you can redistribute it and/or modify 00004 it under the terms of the GNU General Public License as published by 00005 the Free Software Foundation; either version 2 of the License, or 00006 (at your option) any later version. 00007 00008 This program is distributed in the hope that it will be useful, 00009 but WITHOUT ANY WARRANTY; without even the implied warranty of 00010 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00011 GNU General Public License for more details. 00012 00013 You should have received a copy of the GNU General Public License 00014 along with this program; if not, write to the Free Software 00015 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ 00016 00017 /* Structures and functions private to the vio package */ 00018 00019 #define DONT_MAP_VIO 00020 #include <my_global.h> 00021 #include <mysql_com.h> 00022 #include <my_sys.h> 00023 #include <m_string.h> 00024 #include <violite.h> 00025 00026 void vio_ignore_timeout(Vio *vio, uint which, uint timeout); 00027 00028 #ifdef HAVE_OPENSSL 00029 #include "my_net.h" /* needed because of struct in_addr */ 00030 00031 void vio_ssl_delete(Vio* vio); 00032 int vio_ssl_read(Vio *vio,gptr buf, int size); 00033 int vio_ssl_write(Vio *vio,const gptr buf,int size); 00034 void vio_ssl_timeout(Vio *vio, uint which, uint timeout); 00035 00036 /* setsockopt TCP_NODELAY at IPPROTO_TCP level, when possible. */ 00037 int vio_ssl_fastsend(Vio *vio); 00038 /* setsockopt SO_KEEPALIVE at SOL_SOCKET level, when possible. */ 00039 int vio_ssl_keepalive(Vio *vio, my_bool onoff); 00040 /* Whenever we should retry the last read/write operation. */ 00041 my_bool vio_ssl_should_retry(Vio *vio); 00042 /* Check that operation was timed out */ 00043 my_bool vio_ssl_was_interrupted(Vio *vio); 00044 /* When the workday is over... */ 00045 int vio_ssl_close(Vio *vio); 00046 /* Return last error number */ 00047 int vio_ssl_errno(Vio *vio); 00048 my_bool vio_ssl_peer_addr(Vio *vio, char *buf, uint16 *port); 00049 void vio_ssl_in_addr(Vio *vio, struct in_addr *in); 00050 int vio_ssl_blocking(Vio *vio, my_bool set_blocking_mode, my_bool *old_mode); 00051 00052 /* Single copy for server */ 00053 enum vio_ssl_acceptorfd_state 00054 { 00055 state_connect = 1, 00056 state_accept = 2 00057 }; 00058 #endif /* HAVE_OPENSSL */