mirror of https://github.com/asterisk/asterisk
issue #4678
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6936 65c4cc65-6c06-0410-ace0-fbb531ad65f31.2-netsec
parent
b05e64ed12
commit
7ffb604a2f
@ -0,0 +1,6 @@
|
||||
OBJS=cygloader.o
|
||||
all: $(OBJS)
|
||||
$(OBJS) : %.o: %.c
|
||||
$(CC) $< -o asterisk.exe
|
||||
clean:
|
||||
rm -f asterisk.exe
|
@ -0,0 +1,33 @@
|
||||
#include <unistd.h>
|
||||
#include <dlfcn.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#define OK 0
|
||||
#define MODULE_NOT_FOUND 1
|
||||
#define INVALID_NUMBER_ARGUMENTS 2
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
/* Asterisk entry point */
|
||||
char* error = NULL;
|
||||
int (*ast_main)(int argc, char **argv);
|
||||
|
||||
void *handle = dlopen ("asterisk.dll", RTLD_GLOBAL);
|
||||
if (handle == NULL) {
|
||||
fputs (dlerror(), stderr);
|
||||
fputs ("\r\n", stderr);
|
||||
return MODULE_NOT_FOUND;
|
||||
}
|
||||
printf("\r\nAsterisk module loaded successfully");
|
||||
ast_main = dlsym(handle, "main");
|
||||
if ((error = dlerror()) != NULL) {
|
||||
fputs("Asterisk main not found", stderr);
|
||||
fputs(error, stderr);
|
||||
exit(1);
|
||||
}
|
||||
printf("\r\nAsterisk entry point found");
|
||||
/* run asterisk main */
|
||||
(*ast_main)(argc, argv);
|
||||
dlclose(handle);
|
||||
printf("\r\nAsterisk stopped");
|
||||
return OK;
|
||||
}
|
Loading…
Reference in new issue