Commit Graph

56 Commits

Author SHA1 Message Date
64aca25892 Changed name of poll() function to avoid conflict 2013-06-24 17:54:30 +02:00
f4c1b298d6 Fixes for close and cleanup of sessions, dcb, router sessions etc.
Fix memory leak in config

Fix for debug command execution without second argument
2013-06-24 16:43:17 +02:00
2ec19bf7ca Fix to the hashtable support
Renamed alloc_dcb, free_dcb and connect_dcb to be more consistant, e.g. dcb_alloc, dcb_free and dcb_connect
2013-06-24 15:09:37 +02:00
1d3da6d18f Addition of users_update
Fixed warning in service_alloc

Correct comment in gateway.c
2013-06-24 14:39:34 +02:00
6b0220a468 Fixed compile warnings 2013-06-24 13:54:39 +02:00
41ddbbea97 Fixed gw_hex2bin: problems calling char_val.
If we want tu use a compact implementation, we should use


static inline uint8 char_val(uint8 X)
{
  return (uint) (X >= '0' && X <= '9' ? X-'0' :
      X >= 'A' && X <= 'Z' ? X-'A'+10 : X-'a'+10);
}
2013-06-24 13:43:01 +02:00
aeda47c69d Fix to the hashtable for misisng mod of hashsize
Addition of multiple reader/single writer locking mechanism
2013-06-24 13:09:11 +02:00
69de408d8a Implementation of the users table and a generic hashtable mechanism 2013-06-24 11:35:40 +02:00
b9e079ce17 Addition of the administration user in the service
Addition of general purpose hashtable (not complete) and users table (not complete)
2013-06-24 00:59:12 +02:00
0b7803a122 Addition of searching rules for the gateway.cnf file. Better diagnostics for missing
gatway.cnf file.

Cleanup for config reading when no modules could be found.
2013-06-21 17:44:49 +02:00
2027f0261b Documentation cleanup and a statistics fix 2013-06-21 17:28:56 +02:00
3956abe604 Addition of configuration file support
Cleanup a few warnings
2013-06-21 17:14:39 +02:00
e767c70acb Added backend connections via session_alloc called after AUTH_OK
the newSession calls connect_dcb and then the connect() in mysql_backend.c

The selected backend is always the last  one ath the moment.

For the transparent Authentication dcb->data is used to store MySQL session data before starting the session.

This could be revisited.


Please note the COM_QUIT in mysql_client.c has the close functionalities but they are now disabled for testing/debug
2013-06-21 13:05:51 +02:00
d2fbc42b3a alloc_dcb now has rval->next = NULL; 2013-06-21 12:35:01 +02:00
cb26490a06 Addition of server status flags
Addition of dcb role API
2013-06-21 10:45:39 +02:00
237a311dda In newSession (readconnroute.c) connect_dcb will create backend connection via backend_dcb->func.connect()
session_alloc will not start a newSession for the LISTENING socket

In dcb.h void *data was added to keep protocol session data if the session is not started in accept(9 but later.
2013-06-20 19:06:16 +02:00
088b3473bc Improved to diagnostic routines and documentation for the debug cli interpreter 2013-06-20 15:03:55 +02:00
e55631e60f Improved debug CLI command interpreter to allow for commands with arguments 2013-06-20 13:21:37 +02:00
78c371e92f Changes to connect infrastructure 2013-06-19 19:11:35 +02:00
39c8695819 Misc fixes 2013-06-19 18:46:24 +02:00
0fc2f9dda3 Removed the passing of epoll fd and isolated epoll functionality to
a signle file

Addition of show epoll debug CLI command
2013-06-19 16:29:52 +02:00
c2b24884fd Updates for the debug cli interface 2013-06-19 13:21:37 +02:00
53b6bc0a25 A number of updates to do with service startup
Telnet protocol support

Debug cli
2013-06-19 12:31:40 +02:00
461dc31578 Fixed:
if (strcmp(registered->module, module) == 0)

in find_module
2013-06-19 11:32:53 +02:00
ec688e6222 Addition of the service, server, serv_protocol and session structure needed to tie the elements together.
Improvements to the protocol module support

Documentation improvements

Addition of make install target
2013-06-18 16:59:01 +02:00
6afc2e432b Addition of -Wall to CFLAGS
Cleanup warnings produced by above with the exception of those files requiring reorganisation
2013-06-17 14:25:32 +02:00
1300c5d089 Addition of dependencies to the makefile
New make target of "make depend"
Addition of doxygen building ability
Cleanup of docygen comment blocks
Initial telnetd protocol module structure
2013-06-17 14:03:05 +02:00
939d2bf46c Addition of a version of printf that can print to a DCB 2013-06-15 12:12:21 +01:00
fad37adfbf Added comments for gw_mysql_do_authentication 2013-06-14 18:39:42 +02:00
aa006a9406 gw_mysql_do_authentication puts user, db, and client_sha1 in the (MYSQL_session *) session->data of client DCB.
gw_mysql_connect can now access this session->data for transparent authentication
2013-06-14 18:27:43 +02:00
936ccfeda3 Merged 2013-06-14 18:13:23 +02:00
1239420be1 create_backend_connection added.
This routine calls the gw_mysql_connect passing the MySQL_session data available
2013-06-14 18:05:29 +02:00
34372fbc5d Addition of connect function to dcb functions and added dcb_connect routine 2013-06-14 17:55:31 +02:00
6690320542 Commiting these files 2013-06-14 14:27:43 +02:00
3b86c93adf Addition of global Makefile
First example external module, testroute, has been added. This serves more as an example than a real router
Updated module loading to used fixed GetModuleObject route and addition of ModuleInit routine
2013-06-14 11:51:54 +02:00
748230a7bb Merge commit 2013-06-13 18:44:29 +02:00
a5e1441cb8 Some fprintf removed.
Fixed an if statement without brackets
2013-06-13 18:38:03 +02:00
61cf0c6187 Addition of interface for loading external modules as shared library objects 2013-06-13 18:30:15 +02:00
269bef8280 Authentication FAILED triggers client and backend connection close.
mysqlslap tests show some memory is nod deallocated, probably some gwbuffer incorrect use or the error handling is not triggering any consume action on buffers.
2013-06-13 18:09:14 +02:00
a89c2bc1c0 Added gw_mysql_do_authentication() for checking authentication.
I uses the mysql protocol 4.1 authentication method.

The actual implementation requires the password is excatly equal to the username.

The client sends user: "user" and the password must be "user"

The gateway converts "user" in SHA1(SHA1("user") and then using the algorithm check all the data.

if the clients sends anything else than "user" the password algorithm check will fail.

IN the next release we must load into memory the content of mysql.user table, with fields user and password in memory.

The gateway will then find the HEX(SHA1(SHA1(real_password))) fro tahta table and check the incoming data.

Please note that real_password is not stored in any place: not in mysql db nor in the gateway.
2013-06-13 14:34:37 +02:00
732ff1732f Added username detection ofr authentication 2013-06-13 10:32:42 +02:00
bf36f01c33 Initial work on client flags(comprtess, client connect with db), next is authentication check 2013-06-13 10:13:43 +02:00
e31957f2d1 Initial work on local authentication 2013-06-13 10:12:50 +02:00
84ec7ffd51 Some fprintf has been removed 2013-06-13 00:31:35 +02:00
368ce2d8b7 New funcion for reading and store data in gwbuff, and its use in reading from client 2013-06-12 23:58:41 +02:00
2a9e0b06ef New version 2013-06-12 22:23:09 +02:00
a9bcc3841a Converted mysql_send_ok and MySQLSendHandshake to use the new buffer management
Also added the -p option to set listener port. This is a short term measure for testing only
until we have the proper configuration in place.
2013-06-12 17:13:04 +01:00
82b70e3877 New version, state2string updated 2013-06-12 17:18:22 +02:00
2cf646d948 in utils.c see line 88 for modifications 2013-06-12 15:15:09 +02:00
08549ad5ae Addition of some basic statistics on the DCB 2013-06-12 13:08:33 +01:00