EM_UNIVERSAL_ARGUMENT undeclared – Building Asterisk 1.8.2 on Solaris 10 x86
When building on Solaris there are a few Rules to follow and these are shared with regular building as well, but sometimes there are some particularities
When building on Solaris there are a few Rules to follow and these are shared with regular building as well, but sometimes there are some particularities
Have you attempted to use Sqlite with php 5.2.x at all? There is a module that you can use and there was a pecl module apparently but the pecl comes not recommended for production.
Continue reading
There are a number of operations in mysql that could benefit from being optimized in a script that performs these actions on all tables. A List of maintenance commands can be found. As it is, currently I have created a number of scripts for performing Analysis, Backup, Check, Checksum, Optimize, Repair, Restore. The tools are designed to operate on all table names accessible from the INFORMATION_SCHEMA.TABLES with the exception of the information_schema tables.
Have you tried using a syntax highlighter for any websites like possibly a joomla website? Have you run into issues when you got to save a document and you end up having an endless supply of <br > tags all over the place.
Continue reading
I have found a way to quite easily use the existing digest functions provided by OpenSSL. I have successfully been able to compile and run this on Solaris 10×86 and I think that as long as you have a current ssl implementation, this should work quite well. I have not thoroughly tested everything however, but have repeated the EVP_ function code pattern found here. This pattern is very simple and easy to use. I have also used a code pattern for a sample Sqlite3 Extension from here. As it is, the documentation is good enough to perform the simple task a few times and at a minimum for my implementation include these algorithms: md2, md5, sha, sha1, ripemd160.
static void [function_name]( sqlite3_context *context, int argc, sqlite3_value **argv ){ unsigned char md_value[EVP_MAX_MD_SIZE]; int md_len,i; if ( argc != 1 ){ sqlite3_result_null(context); return ; } EVP_MD_CTX ctx ; EVP_MD_CTX_init(&ctx); if(EVP_DigestInit_ex(&ctx,EVP_[function_name](),NULL)){ char * input = 0 ; char * output = 0 ; input = ( char * ) sqlite3_value_text(argv[0]); EVP_DigestUpdate(&ctx, input, strlen(input)); EVP_DigestFinal_ex(&ctx,md_value,&md_len); output = ( char * ) malloc ( md_len * 2 + 1 ); if ( !output ){ sqlite3_result_null(context); EVP_MD_CTX_cleanup(&ctx); return ; } for (i = 0; i < md_len; i++){ sprintf (&output[i*2],"%02x", (unsigned char)md_value[i]); } sqlite3_result_text(context,output,strlen(output),(void*)-1); free(output); output=0; }else{ sqlite3_result_null(context); } EVP_MD_CTX_cleanup(&ctx); }
int sqlite3_extension_init( sqlite3 *db, char **pzErrMsg, const sqlite3_api_routines *pApi ){ SQLITE_EXTENSION_INIT2(pApi) sqlite3_create_function(db, "md2", 1, SQLITE_ANY, 0, md2, 0, 0); sqlite3_create_function(db, "md5", 1, SQLITE_ANY, 0, md5, 0, 0); sqlite3_create_function(db, "sha", 1, SQLITE_ANY, 0, sha, 0, 0); sqlite3_create_function(db, "sha1", 1, SQLITE_ANY, 0, sha1, 0, 0); // ** Not Used as it didn't seem to be available in my OpenSSL // sqlite3_create_function(db, "mdc2", 1, SQLITE_ANY, 0, mdc2, 0, 0); sqlite3_create_function(db, "ripemd160", 1, SQLITE_ANY, 0, ripemd160, 0, 0); return 0; }
The command line I used to compile was quite simple and just needed to include the -lssl .
gcc -shared -fPIC -Isqlite3 -lssl -o sqlite_digest.ext sqlite_digest.c
My set up includes sqlite and openssl in my include path so there may be issues if this is not your set up.
To load the library in Sqlite, you simply need to run the command line version as follows:
sqlite3 [optional database name] sqlite>SELECT load_extension('./sqlite_digest.ext'); sqlite>SELECT md2('test'); dd34716876364a02d0195e2fb9ae2d1b sqlite>SELECT md5('test'); 098f6bcd4621d373cade4e832627b4f6 sqlite>SELECT sha('test'); f8d3b312442a67706057aeb45b983221afb4f035 sqlite>SELECT sha1('test'); a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 sqlite>SELECT ripemd160('test'); 5e52fee47e6b070565f74372468cdc699de89107
New Updated Link
Source Code to Sqlite Hashing Functions Library
SwhistleSoft Downloads