]> git.sur5r.net Git - openldap/commitdiff
ITS#1646
authorLuke Howard <lukeh@openldap.org>
Tue, 16 Apr 2002 04:25:44 +0000 (04:25 +0000)
committerLuke Howard <lukeh@openldap.org>
Tue, 16 Apr 2002 04:25:44 +0000 (04:25 +0000)
13 files changed:
servers/slapd/back-perl/add.c
servers/slapd/back-perl/asperl_undefs.h [new file with mode: 0644]
servers/slapd/back-perl/backperl.dsp [new file with mode: 0644]
servers/slapd/back-perl/bind.c
servers/slapd/back-perl/close.c
servers/slapd/back-perl/compare.c
servers/slapd/back-perl/config.c
servers/slapd/back-perl/delete.c
servers/slapd/back-perl/init.c
servers/slapd/back-perl/modify.c
servers/slapd/back-perl/modrdn.c
servers/slapd/back-perl/perl_back.h
servers/slapd/back-perl/search.c

index 56548d04b350c3a0ada0ff415be22554e30cefe7..6f9477b348f5b67fa8197fe2cde17805cd1dc332 100644 (file)
 #include "portable.h"
 
 #include <stdio.h>
-/*     #include <ac/types.h>
-       #include <ac/socket.h>
-*/
+
+#include "slap.h"
+#ifdef HAVE_WIN32_ASPERL
+#include "asperl_undefs.h"
+#endif
 
 #include <EXTERN.h>
 #include <perl.h>
 
-#include "slap.h"
 #include "perl_back.h"
 
 int
diff --git a/servers/slapd/back-perl/asperl_undefs.h b/servers/slapd/back-perl/asperl_undefs.h
new file mode 100644 (file)
index 0000000..15d0eab
--- /dev/null
@@ -0,0 +1,20 @@
+/* This file is necessary because both PERL headers */
+/* and OpenLDAP define a number of macros without   */
+/* checking wether they're already defined */
+
+#ifndef ASPERL_UNDEFS_H
+#define ASPERL_UNDEFS_H
+
+/* ActiveState Win32 PERL port support */
+/* set in ldap/include/portable.h */
+#  ifdef HAVE_WIN32_ASPERL
+/* The following macros are undefined to prevent */
+/* redefinition in PERL headers*/
+#    undef gid_t
+#    undef uid_t
+#    undef mode_t
+#    undef caddr_t
+#    undef WIN32_LEAN_AND_MEAN
+#  endif
+#endif
+
diff --git a/servers/slapd/back-perl/backperl.dsp b/servers/slapd/back-perl/backperl.dsp
new file mode 100644 (file)
index 0000000..358d358
--- /dev/null
@@ -0,0 +1,186 @@
+# Microsoft Developer Studio Project File - Name="backperl" - Package Owner=<4>\r
+# Microsoft Developer Studio Generated Build File, Format Version 6.00\r
+# ** DO NOT EDIT **\r
+\r
+# TARGTYPE "Win32 (x86) Static Library" 0x0104\r
+\r
+CFG=backperl - Win32 Single Debug\r
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,\r
+!MESSAGE use the Export Makefile command and run\r
+!MESSAGE \r
+!MESSAGE NMAKE /f "backperl.mak".\r
+!MESSAGE \r
+!MESSAGE You can specify a configuration when running NMAKE\r
+!MESSAGE by defining the macro CFG on the command line. For example:\r
+!MESSAGE \r
+!MESSAGE NMAKE /f "backperl.mak" CFG="backperl - Win32 Single Debug"\r
+!MESSAGE \r
+!MESSAGE Possible choices for configuration are:\r
+!MESSAGE \r
+!MESSAGE "backperl - Win32 Release" (based on "Win32 (x86) Static Library")\r
+!MESSAGE "backperl - Win32 Debug" (based on "Win32 (x86) Static Library")\r
+!MESSAGE "backperl - Win32 Single Debug" (based on "Win32 (x86) Static Library")\r
+!MESSAGE "backperl - Win32 Single Release" (based on "Win32 (x86) Static Library")\r
+!MESSAGE \r
+\r
+# Begin Project\r
+# PROP AllowPerConfigDependencies 0\r
+# PROP Scc_ProjName ""\r
+# PROP Scc_LocalPath ""\r
+CPP=cl.exe\r
+RSC=rc.exe\r
+\r
+!IF  "$(CFG)" == "backperl - Win32 Release"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 0\r
+# PROP BASE Output_Dir "Release"\r
+# PROP BASE Intermediate_Dir "Release"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 0\r
+# PROP Output_Dir "..\..\..\Release"\r
+# PROP Intermediate_Dir "..\..\..\Release\backperl"\r
+# PROP Target_Dir ""\r
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c\r
+# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\\" /I "..\..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_CONSOLE" /D "NO_STRICT" /D "HAVE_DES_CRYPT" /D "PERL_IMPLICIT_CONTEXT" /D "PERL_IMPLICIT_SYS" /D "PERL_MSVCRT_READFIX" /D "MULTIPLICITY" /YX /FD /c\r
+# ADD BASE RSC /l 0x409\r
+# ADD RSC /l 0x409\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LIB32=link.exe -lib\r
+# ADD BASE LIB32 /nologo\r
+# ADD LIB32 /nologo\r
+\r
+!ELSEIF  "$(CFG)" == "backperl - Win32 Debug"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 1\r
+# PROP BASE Output_Dir "Debug"\r
+# PROP BASE Intermediate_Dir "Debug"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 1\r
+# PROP Output_Dir "..\..\..\Debug"\r
+# PROP Intermediate_Dir "..\..\..\Debug\backperl"\r
+# PROP Target_Dir ""\r
+# ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c\r
+# ADD CPP /nologo /MTd /W3 /GX /Z7 /Od /I "..\\" /I "..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "PERL_IMPLICIT_CONTEXT" /D "PERL_IMPLICIT_SYS" /D "NO_STRICT" /D "HAVE_DES_FCRYPT" /D "PERL_MSVCRT_READFIX" /FR /YX /FD /c\r
+# ADD BASE RSC /l 0x409\r
+# ADD RSC /l 0x409\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LIB32=link.exe -lib\r
+# ADD BASE LIB32 /nologo\r
+# ADD LIB32 /nologo\r
+\r
+!ELSEIF  "$(CFG)" == "backperl - Win32 Single Debug"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 1\r
+# PROP BASE Output_Dir "backperl"\r
+# PROP BASE Intermediate_Dir "backperl"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 1\r
+# PROP Output_Dir "..\..\..\SDebug"\r
+# PROP Intermediate_Dir "..\..\..\SDebug\backperl"\r
+# PROP Target_Dir ""\r
+# ADD BASE CPP /nologo /MTd /W3 /GX /Z7 /Od /I "..\\" /I "..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR /YX /FD /c\r
+# ADD CPP /nologo /W3 /GX /Z7 /Od /I "..\\" /I "..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR /YX /FD /c\r
+# ADD BASE RSC /l 0x409\r
+# ADD RSC /l 0x409\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LIB32=link.exe -lib\r
+# ADD BASE LIB32 /nologo\r
+# ADD LIB32 /nologo\r
+\r
+!ELSEIF  "$(CFG)" == "backperl - Win32 Single Release"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 0\r
+# PROP BASE Output_Dir "backldb0"\r
+# PROP BASE Intermediate_Dir "backldb0"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 0\r
+# PROP Output_Dir "..\..\..\SRelease"\r
+# PROP Intermediate_Dir "..\..\..\SRelease\backperl"\r
+# PROP Target_Dir ""\r
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "..\\" /I "..\..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c\r
+# ADD CPP /nologo /W3 /GX /O2 /I "D:\perl\lib\CORE" /I "..\\" /I "..\..\..\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_CONSOLE" /D "NO_STRICT" /D "HAVE_DES_FCRYPT" /D "PERL_IMPLICIT_CONTEXT" /D "PERL_IMPLICIT_SYS" /D "PERL_MSVCRT_READFIX" /YX /FD /c\r
+# ADD BASE RSC /l 0x409\r
+# ADD RSC /l 0x409\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LIB32=link.exe -lib\r
+# ADD BASE LIB32 /nologo\r
+# ADD LIB32 /nologo\r
+\r
+!ENDIF \r
+\r
+# Begin Target\r
+\r
+# Name "backperl - Win32 Release"\r
+# Name "backperl - Win32 Debug"\r
+# Name "backperl - Win32 Single Debug"\r
+# Name "backperl - Win32 Single Release"\r
+# Begin Source File\r
+\r
+SOURCE=.\add.c\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\asperl_undefs.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\bind.c\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\close.c\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\compare.c\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\config.c\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\delete.c\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\external.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\init.c\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\modify.c\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\modrdn.c\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\perl_back.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\search.c\r
+# End Source File\r
+# End Target\r
+# End Project\r
index e76236ed39e896fdc11890cede7fbe5d7dfc88aa..a3d4b900429de8230ad8d837eed1df3fd339bd0c 100644 (file)
  */
 
 #include "portable.h"
-/* init.c - initialize shell backend */
+/* init.c - initialize Perl backend */
        
 #include <stdio.h>
-/*     #include <ac/types.h>
-       #include <ac/socket.h>
-*/
+
+#include "slap.h"
+#ifdef HAVE_WIN32_ASPERL
+#include "asperl_undefs.h"
+#endif
 
 #include <EXTERN.h>
+#include <XSUB.h>
 #include <perl.h>
 
-#include "slap.h"
 #include "perl_back.h"
 
 
@@ -46,12 +48,16 @@ perl_back_bind(
 
        PerlBackend *perl_back = (PerlBackend *) be->be_private;
 
+#ifdef HAVE_WIN32_ASPERL
+       PERL_SET_CONTEXT( PERL_INTERPRETER );
+#endif
+
        ldap_pvt_thread_mutex_lock( &perl_interpreter_mutex );  
 
        {
                dSP; ENTER; SAVETMPS;
 
-               PUSHMARK(sp);
+               PUSHMARK(SP);
                XPUSHs( perl_back->pb_obj_ref );
                XPUSHs(sv_2mortal(newSVpv( dn->bv_val , 0)));
                XPUSHs(sv_2mortal(newSVpv( cred->bv_val , cred->bv_len)));
index b3c407927c660150ed5321399df8e07222fb89d0..66352378e23a10658483a8d16d9c2ee2026f2a9f 100644 (file)
 /* init.c - initialize shell backend */
        
 #include <stdio.h>
-/*     #include <ac/types.h>
-       #include <ac/socket.h>
-*/
+
+#include "slap.h"
+#ifdef HAVE_WIN32_ASPERL
+#include "asperl_undefs.h"
+#endif
 
 #include <EXTERN.h>
 #include <perl.h>
 
-#include "slap.h"
 #include "perl_back.h"
 
 /**********************************************************
@@ -36,7 +37,7 @@ perl_back_close(
 {
        ldap_pvt_thread_mutex_lock( &perl_interpreter_mutex );  
 
-       perl_destruct(perl_interpreter);
+       perl_destruct(PERL_INTERPRETER);
 
        ldap_pvt_thread_mutex_unlock( &perl_interpreter_mutex );        
 
@@ -48,8 +49,8 @@ perl_back_destroy(
        BackendInfo *bd
 )
 {
-       perl_free(perl_interpreter);
-       perl_interpreter = NULL;
+       perl_free(PERL_INTERPRETER);
+       PERL_INTERPRETER = NULL;
 
        ldap_pvt_thread_mutex_destroy( &perl_interpreter_mutex );       
 
index a790c526c593fe8a11a23a5cda5176a283d6a3ef..e2151647f576f4f2a63445efdcea5ea52b437c5f 100644 (file)
 #include "portable.h"
 
 #include <stdio.h>
-/*     #include <ac/types.h>
-       #include <ac/socket.h>
-*/
+
+#include "slap.h"
+#ifdef HAVE_WIN32_ASPERL
+#include "asperl_undefs.h"
+#endif
 
 #include <EXTERN.h>
 #include <perl.h>
 
-#include "slap.h"
 #include "perl_back.h"
 
 /**********************************************************
index fa46076f74a97bc56fbd7f41f0a9f60eb28343ca..c461cf0a5e869551ad223b252f5735d6018e0123 100644 (file)
  */
 
 #include "portable.h"
-/* init.c - initialize shell backend */
        
 #include <stdio.h>
-/*     #include <ac/types.h>
-       #include <ac/socket.h>
-*/
+
+#include "slap.h"
+#ifdef HAVE_WIN32_ASPERL
+#include "asperl_undefs.h"
+#endif
 
 #include <EXTERN.h>
 #include <perl.h>
 
-#include "slap.h"
 #include "perl_back.h"
 
 
index 8ce9efdb1660d51696be0b1dd2b7c5fc2e993dbc..e78881c22490add2577c1663305c0b8278ae95d7 100644 (file)
 #include "portable.h"
 
 #include <stdio.h>
-/* #include <ac/types.h>
-#include <ac/socket.h>
-*/
+
+#include "slap.h"
+#ifdef HAVE_WIN32_ASPERL
+#include "asperl_undefs.h"
+#endif
 
 #include <EXTERN.h>
 #include <perl.h>
 
-#include "slap.h"
 #include "perl_back.h"
 
 int
index 5e87b63b50f1471b3fd11038deb8cc4fbbc40695..54ebf66d562bedabfba92edfe7d1b8c9a9d2076e 100644 (file)
  /* init.c - initialize shell backend */
        
 #include <stdio.h>
-/* #include <ac/types.h>
-       #include <ac/socket.h>
-*/
-
 
+#include "slap.h"
+#ifdef HAVE_WIN32_ASPERL
+#include "asperl_undefs.h"
+#endif
 
 #include <EXTERN.h>
+#include <XSUB.h>
 #include <perl.h>
 
-#include "slap.h"
 #include "perl_back.h"
 
 
-static void perl_back_xs_init LDAP_P((void));
-EXT void boot_DynaLoader LDAP_P((CV* cv));
+static void perl_back_xs_init LDAP_P((PERL_BACK_XS_INIT_PARAMS));
+EXT void boot_DynaLoader LDAP_P((PERL_BACK_BOOT_DYNALOADER_PARAMS));
 
-PerlInterpreter *perl_interpreter = NULL;
+PerlInterpreter *PERL_INTERPRETER = NULL;
 ldap_pvt_thread_mutex_t        perl_interpreter_mutex;
 
 #ifdef SLAPD_PERL_DYNAMIC
@@ -64,16 +64,16 @@ perl_back_initialize(
 
        Debug( LDAP_DEBUG_TRACE, "perl backend open\n", 0, 0, 0 );
 
-       if( perl_interpreter != NULL ) {
+       if( PERL_INTERPRETER != NULL ) {
                Debug( LDAP_DEBUG_ANY, "perl backend open: already opened\n",
                        0, 0, 0 );
                return 1;
        }
        
-       perl_interpreter = perl_alloc();
-       perl_construct(perl_interpreter);
-       perl_parse(perl_interpreter, perl_back_xs_init, 3, embedding, (char **)NULL);
-       perl_run(perl_interpreter);
+       PERL_INTERPRETER = perl_alloc();
+       perl_construct(PERL_INTERPRETER);
+       perl_parse(PERL_INTERPRETER, perl_back_xs_init, 3, embedding, (char **)NULL);
+       perl_run(PERL_INTERPRETER);
 
        bi->bi_open = perl_back_open;
        bi->bi_config = 0;
index e95e0feed4e23bc40f46d4bcf57551de564d7c32..2d394bd78a65676dc74bad2a8ad4b1a835df8ca9 100644 (file)
 #include "portable.h"
 
 #include <stdio.h>
-/* #include <ac/types.h>
-       #include <ac/socket.h>
-*/
+
+#include "slap.h"
+#ifdef HAVE_WIN32_ASPERL
+#include "asperl_undefs.h"
+#endif
 
 #include <EXTERN.h>
 #include <perl.h>
 
-#include "slap.h"
 #include "perl_back.h"
 
 int
index 2990c89e8da65838e5dc313e1fc9f6725db928f4..e4b970efdd5b5961798a1d89723e38a715cdf398 100644 (file)
 #include "portable.h"
 
 #include <stdio.h>
-/*     #include <ac/types.h>
-       #include <ac/socket.h>
-*/
+
+#include "slap.h"
+#ifdef HAVE_WIN32_ASPERL
+#include "asperl_undefs.h"
+#endif
 
 #include <EXTERN.h>
 #include <perl.h>
 
-#include "slap.h"
 #include "perl_back.h"
 
 int
index cb105577e35044ccc1b95c8881abef563012f3cf..232364492a425d445bb36329287f595ddfa69660 100644 (file)
@@ -17,9 +17,29 @@ LDAP_BEGIN_DECL
 #define PERL_IS_5_6
 #endif
 
-extern PerlInterpreter *perl_interpreter;
 extern ldap_pvt_thread_mutex_t  perl_interpreter_mutex;
 
+#ifdef HAVE_WIN32_ASPERL
+/* We should be using the PL_errgv, I think */
+/* All the old style variables are prefixed with PL_ now */
+# define errgv PL_errgv
+# define na    PL_na
+#endif
+
+#ifdef HAVE_WIN32_ASPERL 
+/* pTHX is needed often now */
+# define PERL_INTERPRETER                      my_perl
+# define PERL_BACK_XS_INIT_PARAMS              pTHX
+# define PERL_BACK_BOOT_DYNALOADER_PARAMS      pTHX, CV *cv
+#else
+# define PERL_INTERPRETER                      perl_interpreter
+# define PERL_BACK_XS_INIT_PARAMS              void
+# define PERL_BACK_BOOT_DYNALOADER_PARAMS      CV *cv
+#endif
+
+extern PerlInterpreter *PERL_INTERPRETER;
+
+
 typedef struct perl_backend_instance {
        char    *pb_module_name;
        SV      *pb_obj_ref;
index 3dac9194e4d561a1751691e5db017581273914cb..54c3d807efa4af74b976188ffdcb559910e44e6c 100644 (file)
 #include "portable.h"
 
 #include <stdio.h>
-/*     #include <ac/types.h>
-       #include <ac/socket.h>
-*/
+
+#include "slap.h"
+#ifdef HAVE_WIN32_ASPERL
+#include "asperl_undefs.h"
+#endif
 
 #include <EXTERN.h>
 #include <perl.h>
 
-#include "slap.h"
 #include "perl_back.h"
 
 /**********************************************************