svn commit: samba r23934 - in branches/SAMBA_3_2_0/source/libads: .
metze at samba.org
metze at samba.org
Tue Jul 17 14:29:06 GMT 2007
Author: metze
Date: 2007-07-17 14:29:05 +0000 (Tue, 17 Jul 2007)
New Revision: 23934
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=23934
Log:
merge from SAMBA_3_2:
- implement ctrl SASL wrapping hook
- pass down sign or seal hooks
- some sasl wrapping fixes
metze
Modified:
branches/SAMBA_3_2_0/source/libads/sasl_wrapping.c
Changeset:
Modified: branches/SAMBA_3_2_0/source/libads/sasl_wrapping.c
===================================================================
--- branches/SAMBA_3_2_0/source/libads/sasl_wrapping.c 2007-07-17 14:08:53 UTC (rev 23933)
+++ branches/SAMBA_3_2_0/source/libads/sasl_wrapping.c 2007-07-17 14:29:05 UTC (rev 23934)
@@ -98,7 +98,7 @@
if (ads->ldap.in.ofs < 4) goto eagain;
- ads->ldap.in.needed = RIVAL(ads->ldap.in.buf, 4);
+ ads->ldap.in.needed = RIVAL(ads->ldap.in.buf, 0);
if (ads->ldap.in.needed > ads->ldap.in.max) {
errno = EINVAL;
return -1;
@@ -172,8 +172,8 @@
static ber_slen_t ads_saslwrap_prepare_outbuf(ADS_STRUCT *ads, uint32 len)
{
- ads->ldap.out.ofs = 4;
- ads->ldap.out.left = 4;
+ ads->ldap.out.ofs = 0;
+ ads->ldap.out.left = 0;
ads->ldap.out.size = 4 + ads->ldap.out.sig_size + len;
ads->ldap.out.buf = talloc_array(ads->ldap.mem_ctx,
uint8, ads->ldap.out.size);
@@ -219,7 +219,7 @@
return -1;
}
- RSIVAL(ads->ldap.out.buf, 0, ads->ldap.out.size - 4);
+ RSIVAL(ads->ldap.out.buf, 0, ads->ldap.out.left - 4);
} else {
rlen = -1;
}
@@ -243,7 +243,22 @@
static int ads_saslwrap_ctrl(Sockbuf_IO_Desc *sbiod, int opt, void *arg)
{
- return LBER_SBIOD_CTRL_NEXT(sbiod, opt, arg);
+ ADS_STRUCT *ads = (ADS_STRUCT *)sbiod->sbiod_pvt;
+ int ret;
+
+ switch (opt) {
+ case LBER_SB_OPT_DATA_READY:
+ if (ads->ldap.in.left > 0) {
+ return 1;
+ }
+ ret = LBER_SBIOD_CTRL_NEXT(sbiod, opt, arg);
+ break;
+ default:
+ ret = LBER_SBIOD_CTRL_NEXT(sbiod, opt, arg);
+ break;
+ }
+
+ return ret;
}
static int ads_saslwrap_close(Sockbuf_IO_Desc *sbiod)
@@ -260,7 +275,9 @@
ads_saslwrap_close /* sbi_close */
};
-ADS_STATUS ads_setup_sasl_wrapping(ADS_STRUCT *ads)
+ADS_STATUS ads_setup_sasl_wrapping(ADS_STRUCT *ads,
+ const struct ads_saslwrap_ops *ops,
+ void *private_data)
{
ADS_STATUS status;
Sockbuf *sb;
@@ -280,6 +297,9 @@
return status;
}
+ ads->ldap.wrap_ops = ops;
+ ads->ldap.wrap_private_data = private_data;
+
return ADS_SUCCESS;
}
More information about the samba-cvs
mailing list