mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 04:22:27 +01:00
f3d2341f1f
Docs/manual.texi: Update of safe_mysqld, TRUNCATE and changes for 3.23.28 client/mysql.cc: Added --timeout client/mysqladmin.c: Safer password handling client/mysqldump.c: Safer password handling client/mysqlimport.c: Safer password handling client/mysqlshow.c: Safer password handling configure.in: Fixes for Darwin and added test of poll include/my_pthread.h: Fixes for darwin include/violite.h: Added test for polling libmysql/libmysql.c: connect timeout libmysql/violite.c: connect timeout mysys/hash.c: Fix when delting from empty table scripts/safe_mysqld.sh: Added --open-files, --core-file-size and --timezone sql-bench/bench-init.pl.sh: Function print_time sql-bench/crash-me.sh: Added test of truncate sql-bench/test-insert.sh: More "estimated" tests sql-bench/test-select.sh: More "estimated" tests sql/filesort.cc: Removed allocation of extra memory sql/ha_berkeley.cc: Better estimation of number of rows sql/item_create.cc: Truncate sql/item_create.h: Truncate sql/item_strfunc.cc: Removed usage of MY_FAE sql/lex.h: Truncate sql/lock.cc: Fixed possible loop bug sql/log.cc: Removed usage of FILE:s sql/mysqld.cc: Print of more server variables sql/sql_class.h: Changed FILE -> File sql/sql_insert.cc: Fixed bug in temptable handling sql/sql_lex.h: Cleanup sql/sql_load.cc: Removed usage of MY_FAE sql/sql_parse.cc: Cleanup + TRUNCATE sql/sql_select.cc: Cleanup + fix for INSERT ... SELECT sql/sql_yacc.yy: TRUNCATE sql/violite.c: Merge with client/violite.c strings/strstr-sparc.s: Fixed wrong register usage
118 lines
3 KiB
C
118 lines
3 KiB
C
/* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
|
|
|
|
This library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Library General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2 of the License, or (at your option) any later version.
|
|
|
|
This library is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Library General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Library General Public
|
|
License along with this library; if not, write to the Free
|
|
Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
|
|
MA 02111-1307, USA */
|
|
|
|
/*
|
|
* Vio Lite.
|
|
* Purpose: include file for Vio that will work with C and C++
|
|
*/
|
|
|
|
#ifndef vio_violite_h_
|
|
#define vio_violite_h_
|
|
|
|
#include "my_net.h" /* needed because of struct in_addr */
|
|
|
|
#ifdef HAVE_VIO
|
|
#include <Vio.h> /* Full VIO interface */
|
|
#else
|
|
|
|
/* Simple vio interface in C; The functions are implemented in violite.c */
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif /* __cplusplus */
|
|
|
|
#ifndef Vio_defined
|
|
#define Vio_defined
|
|
struct st_vio; /* Only C */
|
|
typedef struct st_vio Vio;
|
|
#endif
|
|
|
|
enum enum_vio_type { VIO_CLOSED, VIO_TYPE_TCPIP, VIO_TYPE_SOCKET,
|
|
VIO_TYPE_NAMEDPIPE, VIO_TYPE_SSL};
|
|
|
|
Vio* vio_new(my_socket sd,
|
|
enum enum_vio_type type,
|
|
my_bool localhost);
|
|
#ifdef __WIN__
|
|
Vio* vio_new_win32pipe(HANDLE hPipe);
|
|
#endif
|
|
void vio_delete(Vio* vio);
|
|
|
|
/*
|
|
* vio_read and vio_write should have the same semantics
|
|
* as read(2) and write(2).
|
|
*/
|
|
int vio_read( Vio* vio,
|
|
gptr buf, int size);
|
|
int vio_write( Vio* vio,
|
|
const gptr buf,
|
|
int size);
|
|
/*
|
|
* Whenever the socket is set to blocking mode or not.
|
|
*/
|
|
int vio_blocking( Vio* vio,
|
|
my_bool onoff);
|
|
my_bool vio_is_blocking( Vio* vio);
|
|
/*
|
|
* setsockopt TCP_NODELAY at IPPROTO_TCP level, when possible.
|
|
*/
|
|
int vio_fastsend( Vio* vio,
|
|
my_bool onoff);
|
|
/*
|
|
* setsockopt SO_KEEPALIVE at SOL_SOCKET level, when possible.
|
|
*/
|
|
int vio_keepalive( Vio* vio,
|
|
my_bool onoff);
|
|
/*
|
|
* Whenever we should retry the last read/write operation.
|
|
*/
|
|
my_bool vio_should_retry( Vio* vio);
|
|
/*
|
|
* When the workday is over...
|
|
*/
|
|
int vio_close( Vio* vio);
|
|
/*
|
|
* Short text description of the socket for those, who are curious..
|
|
*/
|
|
const char* vio_description( Vio* vio);
|
|
|
|
/* Return the type of the connection */
|
|
enum enum_vio_type vio_type(Vio* vio);
|
|
|
|
/* Return last error number */
|
|
int vio_errno(Vio *vio);
|
|
|
|
/* Get socket number */
|
|
my_socket vio_fd(Vio *vio);
|
|
|
|
/*
|
|
* Remote peer's address and name in text form.
|
|
*/
|
|
my_bool vio_peer_addr(Vio * vio, char *buf);
|
|
|
|
/* Remotes in_addr */
|
|
|
|
void vio_in_addr(Vio *vio, struct in_addr *in);
|
|
|
|
/* Return 1 if there is data to be read */
|
|
my_bool vio_poll_read(Vio *vio,uint timeout);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif /* HAVE_VIO */
|
|
#endif /* vio_violite_h_ */
|