From 8017e9c4e726f8ab6b8b2c71f81e0e0036c21fcd Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 7 Feb 2006 15:24:34 +0100 Subject: fixes for the ER_CANT_OPEN_LIBRARY message sql/share/errmsg.txt: .64s is too short for dlerror() messages sql/sql_plugin.cc: 1. dlerror() cannot be called twice 2. remove dlpath from dlerror() messages --- sql/share/errmsg.txt | 14 +++++++------- sql/sql_plugin.cc | 17 +++++++++++++---- 2 files changed, 20 insertions(+), 11 deletions(-) (limited to 'sql') diff --git a/sql/share/errmsg.txt b/sql/share/errmsg.txt index 346393041e9..be3c14d0039 100644 --- a/sql/share/errmsg.txt +++ b/sql/share/errmsg.txt @@ -2981,11 +2981,11 @@ ER_CANT_OPEN_LIBRARY cze "Nemohu otev-Bøít sdílenou knihovnu '%-.64s' (errno: %d %s)" dan "Kan ikke åbne delt bibliotek '%-.64s' (errno: %d %s)" nla "Kan shared library '%-.64s' niet openen (Errcode: %d %s)" - eng "Can't open shared library '%-.64s' (errno: %d %-.64s)" + eng "Can't open shared library '%-.64s' (errno: %d %s)" jps "shared library '%-.64s' ‚ðŠJ‚­Ž–‚ª‚Å‚«‚Ü‚¹‚ñ (errno: %d %s)", - est "Ei suuda avada jagatud teeki '%-.64s' (veakood: %d %-.64s)" + est "Ei suuda avada jagatud teeki '%-.64s' (veakood: %d %s)" fre "Impossible d'ouvrir la bibliothèque partagée '%-.64s' (errno: %d %s)" - ger "Kann Shared Library '%-.64s' nicht öffnen (Fehler: %d %-.64s)" + ger "Kann Shared Library '%-.64s' nicht öffnen (Fehler: %d %s)" greek "Äåí åßíáé äõíáôÞ ç áíÜãíùóç ôçò shared library '%-.64s' (êùäéêüò ëÜèïõò: %d %s)" hun "A(z) '%-.64s' megosztott konyvtar nem hasznalhato (hibakod: %d %s)" ita "Impossibile aprire la libreria condivisa '%-.64s' (errno: %d %s)" @@ -2995,13 +2995,13 @@ ER_CANT_OPEN_LIBRARY norwegian-ny "Can't open shared library '%-.64s' (errno: %d %s)" pol "Can't open shared library '%-.64s' (errno: %d %s)" por "Não pode abrir biblioteca compartilhada '%-.64s' (erro no. '%d' - '%-.64s')" - rum "Nu pot deschide libraria shared '%-.64s' (Eroare: %d %-.64s)" - rus "îÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ÄÉÎÁÍÉÞÅÓËÕÀ ÂÉÂÌÉÏÔÅËÕ '%-.64s' (ÏÛÉÂËÁ: %d %-.64s)" - serbian "Ne mogu da otvorim share-ovanu biblioteku '%-.64s' (errno: %d %-.64s)" + rum "Nu pot deschide libraria shared '%-.64s' (Eroare: %d %s)" + rus "îÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ÄÉÎÁÍÉÞÅÓËÕÀ ÂÉÂÌÉÏÔÅËÕ '%-.64s' (ÏÛÉÂËÁ: %d %s)" + serbian "Ne mogu da otvorim share-ovanu biblioteku '%-.64s' (errno: %d %s)" slo "Nemô¾em otvori» zdieµanú kni¾nicu '%-.64s' (chybový kód: %d %s)" spa "No puedo abrir libraria conjugada '%-.64s' (errno: %d %s)" swe "Kan inte öppna det dynamiska biblioteket '%-.64s' (Felkod: %d %s)" - ukr "îÅ ÍÏÖÕ ×¦ÄËÒÉÔÉ ÒÏÚĦÌÀ×ÁÎÕ Â¦Â̦ÏÔÅËÕ '%-.64s' (ÐÏÍÉÌËÁ: %d %-.64s)" + ukr "îÅ ÍÏÖÕ ×¦ÄËÒÉÔÉ ÒÏÚĦÌÀ×ÁÎÕ Â¦Â̦ÏÔÅËÕ '%-.64s' (ÐÏÍÉÌËÁ: %d %s)" ER_CANT_FIND_DL_ENTRY cze "Nemohu naj-Bít funkci '%-.64s' v knihovnì" dan "Kan ikke finde funktionen '%-.64s' i bibliotek" diff --git a/sql/sql_plugin.cc b/sql/sql_plugin.cc index b8628b18dd4..9fee7abb619 100644 --- a/sql/sql_plugin.cc +++ b/sql/sql_plugin.cc @@ -105,7 +105,7 @@ static st_plugin_dl *plugin_dl_add(LEX_STRING *dl, int report) { #ifdef HAVE_DLOPEN char dlpath[FN_REFLEN]; - uint plugin_dir_len, dummy_errors; + uint plugin_dir_len, dummy_errors, dlpathlen; struct st_plugin_dl *tmp, plugin_dl; void *sym; DBUG_ENTER("plugin_dl_add"); @@ -133,15 +133,24 @@ static st_plugin_dl *plugin_dl_add(LEX_STRING *dl, int report) } bzero(&plugin_dl, sizeof(plugin_dl)); /* Compile dll path */ - strxnmov(dlpath, sizeof(dlpath) - 1, opt_plugin_dir, "/", dl->str, NullS); + dlpathlen= + strxnmov(dlpath, sizeof(dlpath) - 1, opt_plugin_dir, "/", dl->str, NullS) - + dlpath; plugin_dl.ref_count= 1; /* Open new dll handle */ if (!(plugin_dl.handle= dlopen(dlpath, RTLD_NOW))) { + const char *errmsg=dlerror(); + if (!strncmp(dlpath, errmsg, dlpathlen)) + { // if errmsg starts from dlpath, trim this prefix. + errmsg+=dlpathlen; + if (*errmsg == ':') errmsg++; + if (*errmsg == ' ') errmsg++; + } if (report & REPORT_TO_USER) - my_error(ER_CANT_OPEN_LIBRARY, MYF(0), dlpath, errno, dlerror()); + my_error(ER_CANT_OPEN_LIBRARY, MYF(0), dlpath, errno, errmsg); if (report & REPORT_TO_LOG) - sql_print_error(ER(ER_CANT_OPEN_LIBRARY), dlpath, errno, dlerror()); + sql_print_error(ER(ER_CANT_OPEN_LIBRARY), dlpath, errno, errmsg); DBUG_RETURN(0); } /* Determine interface version */ -- cgit v1.2.1