X-Git-Url: https://git.tokkee.org/?p=sysdb.git;a=blobdiff_plain;f=src%2Ffrontend%2Fsession.c;h=2b568b1948ee5366df066a1d2217ff48a1ba23bc;hp=b1e527a06708e53a74e94a071d4d9fb82cf04037;hb=39a45905e0b237e458b1826ff9b4fad1c4a59550;hpb=632194d1187066a987596eebefd37a34a23e042c diff --git a/src/frontend/session.c b/src/frontend/session.c index b1e527a..2b568b1 100644 --- a/src/frontend/session.c +++ b/src/frontend/session.c @@ -25,27 +25,46 @@ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#if HAVE_CONFIG_H +# include "config.h" +#endif /* HAVE_CONFIG_H */ + #include "sysdb.h" -#include "frontend/connection.h" +#include "frontend/connection-private.h" + +#include /* * public API */ int -sdb_session_start(sdb_conn_t *conn) +sdb_fe_session_start(sdb_conn_t *conn) { + const char *username; + if ((! conn) || (conn->username)) return -1; if (conn->cmd != CONNECTION_STARTUP) return -1; + username = sdb_strbuf_string(conn->buf); + if ((! username) || (! conn->cmd_len) || (! *username)) { + sdb_strbuf_sprintf(conn->errbuf, "Invalid empty username"); + return -1; + } + /* XXX: for now, simply accept all connections */ + conn->username = strndup(username, conn->cmd_len); + if (! conn->username) { + sdb_strbuf_sprintf(conn->errbuf, "Authentication failed"); + return -1; + } sdb_connection_send(conn, CONNECTION_OK, 0, NULL); return 0; -} /* session_start */ +} /* sdb_fe_session_start */ /* vim: set tw=78 sw=4 ts=4 noexpandtab : */