/[mcrypt]/libmcrypt/lib/mcrypt_modules.c
ViewVC logotype

Diff of /libmcrypt/lib/mcrypt_modules.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.17 by nmav, Sun Sep 2 14:49:00 2001 UTC revision 1.18 by nmav, Sun Sep 2 20:11:45 2001 UTC
# Line 29  Line 29 
29  # define fputs(x, y)  # define fputs(x, y)
30  #endif  #endif
31    
32  extern const lt_dlsymlist lt_preloaded_symbols[];  extern const mcrypt_preloaded mps[];
33    
34  #define MAX_MOD_SIZE 1024  #define MAX_MOD_SIZE 1024
35    
36  static lt_ptr search_symlist_lib(const char* _name) {  static lt_ptr search_symlist_lib(const char* name) {
37  int i=0;  int i=0;
 char name[MAX_MOD_SIZE];  
   
         strcpy( name, _name);  
         strcat( name, ".a");  
38    
39          while( lt_preloaded_symbols[i].name!=0 || lt_preloaded_symbols[i].address!=0) {          while( mps[i].name!=0 || mps[i].address!=0) {
40                  if (lt_preloaded_symbols[i].name!=NULL) {                  if (mps[i].name!=NULL && mps[i].address==NULL) {
41                          if (strcmp(name, lt_preloaded_symbols[i].name)==0) {                          if (strcmp(name, mps[i].name)==0) {
42                                   return (void*) -1;                                   return (void*) -1;
43                          }                          }
44                  }                  }
# Line 60  char name[MAX_MOD_SIZE]; Line 56  char name[MAX_MOD_SIZE];
56          strcat( name, "_LTX_");          strcat( name, "_LTX_");
57          strcat( name, _name);          strcat( name, _name);
58                    
59          while( lt_preloaded_symbols[i].name!=0 || lt_preloaded_symbols[i].address!=0) {          while( mps[i].name!=0 || mps[i].address!=0) {
60                  if (lt_preloaded_symbols[i].name!=NULL) {                  if (mps[i].name!=NULL) {
61                          if (strcmp(name, lt_preloaded_symbols[i].name)==0) {                          if (strcmp(name, mps[i].name)==0) {
62                                   return lt_preloaded_symbols[i].address;                                   return mps[i].address;
63                          }                          }
64                  }                  }
65                  i++;                  i++;
# Line 113  int mcrypt_module_close(MCRYPT td) Line 109  int mcrypt_module_close(MCRYPT td)
109    
110  WIN32DLL_DEFINE  WIN32DLL_DEFINE
111  void* mcrypt_dlopen ( mcrypt_dlhandle* handle, const char* a_directory, const char *m_directory, const char *filename) {  void* mcrypt_dlopen ( mcrypt_dlhandle* handle, const char* a_directory, const char *m_directory, const char *filename) {
         static int loaded_symbols;  
112                    
113          char paths[1526];          char paths[1526];
114    
         if (loaded_symbols==0) {  
                 loaded_symbols=1;  
                 LTDL_SET_PRELOADED_SYMBOLS();  
         }  
   
115          if (strlen(filename) > sizeof( handle->name))          if (strlen(filename) > sizeof( handle->name))
116                  return MCRYPT_FAILED;                  return MCRYPT_FAILED;
117          else          else
118                  strcpy( handle->name, filename);                  strcpy( handle->name, filename);
119                                                    
120          if (search_symlist_lib(filename)!=NULL) {          if (search_symlist_lib(filename)!=NULL) {
 fprintf(stderr, "USING INTERNAL HANDLER\n");  
121                  handle->handle = MCRYPT_INTERNAL_HANDLER;                  handle->handle = MCRYPT_INTERNAL_HANDLER;
122                  return handle->handle;                  return handle->handle;
123          }          }

Legend:
Removed from v.1.17  
changed lines
  Added in v.1.18

webmaster@linux.gr
ViewVC Help
Powered by ViewVC 1.1.26