First implementation for enable_load_extension
TODO: Wait for the reply of the port driver
This commit is contained in:
@@ -125,6 +125,16 @@ static ErlDrvData start(ErlDrvPort port, char* cmd) {
|
||||
return (ErlDrvData) retval;
|
||||
}
|
||||
|
||||
static int enable_load_extension(sqlite3_drv_t* drv, char *buf,
|
||||
int len) {
|
||||
if (buf[1]) {
|
||||
sqlite3_enable_load_extension(drv->db, 1);
|
||||
} else {
|
||||
sqlite3_enable_load_extension(drv->db, 0);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Driver Stop
|
||||
static void stop(ErlDrvData handle) {
|
||||
sqlite3_drv_t* driver_data = (sqlite3_drv_t*) handle;
|
||||
@@ -181,6 +191,9 @@ static int control(
|
||||
case CMD_SQL_EXEC_SCRIPT:
|
||||
sql_exec_script(driver_data, buf, len);
|
||||
break;
|
||||
case CMD_ENABLE_LOAD_EXTENSION:
|
||||
enable_load_extension(driver_data, buf, len);
|
||||
break;
|
||||
default:
|
||||
unknown(driver_data, buf, len);
|
||||
}
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
#define CMD_PREPARED_FINALIZE 10
|
||||
#define CMD_PREPARED_COLUMNS 11
|
||||
#define CMD_SQL_EXEC_SCRIPT 12
|
||||
#define CMD_ENABLE_LOAD_EXTENSION 13
|
||||
|
||||
// Number of bytes for each key
|
||||
// (160 bits for SHA1 hash)
|
||||
@@ -111,7 +112,7 @@ static void sql_exec_async(void *async_command);
|
||||
static void sql_free_async(void *async_command);
|
||||
static void ready_async(ErlDrvData drv_data, ErlDrvThreadData thread_data);
|
||||
static int unknown(sqlite3_drv_t *bdb_drv, char *buf, int len);
|
||||
|
||||
static int enable_load_extension(sqlite3_drv_t *drv, char *buf, int len);
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
#pragma warning(default: 4201)
|
||||
|
||||
Reference in New Issue
Block a user