Commit 8017e9c4 authored by unknown's avatar unknown
Browse files

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
parent 6a9a35c0
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -2981,11 +2981,11 @@ ER_CANT_OPEN_LIBRARY
	cze "Nemohu otev-Bt sdlenou 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 bibliothque partage '%-.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 "No 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 "Nemem otvori zdiean kninicu '%-.64s' (chybov kd: %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-Bt funkci '%-.64s' v knihovn"
	dan "Kan ikke finde funktionen '%-.64s' i bibliotek"
+13 −4
Original line number Diff line number Diff line
@@ -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 */