*
*/
+#ifdef DLL_EXPORT
+#define IN_LIBCIT
+#endif
+
#include "sysdep.h"
#include <stdio.h>
#include <stdlib.h>
void DLoader_Init(char *pathname)
{
void *fcn_handle;
- char dl_error[256];
+ char dl_error[SIZ];
DIR *dir;
int i;
struct dirent *dptr;
while ((dptr = readdir(dir)) != NULL) {
if (strlen(dptr->d_name) < 4)
continue;
+#ifndef __CYGWIN__
if (strcasecmp(&dptr->d_name[strlen(dptr->d_name)-3], ".so"))
+#else
+ if (strcasecmp(&dptr->d_name[strlen(dptr->d_name)-4], ".dll"))
+#endif
continue;
snprintf(pathbuf, PATH_MAX, "%s/%s", pathname, dptr->d_name);
-#ifdef RTLD_NOW
- if (!(fcn_handle = dlopen(pathbuf, RTLD_NOW)))
+ lprintf(7, "Initializing %s...\n", pathbuf);
+
+#ifdef RTLD_LAZY
+ if (!(fcn_handle = dlopen(pathbuf, RTLD_LAZY)))
#else /* OpenBSD */
if (!(fcn_handle = dlopen(pathbuf, DL_LAZY)))
#endif
void (*h_command_function) (void) )
{
struct ServiceFunctionHook *newfcn;
- char message[256];
+ char message[SIZ];
newfcn = (struct ServiceFunctionHook *)
mallok(sizeof(struct ServiceFunctionHook));
/* Other code may elect to protect this message from server-side
* handlers; if this is the case, don't do anything.
- */
lprintf(9, "** Event type is %d, flags are %d\n",
EventType, msg->cm_flags);
+ */
if (msg->cm_flags & CM_SKIP_HOOKS) {
lprintf(9, "Skipping hooks\n");
return(0);