1/* $OpenLDAP$ */
2/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
3 *
4 * Copyright 1998-2011 The OpenLDAP Foundation.
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted only as authorized by the OpenLDAP
9 * Public License.
10 *
11 * A copy of this license is available in the file LICENSE in the
12 * top-level directory of the distribution or, alternatively, at
13 * <http://www.OpenLDAP.org/license.html>.
14 */
15/* ACKNOWLEDGEMENTS:
16 * This program was originally developed by Kurt D. Zeilenga for inclusion
17 * in OpenLDAP Software.
18 */
19
20/*
21 * LDAPv3 Cancel Operation Request
22 */
23
24#include "portable.h"
25
26#include <stdio.h>
27#include <ac/stdlib.h>
28
29#include <ac/socket.h>
30#include <ac/string.h>
31#include <ac/time.h>
32
33#include "ldap-int.h"
34#include "ldap_log.h"
35
36int
37ldap_cancel(
38	LDAP		*ld,
39	int		cancelid,
40	LDAPControl	**sctrls,
41	LDAPControl	**cctrls,
42	int		*msgidp )
43{
44	BerElement *cancelidber = NULL;
45	struct berval *cancelidvalp = NULL;
46	int rc;
47
48	cancelidber = ber_alloc_t( LBER_USE_DER );
49	ber_printf( cancelidber, "{i}", cancelid );
50	ber_flatten( cancelidber, &cancelidvalp );
51	rc = ldap_extended_operation( ld, LDAP_EXOP_CANCEL,
52		cancelidvalp, sctrls, cctrls, msgidp );
53	ber_free( cancelidber, 1 );
54	return rc;
55}
56
57int
58ldap_cancel_s(
59	LDAP		*ld,
60	int		cancelid,
61	LDAPControl	**sctrls,
62	LDAPControl	**cctrls )
63{
64	BerElement *cancelidber = NULL;
65	struct berval *cancelidvalp = NULL;
66	int rc;
67
68	cancelidber = ber_alloc_t( LBER_USE_DER );
69	ber_printf( cancelidber, "{i}", cancelid );
70	ber_flatten( cancelidber, &cancelidvalp );
71	rc = ldap_extended_operation_s( ld, LDAP_EXOP_CANCEL,
72		cancelidvalp, sctrls, cctrls, NULL, NULL );
73	ber_free( cancelidber, 1 );
74	return rc;
75}
76
77