summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <serg@serg.mylan>2006-02-07 15:24:34 +0100
committerunknown <serg@serg.mylan>2006-02-07 15:24:34 +0100
commit8017e9c4e726f8ab6b8b2c71f81e0e0036c21fcd (patch)
tree2286b6f243b368fbdb5a7d2de2f9c8e1cf89718a /sql
parent6a9a35c0d451429a71ddbfd3c4b1db1700be9ad3 (diff)
downloadmariadb-git-8017e9c4e726f8ab6b8b2c71f81e0e0036c21fcd.tar.gz
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
Diffstat (limited to 'sql')
-rw-r--r--sql/share/errmsg.txt14
-rw-r--r--sql/sql_plugin.cc17
2 files changed, 20 insertions, 11 deletions
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 */