*** empty log message ***
This commit is contained in:
		
						commit
						a25a3daae0
					
				|  | @ -0,0 +1,28 @@ | ||||||
|  | # CVS default ignores begin | ||||||
|  | tags | ||||||
|  | TAGS | ||||||
|  | .make.state | ||||||
|  | .nse_depinfo | ||||||
|  | *~ | ||||||
|  | \#* | ||||||
|  | .#* | ||||||
|  | ,* | ||||||
|  | _$* | ||||||
|  | *$ | ||||||
|  | *.old | ||||||
|  | *.bak | ||||||
|  | *.BAK | ||||||
|  | *.orig | ||||||
|  | *.rej | ||||||
|  | .del-* | ||||||
|  | *.a | ||||||
|  | *.olb | ||||||
|  | *.o | ||||||
|  | *.obj | ||||||
|  | *.so | ||||||
|  | *.exe | ||||||
|  | *.Z | ||||||
|  | *.elc | ||||||
|  | *.ln | ||||||
|  | core | ||||||
|  | # CVS default ignores end | ||||||
|  | @ -0,0 +1,126 @@ | ||||||
|  | #include "scsh-ldap.h" | ||||||
|  | 
 | ||||||
|  | s48_value scsh_enter_ldap(LDAP *ldap)  | ||||||
|  | { | ||||||
|  |   s48_value rec = S48_FALSE; | ||||||
|  |   S48_DECLARE_GC_PROTECT(1); | ||||||
|  | 
 | ||||||
|  |   S48_GC_PROTECT_1(rec); | ||||||
|  |   rec = s48_make_record(scsh_ldap_record_type); | ||||||
|  |   S48_RECORD_SET(rec, 0, s48_enter_integer((long) ldap)); | ||||||
|  |   S48_GC_UNPROTECT(); | ||||||
|  |   return rec; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | s48_value scsh_enter_ldapmessage(LDAPMessage *lm) | ||||||
|  | { | ||||||
|  |   s48_value rec = S48_FALSE; | ||||||
|  |   S48_DECLARE_GC_PROTECT(1); | ||||||
|  | 
 | ||||||
|  |   S48_GC_PROTECT_1(rec); | ||||||
|  |   rec = s48_make_record(scsh_ldapmessage_record_type); | ||||||
|  |   S48_RECORD_SET(rec, 0, s48_enter_integer((long) lm)); | ||||||
|  |   S48_GC_UNPROTECT(); | ||||||
|  |   return rec; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | s48_value scsh_ldap_open(s48_value host, s48_value port) | ||||||
|  | { | ||||||
|  |   LDAP *ldap; | ||||||
|  |   S48_DECLARE_GC_PROTECT(2); | ||||||
|  |    | ||||||
|  |   S48_GC_PROTECT_2(host, port); | ||||||
|  |   ldap = ldap_open(s48_extract_string(host), s48_extract_integer(port)); | ||||||
|  |   S48_GC_UNPROTECT(); | ||||||
|  |   return ldap == NULL ? S48_FALSE : scsh_enter_ldap(ldap); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | s48_value scsh_ldap_init(s48_value host, s48_value port) | ||||||
|  | { | ||||||
|  |   LDAP *ldap; | ||||||
|  |   S48_DECLARE_GC_PROTECT(2); | ||||||
|  |    | ||||||
|  |   S48_GC_PROTECT_2(host, port); | ||||||
|  |   ldap = ldap_init(s48_extract_string(host), s48_extract_integer(port)); | ||||||
|  |   S48_GC_UNPROTECT(); | ||||||
|  |   return ldap == NULL ? S48_FALSE : scsh_enter_ldap(ldap); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | s48_value scsh_ldap_bind_s(s48_value ldap, s48_value user,  | ||||||
|  | 			   s48_value cred, s48_value method) | ||||||
|  | { | ||||||
|  |   int r; | ||||||
|  |   S48_DECLARE_GC_PROTECT(4); | ||||||
|  | 
 | ||||||
|  |   S48_GC_PROTECT_4(ldap, user, cred, method); | ||||||
|  |   r = ldap_bind_s(scsh_extract_ldap(ldap), s48_extract_string(user), | ||||||
|  | 		  s48_extract_string(cred), s48_extract_integer(method)); | ||||||
|  |   S48_GC_UNPROTECT(); | ||||||
|  |   return s48_enter_integer(r); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | s48_value scsh_ldap_simple_bind_s(s48_value ldap, s48_value user, s48_value cred) | ||||||
|  | { | ||||||
|  |   int r; | ||||||
|  |   S48_DECLARE_GC_PROTECT(3); | ||||||
|  | 
 | ||||||
|  |   S48_GC_PROTECT_3(ldap, user, cred); | ||||||
|  |   r = ldap_simple_bind_s(scsh_extract_ldap(ldap), s48_extract_string(user), | ||||||
|  | 			 s48_extract_string(cred)); | ||||||
|  |   S48_GC_UNPROTECT(); | ||||||
|  |   return r; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | s48_value scsh_ldap_unbind_s(s48_value ldap) | ||||||
|  | { | ||||||
|  |   return s48_enter_integer(ldap_unbind_s(scsh_extract_ldap(ldap))); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | s48_value scsh_ldap_error_string(s48_value errcode) | ||||||
|  | { | ||||||
|  |   return s48_enter_string(ldap_err2string(s48_extract_integer(errcode))); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | s48_value scsh_ldap_result_error(s48_value ldap, s48_value res) | ||||||
|  | { | ||||||
|  |   int r; | ||||||
|  |   S48_DECLARE_GC_PROTECT(2); | ||||||
|  |    | ||||||
|  |   S48_GC_PROTECT_2(ldap, res); | ||||||
|  |   r = s48_enter_integer(ldap_result2error(scsh_extract_ldap(ldap),  | ||||||
|  | 					  scsh_extract_ldapmessage(res), 0)); | ||||||
|  |   S48_GC_UNPROTECT(); | ||||||
|  |   return s48_enter_integer(r); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | s48_value scsh_ldap_memfree(s48_value ldap) | ||||||
|  | { | ||||||
|  |   ldap_memfree(scsh_extract_ldap(ldap)); | ||||||
|  |   return S48_UNSPECIFIC; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | s48_value scsh_ldap_msgfree(s48_value ldapmsg) | ||||||
|  | { | ||||||
|  |   ldap_msgfree(scsh_extract_ldapmessage(ldapmsg)); | ||||||
|  |   return S48_UNSPECIFIC; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void scsh_ldap_main(void) | ||||||
|  | { | ||||||
|  |   S48_GC_PROTECT_GLOBAL(scsh_ldap_record_type); | ||||||
|  |   scsh_ldap_record_type = s48_get_imported_binding("ldap"); | ||||||
|  | 
 | ||||||
|  |   S48_GC_PROTECT_GLOBAL(scsh_ldapmessage_record_type); | ||||||
|  |   scsh_ldapmessage_record_type = s48_get_imported_binding("ldap-message"); | ||||||
|  | 
 | ||||||
|  |   S48_EXPORT_FUNCTION(scsh_ldap_open); | ||||||
|  |   S48_EXPORT_FUNCTION(scsh_ldap_init); | ||||||
|  |   S48_EXPORT_FUNCTION(scsh_ldap_bind_s); | ||||||
|  |   S48_EXPORT_FUNCTION(scsh_ldap_simple_bind_s); | ||||||
|  |   S48_EXPORT_FUNCTION(scsh_ldap_unbind_s); | ||||||
|  |   S48_EXPORT_FUNCTION(scsh_ldap_error_string); | ||||||
|  |   S48_EXPORT_FUNCTION(scsh_ldap_result_error); | ||||||
|  |   S48_EXPORT_FUNCTION(scsh_ldap_memfree); | ||||||
|  |   S48_EXPORT_FUNCTION(scsh_ldap_msgfree); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | @ -0,0 +1,19 @@ | ||||||
|  | #include "scheme48.h" | ||||||
|  | #include <stddef.h> | ||||||
|  | #include <ldap.h> | ||||||
|  | 
 | ||||||
|  | static s48_value scsh_ldap_record_type = S48_FALSE; | ||||||
|  | static s48_value scsh_ldapmessage_record_type = S48_FALSE; | ||||||
|  | 
 | ||||||
|  | s48_value scsh_enter_ldap(LDAP *ldap); | ||||||
|  | #define scsh_extract_ldap(x) \ | ||||||
|  | 	((LDAP *) \ | ||||||
|  | 	 s48_extract_integer(S48_RECORD_REF(x, 0))) | ||||||
|  | 
 | ||||||
|  | s48_value scsh_enter_ldapmessage(LDAPMessage *lm); | ||||||
|  | #define scsh_extract_ldapmessage(x) \ | ||||||
|  | 	((LDAPMessage *) \ | ||||||
|  | 	 s48_extract_integer(S48_RECORD_REF(x, 0))) | ||||||
|  | 
 | ||||||
|  | void scsh_ldap_main(void); | ||||||
|  | 
 | ||||||
|  | @ -0,0 +1,59 @@ | ||||||
|  | (define-record-type ldap :ldap | ||||||
|  |   (make-ldap c-pointer) | ||||||
|  |   ldap? | ||||||
|  |   (c-pointer ldap-c-pointer)) | ||||||
|  | 
 | ||||||
|  | (define-exported-binding "ldap" :ldap) | ||||||
|  | 
 | ||||||
|  | (define-record-type ldap-message :ldap-message | ||||||
|  |   (make-ldap-message c-pointer) | ||||||
|  |   ldap-message? | ||||||
|  |   (c-pointer ldap-message-c-pointer)) | ||||||
|  | 
 | ||||||
|  | (define-exported-binding "ldap-message" :ldap-message) | ||||||
|  | 
 | ||||||
|  | (define (ldap-open host port) | ||||||
|  |   (let ((ldap (ldap-open-internal host port))) | ||||||
|  |     (if ldap (add-finalizer! ldap ldap-memfree)) | ||||||
|  |     ldap)) | ||||||
|  | 
 | ||||||
|  | (define (ldap-init host port) | ||||||
|  |   (let ((ldap (ldap-init-internal host port))) | ||||||
|  |     (if ldap (add-finalizer! ldap ldap-memfree)) | ||||||
|  |     ldap)) | ||||||
|  | 
 | ||||||
|  | (import-lambda-definition ldap-open-internal | ||||||
|  | 			  (host port) | ||||||
|  | 			  "scsh_ldap_open") | ||||||
|  | 
 | ||||||
|  | (import-lambda-definition ldap-init-internal | ||||||
|  | 			  (host port) | ||||||
|  | 			  "scsh_ldap_init") | ||||||
|  | 
 | ||||||
|  | (import-lambda-definition ldap-bind-sync | ||||||
|  | 			  (ldap user password method) | ||||||
|  | 			  "scsh_ldap_bind_s") | ||||||
|  | 
 | ||||||
|  | (import-lambda-definition ldap-simple-bind-sync | ||||||
|  | 			  (ldap user password) | ||||||
|  | 			  "scsh_ldap_simple_bind_s") | ||||||
|  | 
 | ||||||
|  | (import-lambda-definition ldap-unbind-sync | ||||||
|  | 			  (ldap) | ||||||
|  | 			  "scsh_ldap_unbind_s") | ||||||
|  | 
 | ||||||
|  | (import-lambda-definition ldap-error-string | ||||||
|  | 			  (error-code) | ||||||
|  | 			  "scsh_ldap_error_string") | ||||||
|  | 
 | ||||||
|  | (import-lambda-definition ldap-result-error | ||||||
|  | 			  (ldap result) | ||||||
|  | 			  "scsh_ldap_result_error") | ||||||
|  | 
 | ||||||
|  | (import-lambda-definition ldap-memfree | ||||||
|  | 			  (ldap) | ||||||
|  | 			  "scsh_ldap_memfree") | ||||||
|  | 
 | ||||||
|  | (import-lambda-definition ldap-msgfree | ||||||
|  | 			  (ldap) | ||||||
|  | 			  "scsh_ldap_msgfree") | ||||||
		Loading…
	
		Reference in New Issue
	
	 eknauel
						eknauel