]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-sock/config.c
More for overlay use, add connid extension
[openldap] / servers / slapd / back-sock / config.c
index 32166bb936c77dd2063d0291bec14a36d23893ce..d07d0cef11845103af1864e71ba2c93ca2cc51c0 100644 (file)
@@ -77,6 +77,7 @@ static slap_verbmasks bs_exts[] = {
        { BER_BVC("binddn"), SOCK_EXT_BINDDN },
        { BER_BVC("peername"), SOCK_EXT_PEERNAME },
        { BER_BVC("ssf"), SOCK_EXT_SSF },
+       { BER_BVC("connid"), SOCK_EXT_CONNID },
        { BER_BVNULL, 0 }
 };
 
@@ -158,6 +159,7 @@ static int sock_over_op(
 {
        slap_overinst *on = (slap_overinst *)op->o_bd->bd_info;
        void *private = op->o_bd->be_private;
+       slap_callback cb = { NULL, slap_null_cb, NULL, NULL };
        slap_operation_t which;
        int rc;
 
@@ -174,11 +176,22 @@ static int sock_over_op(
                return SLAP_CB_CONTINUE;
        }
        op->o_bd->be_private = on->on_bi.bi_private;
+       cb.sc_next = op->o_callback;
+       op->o_callback = &cb;
        rc = sockfuncs[which]( op, rs );
        op->o_bd->be_private = private;
+       op->o_callback = cb.sc_next;
        return rc;
 }
 
+static int
+sock_over_response( Operatiion *op, SlapReply *rs )
+{
+       slap_overinst *on = (slap_overinst *)op->o_bd->bd_info;
+       struct sockinfo *si = (struct sockinfo *)on->on_bi.bi_private;
+
+}
+
 static int
 sock_over_setup()
 {
@@ -196,6 +209,7 @@ sock_over_setup()
        sockover.on_bi.bi_op_modrdn = sock_over_op;
        sockover.on_bi.bi_op_add = sock_over_op;
        sockover.on_bi.bi_op_delete = sock_over_op;
+       sockover.on_response = sock_over_response;
 
        sockover.on_bi.bi_cf_ocs = osocs;