Loading client/mysqlmanagerc.c +2 −2 Original line number Diff line number Diff line Loading @@ -14,7 +14,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #define MANAGER_CLIENT_VERSION "1.0" #define MANAGER_CLIENT_VERSION "1.1" #include <my_global.h> #include <mysql.h> Loading @@ -28,7 +28,7 @@ #include <unistd.h> #ifndef MYSQL_MANAGER_PORT #define MYSQL_MANAGER_PORT 23546 #define MYSQL_MANAGER_PORT 9305 #endif static void die(const char* fmt, ...); Loading client/mysqltest.c +3 −0 Original line number Diff line number Diff line Loading @@ -2158,12 +2158,15 @@ static void var_from_env(const char* name, const char* def_val) static void init_var_hash() { VAR* v; if (hash_init(&var_hash, 1024, 0, 0, get_var_key, var_free, MYF(0))) die("Variable hash initialization failed"); var_from_env("MASTER_MYPORT", "9306"); var_from_env("SLAVE_MYPORT", "9307"); var_from_env("MYSQL_TEST_DIR", "/tmp"); var_from_env("BIG_TEST", opt_big_test ? "1" : "0"); v=var_init(0,"MAX_TABLES", 0, (sizeof(ulong) == 4) ? "31" : "63",0); hash_insert(&var_hash, (byte*)v); } Loading include/mysql.h +1 −1 Original line number Diff line number Diff line Loading @@ -238,7 +238,7 @@ typedef struct st_mysql_res { typedef struct st_mysql_manager { Vio* vio; NET net; char *host,*user,*passwd; unsigned int port; my_bool free_me; Loading libmysql/libmysql.c +5 −4 Original line number Diff line number Diff line Loading @@ -905,7 +905,8 @@ unpack_fields(MYSQL_DATA *data,MEM_ROOT *alloc,uint fields, static MYSQL_DATA *read_rows(MYSQL *mysql,MYSQL_FIELD *mysql_fields, uint fields) { uint field,pkt_len; uint field; ulong pkt_len; ulong len; uchar *cp; char *to; Loading Loading @@ -991,7 +992,7 @@ read_one_row(MYSQL *mysql,uint fields,MYSQL_ROW row, ulong *lengths) ulong pkt_len,len; uchar *pos,*prev_pos; if ((pkt_len=(uint) net_safe_read(mysql)) == packet_error) if ((pkt_len=net_safe_read(mysql)) == packet_error) return -1; if (pkt_len == 1 && mysql->net.read_pos[0] == 254) return 1; /* End of data */ Loading Loading @@ -1453,7 +1454,7 @@ mysql_real_connect(MYSQL *mysql,const char *host, const char *user, my_socket sock; uint32 ip_addr; struct sockaddr_in sock_addr; uint pkt_length; ulong pkt_length; NET *net= &mysql->net; #ifdef __WIN__ HANDLE hPipe=INVALID_HANDLE_VALUE; Loading Loading @@ -2135,7 +2136,7 @@ int STDCALL mysql_read_query_result(MYSQL *mysql) uchar *pos; ulong field_count; MYSQL_DATA *fields; uint length; ulong length; DBUG_ENTER("mysql_read_query_result"); /* read from the connection which we actually used, which Loading libmysql/manager.c +28 −54 Original line number Diff line number Diff line Loading @@ -91,6 +91,7 @@ MYSQL_MANAGER* STDCALL mysql_manager_connect(MYSQL_MANAGER* con, uint32 ip_addr; char msg_buf[MAX_MYSQL_MANAGER_MSG]; int msg_len; Vio* vio; if (!host) host="localhost"; Loading @@ -105,13 +106,14 @@ MYSQL_MANAGER* STDCALL mysql_manager_connect(MYSQL_MANAGER* con, strmov(con->last_error,"Cannot create socket"); goto err; } if (!(con->vio=vio_new(sock,VIO_TYPE_TCPIP,FALSE))) if (!(vio=vio_new(sock,VIO_TYPE_TCPIP,FALSE))) { con->last_errno=ENOMEM; strmov(con->last_error,"Cannot create network I/O object"); goto err; } vio_blocking(con->vio,TRUE); vio_blocking(vio,TRUE); my_net_init(&con->net,vio); bzero((char*) &sock_addr,sizeof(sock_addr)); sock_addr.sin_family = AF_INET; if ((int) (ip_addr = inet_addr(host)) != (int) INADDR_NONE) Loading Loading @@ -155,7 +157,7 @@ MYSQL_MANAGER* STDCALL mysql_manager_connect(MYSQL_MANAGER* con, goto err; } /* read the greating */ if (vio_read(con->vio,msg_buf,MAX_MYSQL_MANAGER_MSG)<=0) if (my_net_read(&con->net) == packet_error) { con->last_errno=errno; strmov(con->last_error,"Read error on socket"); Loading @@ -163,19 +165,19 @@ MYSQL_MANAGER* STDCALL mysql_manager_connect(MYSQL_MANAGER* con, } sprintf(msg_buf,"%-.16s %-.16s\n",user,passwd); msg_len=strlen(msg_buf); if (vio_write(con->vio,msg_buf,msg_len)!=msg_len) if (my_net_write(&con->net,msg_buf,msg_len) || net_flush(&con->net)) { con->last_errno=errno; con->last_errno=con->net.last_errno; strmov(con->last_error,"Write error on socket"); goto err; } if (vio_read(con->vio,msg_buf,MAX_MYSQL_MANAGER_MSG)<=0) if (my_net_read(&con->net) == packet_error) { con->last_errno=errno; strmov(con->last_error,"Read error on socket"); goto err; } if ((con->cmd_status=atoi(msg_buf)) != MANAGER_OK) if ((con->cmd_status=atoi(con->net.read_pos)) != MANAGER_OK) { strmov(con->last_error,"Access denied"); goto err; Loading Loading @@ -210,11 +212,7 @@ void STDCALL mysql_manager_close(MYSQL_MANAGER* con) allocated in my_multimalloc() along with con->host, freeing con->hosts frees the whole block */ if (con->vio) { vio_delete(con->vio); con->vio=0; } net_end(&con->net); if (con->free_me) my_free((gptr)con,MYF(0)); } Loading @@ -224,7 +222,7 @@ int STDCALL mysql_manager_command(MYSQL_MANAGER* con,const char* cmd, { if (!cmd_len) cmd_len=strlen(cmd); if (vio_write(con->vio,(char*)cmd,cmd_len) != cmd_len) if (my_net_write(&con->net,(char*)cmd,cmd_len) || net_flush(&con->net)) { con->last_errno=errno; strmov(con->last_error,"Write error on socket"); Loading @@ -238,9 +236,9 @@ int STDCALL mysql_manager_fetch_line(MYSQL_MANAGER* con, char* res_buf, int res_buf_size) { char* res_buf_end=res_buf+res_buf_size; char* net_buf_pos=con->net_buf_pos, *net_buf_end=con->net_data_end; char* net_buf=con->net.read_pos, *net_buf_end; int res_buf_shift=RES_BUF_SHIFT; int done=0; uint num_bytes; if (res_buf_size<RES_BUF_SHIFT) { Loading @@ -249,51 +247,27 @@ int STDCALL mysql_manager_fetch_line(MYSQL_MANAGER* con, char* res_buf, return 1; } for (;;) { for (;net_buf_pos<net_buf_end && res_buf<res_buf_end; net_buf_pos++,res_buf++) { char c=*net_buf_pos; if (c == '\r') c=*++net_buf_pos; if (c == '\n') { *res_buf=0; net_buf_pos++; done=1; break; } else *res_buf=*net_buf_pos; } if (done || res_buf==res_buf_end) break; if (net_buf_pos == net_buf_end && res_buf<res_buf_end) { int num_bytes; if ((num_bytes=vio_read(con->vio,con->net_buf,con->net_buf_size))<=0) if ((num_bytes=my_net_read(&con->net)) == packet_error) { con->last_errno=errno; strmov(con->last_error,"socket read failed"); return 1; } net_buf_pos=con->net_buf; net_buf_end=net_buf_pos+num_bytes; } } con->net_buf_pos=net_buf_pos; con->net_data_end=net_buf_end; res_buf=res_buf_end-res_buf_size; if ((con->eof=(res_buf[3]==' '))) net_buf_end=net_buf+num_bytes; if ((con->eof=(net_buf[3]==' '))) res_buf_shift--; res_buf_end-=res_buf_shift; for (;res_buf<res_buf_end;res_buf++) net_buf+=res_buf_shift; res_buf_end[-1]=0; for (;net_buf<net_buf_end && res_buf < res_buf_end;res_buf++,net_buf++) { if((*res_buf=*net_buf) == '\r') { if(!(*res_buf=res_buf[res_buf_shift])) *res_buf=0; break; } } return 0; } Loading Loading
client/mysqlmanagerc.c +2 −2 Original line number Diff line number Diff line Loading @@ -14,7 +14,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #define MANAGER_CLIENT_VERSION "1.0" #define MANAGER_CLIENT_VERSION "1.1" #include <my_global.h> #include <mysql.h> Loading @@ -28,7 +28,7 @@ #include <unistd.h> #ifndef MYSQL_MANAGER_PORT #define MYSQL_MANAGER_PORT 23546 #define MYSQL_MANAGER_PORT 9305 #endif static void die(const char* fmt, ...); Loading
client/mysqltest.c +3 −0 Original line number Diff line number Diff line Loading @@ -2158,12 +2158,15 @@ static void var_from_env(const char* name, const char* def_val) static void init_var_hash() { VAR* v; if (hash_init(&var_hash, 1024, 0, 0, get_var_key, var_free, MYF(0))) die("Variable hash initialization failed"); var_from_env("MASTER_MYPORT", "9306"); var_from_env("SLAVE_MYPORT", "9307"); var_from_env("MYSQL_TEST_DIR", "/tmp"); var_from_env("BIG_TEST", opt_big_test ? "1" : "0"); v=var_init(0,"MAX_TABLES", 0, (sizeof(ulong) == 4) ? "31" : "63",0); hash_insert(&var_hash, (byte*)v); } Loading
include/mysql.h +1 −1 Original line number Diff line number Diff line Loading @@ -238,7 +238,7 @@ typedef struct st_mysql_res { typedef struct st_mysql_manager { Vio* vio; NET net; char *host,*user,*passwd; unsigned int port; my_bool free_me; Loading
libmysql/libmysql.c +5 −4 Original line number Diff line number Diff line Loading @@ -905,7 +905,8 @@ unpack_fields(MYSQL_DATA *data,MEM_ROOT *alloc,uint fields, static MYSQL_DATA *read_rows(MYSQL *mysql,MYSQL_FIELD *mysql_fields, uint fields) { uint field,pkt_len; uint field; ulong pkt_len; ulong len; uchar *cp; char *to; Loading Loading @@ -991,7 +992,7 @@ read_one_row(MYSQL *mysql,uint fields,MYSQL_ROW row, ulong *lengths) ulong pkt_len,len; uchar *pos,*prev_pos; if ((pkt_len=(uint) net_safe_read(mysql)) == packet_error) if ((pkt_len=net_safe_read(mysql)) == packet_error) return -1; if (pkt_len == 1 && mysql->net.read_pos[0] == 254) return 1; /* End of data */ Loading Loading @@ -1453,7 +1454,7 @@ mysql_real_connect(MYSQL *mysql,const char *host, const char *user, my_socket sock; uint32 ip_addr; struct sockaddr_in sock_addr; uint pkt_length; ulong pkt_length; NET *net= &mysql->net; #ifdef __WIN__ HANDLE hPipe=INVALID_HANDLE_VALUE; Loading Loading @@ -2135,7 +2136,7 @@ int STDCALL mysql_read_query_result(MYSQL *mysql) uchar *pos; ulong field_count; MYSQL_DATA *fields; uint length; ulong length; DBUG_ENTER("mysql_read_query_result"); /* read from the connection which we actually used, which Loading
libmysql/manager.c +28 −54 Original line number Diff line number Diff line Loading @@ -91,6 +91,7 @@ MYSQL_MANAGER* STDCALL mysql_manager_connect(MYSQL_MANAGER* con, uint32 ip_addr; char msg_buf[MAX_MYSQL_MANAGER_MSG]; int msg_len; Vio* vio; if (!host) host="localhost"; Loading @@ -105,13 +106,14 @@ MYSQL_MANAGER* STDCALL mysql_manager_connect(MYSQL_MANAGER* con, strmov(con->last_error,"Cannot create socket"); goto err; } if (!(con->vio=vio_new(sock,VIO_TYPE_TCPIP,FALSE))) if (!(vio=vio_new(sock,VIO_TYPE_TCPIP,FALSE))) { con->last_errno=ENOMEM; strmov(con->last_error,"Cannot create network I/O object"); goto err; } vio_blocking(con->vio,TRUE); vio_blocking(vio,TRUE); my_net_init(&con->net,vio); bzero((char*) &sock_addr,sizeof(sock_addr)); sock_addr.sin_family = AF_INET; if ((int) (ip_addr = inet_addr(host)) != (int) INADDR_NONE) Loading Loading @@ -155,7 +157,7 @@ MYSQL_MANAGER* STDCALL mysql_manager_connect(MYSQL_MANAGER* con, goto err; } /* read the greating */ if (vio_read(con->vio,msg_buf,MAX_MYSQL_MANAGER_MSG)<=0) if (my_net_read(&con->net) == packet_error) { con->last_errno=errno; strmov(con->last_error,"Read error on socket"); Loading @@ -163,19 +165,19 @@ MYSQL_MANAGER* STDCALL mysql_manager_connect(MYSQL_MANAGER* con, } sprintf(msg_buf,"%-.16s %-.16s\n",user,passwd); msg_len=strlen(msg_buf); if (vio_write(con->vio,msg_buf,msg_len)!=msg_len) if (my_net_write(&con->net,msg_buf,msg_len) || net_flush(&con->net)) { con->last_errno=errno; con->last_errno=con->net.last_errno; strmov(con->last_error,"Write error on socket"); goto err; } if (vio_read(con->vio,msg_buf,MAX_MYSQL_MANAGER_MSG)<=0) if (my_net_read(&con->net) == packet_error) { con->last_errno=errno; strmov(con->last_error,"Read error on socket"); goto err; } if ((con->cmd_status=atoi(msg_buf)) != MANAGER_OK) if ((con->cmd_status=atoi(con->net.read_pos)) != MANAGER_OK) { strmov(con->last_error,"Access denied"); goto err; Loading Loading @@ -210,11 +212,7 @@ void STDCALL mysql_manager_close(MYSQL_MANAGER* con) allocated in my_multimalloc() along with con->host, freeing con->hosts frees the whole block */ if (con->vio) { vio_delete(con->vio); con->vio=0; } net_end(&con->net); if (con->free_me) my_free((gptr)con,MYF(0)); } Loading @@ -224,7 +222,7 @@ int STDCALL mysql_manager_command(MYSQL_MANAGER* con,const char* cmd, { if (!cmd_len) cmd_len=strlen(cmd); if (vio_write(con->vio,(char*)cmd,cmd_len) != cmd_len) if (my_net_write(&con->net,(char*)cmd,cmd_len) || net_flush(&con->net)) { con->last_errno=errno; strmov(con->last_error,"Write error on socket"); Loading @@ -238,9 +236,9 @@ int STDCALL mysql_manager_fetch_line(MYSQL_MANAGER* con, char* res_buf, int res_buf_size) { char* res_buf_end=res_buf+res_buf_size; char* net_buf_pos=con->net_buf_pos, *net_buf_end=con->net_data_end; char* net_buf=con->net.read_pos, *net_buf_end; int res_buf_shift=RES_BUF_SHIFT; int done=0; uint num_bytes; if (res_buf_size<RES_BUF_SHIFT) { Loading @@ -249,51 +247,27 @@ int STDCALL mysql_manager_fetch_line(MYSQL_MANAGER* con, char* res_buf, return 1; } for (;;) { for (;net_buf_pos<net_buf_end && res_buf<res_buf_end; net_buf_pos++,res_buf++) { char c=*net_buf_pos; if (c == '\r') c=*++net_buf_pos; if (c == '\n') { *res_buf=0; net_buf_pos++; done=1; break; } else *res_buf=*net_buf_pos; } if (done || res_buf==res_buf_end) break; if (net_buf_pos == net_buf_end && res_buf<res_buf_end) { int num_bytes; if ((num_bytes=vio_read(con->vio,con->net_buf,con->net_buf_size))<=0) if ((num_bytes=my_net_read(&con->net)) == packet_error) { con->last_errno=errno; strmov(con->last_error,"socket read failed"); return 1; } net_buf_pos=con->net_buf; net_buf_end=net_buf_pos+num_bytes; } } con->net_buf_pos=net_buf_pos; con->net_data_end=net_buf_end; res_buf=res_buf_end-res_buf_size; if ((con->eof=(res_buf[3]==' '))) net_buf_end=net_buf+num_bytes; if ((con->eof=(net_buf[3]==' '))) res_buf_shift--; res_buf_end-=res_buf_shift; for (;res_buf<res_buf_end;res_buf++) net_buf+=res_buf_shift; res_buf_end[-1]=0; for (;net_buf<net_buf_end && res_buf < res_buf_end;res_buf++,net_buf++) { if((*res_buf=*net_buf) == '\r') { if(!(*res_buf=res_buf[res_buf_shift])) *res_buf=0; break; } } return 0; } Loading