Changeset: bdc2cf595881 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/bdc2cf595881
Branch: default
Log Message:

Merge with embedded_mapi.


diffs (118 lines):

diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -1447,6 +1447,7 @@ char *monetdbe_error(monetdbe_database d
 char *monetdbe_execute(monetdbe_statement *stmt, monetdbe_result **result, 
monetdbe_cnt *affected_rows);
 char *monetdbe_get_autocommit(monetdbe_database dbhdl, int *result);
 char *monetdbe_get_columns(monetdbe_database dbhdl, const char *schema_name, 
const char *table_name, size_t *column_count, monetdbe_column **columns);
+const char *monetdbe_get_mapi_port(void);
 int monetdbe_in_transaction(monetdbe_database dbhdl);
 const void *monetdbe_null(monetdbe_database dbhdl, monetdbe_types t);
 int monetdbe_open(monetdbe_database *db, char *url, monetdbe_options *opts);
diff --git a/monetdb5/mal/mal_session.c b/monetdb5/mal/mal_session.c
--- a/monetdb5/mal/mal_session.c
+++ b/monetdb5/mal/mal_session.c
@@ -273,21 +273,24 @@ MSscheduleClient(str command, str challe
                return;
        } else {
                str err;
-               oid uid;
+               oid uid = 0;
                sabdb *stats = NULL;
 
-               /* access control: verify the credentials supplied by the user,
-                * no need to check for database stuff, because that is done per
-                * database itself (one gets a redirect) */
-               err = AUTHcheckCredentials(&uid, NULL, user, passwd, challenge, 
algo);
-               if (err != MAL_SUCCEED) {
-                       mnstr_printf(fout, "!%s\n", err);
-                       exit_streams(fin, fout);
-                       freeException(err);
-                       GDKfree(command);
-                       return;
+               if (!GDKembedded()) {
+                       /* access control: verify the credentials supplied by 
the user,
+                       * no need to check for database stuff, because that is 
done per
+                       * database itself (one gets a redirect) */
+                       err = AUTHcheckCredentials(&uid, NULL, user, passwd, 
challenge, algo);
+                       if (err != MAL_SUCCEED) {
+                               mnstr_printf(fout, "!%s\n", err);
+                               exit_streams(fin, fout);
+                               freeException(err);
+                               GDKfree(command);
+                               return;
+                       }
                }
 
+
                if (!GDKinmemory(0) && !GDKembedded()) {
                        err = msab_getMyStatus(&stats);
                        if (err != NULL) {
diff --git a/tools/monetdbe/monetdbe.c b/tools/monetdbe/monetdbe.c
--- a/tools/monetdbe/monetdbe.c
+++ b/tools/monetdbe/monetdbe.c
@@ -617,7 +617,7 @@ monetdbe_startup(monetdbe_database_inter
                goto cleanup;
        }
 
-        with_mapi_server = false;
+       with_mapi_server = false;
 
        if (monetdbe_embedded_initialized) {
                set_error(mdbe, createException(MAL, 
"monetdbe.monetdbe_startup", "MonetDBe is already initialized"));
@@ -646,8 +646,18 @@ monetdbe_startup(monetdbe_database_inter
 
        if (opts && opts->mapi_server) {
                /*This monetdbe instance wants to listen to external mapi 
client connections.*/
-               with_mapi_server = true;
+               if (opts->mapi_server->host) {
+                       with_mapi_server = true;
+                       int psetlen = setlen;
+                       setlen = mo_add_option(&set, setlen, opt_cmdline, 
"mapi_listenaddr", opts->mapi_server->host);
+                       if (setlen == psetlen) {
+                               mo_free_options(set, setlen);
+                               set_error(mdbe, createException(MAL, 
"monetdbe.monetdbe_startup", MAL_MALLOC_FAIL));
+                               goto cleanup;
+                       }
+               }
                if (opts->mapi_server->port) {
+                       with_mapi_server = true;
                        int psetlen = setlen;
                        setlen = mo_add_option(&set, setlen, opt_cmdline, 
"mapi_port", opts->mapi_server->port);
                        if (setlen == psetlen) {
@@ -657,6 +667,7 @@ monetdbe_startup(monetdbe_database_inter
                        }
                }
                if (opts->mapi_server->usock) {
+                       with_mapi_server = true;
                        int psetlen = setlen;
                        setlen = mo_add_option(&set, setlen, opt_cmdline, 
"mapi_usock", opts->mapi_server->usock);
                        if (setlen == psetlen) {
@@ -2831,3 +2842,8 @@ timestamp_from_data(monetdbe_data_timest
                date_create(ptr->date.year, ptr->date.month, ptr->date.day),
                daytime_create(ptr->time.hours, ptr->time.minutes, 
ptr->time.seconds, ptr->time.ms * 1000));
 }
+
+const char*
+monetdbe_get_mapi_port(void) {
+       return GDKgetenv("mapi_port");
+}
diff --git a/tools/monetdbe/monetdbe.h b/tools/monetdbe/monetdbe.h
--- a/tools/monetdbe/monetdbe.h
+++ b/tools/monetdbe/monetdbe.h
@@ -103,6 +103,7 @@ typedef struct {
 } monetdbe_remote;
 
 typedef struct {
+       const char *host;
        const char* port;
        const char* usock;
 } monetdbe_mapi_server;
@@ -179,6 +180,7 @@ monetdbe_export char* monetdbe_get_colum
 
 monetdbe_export char* monetdbe_dump_database(monetdbe_database dbhdl, const 
char *backupfile);
 monetdbe_export char* monetdbe_dump_table(monetdbe_database dbhdl, const char 
*schema_name, const char *table_name, const char *backupfile);
+monetdbe_export const char* monetdbe_get_mapi_port(void);
 
 #ifdef __cplusplus
 }
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to