]> git.sur5r.net Git - openldap/blob - servers/ldapd/abandon.c
merged with autoconf branch
[openldap] / servers / ldapd / abandon.c
1 /*
2  * Copyright (c) 1990 Regents of the University of Michigan.
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms are permitted
6  * provided that this notice is preserved and that due credit is given
7  * to the University of Michigan at Ann Arbor. The name of the University
8  * may not be used to endorse or promote products derived from this
9  * software without specific prior written permission. This software
10  * is provided ``as is'' without express or implied warranty.
11  */
12
13 #include "portable.h"
14
15 #include <stdio.h>
16
17 #include <ac/socket.h>
18
19 #include <quipu/commonarg.h>
20 #include <quipu/attrvalue.h>
21 #include <quipu/ds_error.h>
22 #include <quipu/abandon.h>
23 #include <quipu/dap2.h>
24 #include <quipu/dua.h>
25
26 #include "lber.h"
27 #include "ldap.h"
28 #include "common.h"
29
30 do_abandon(
31     struct conn *dsaconn,
32     BerElement  *ber,
33     int         msgid
34 )
35 {
36         int                     id;
37         struct ds_abandon_arg   aa;
38         struct DAPindication    di;
39
40         Debug( LDAP_DEBUG_TRACE, "do_abandon\n", 0, 0 ,0 );
41
42         /*
43          * Parse the abandon request.  It looks like this:
44          *      AbandonRequest := MessageID
45          */
46
47         if ( ber_scanf( ber, "i", &id ) == LBER_ERROR ) {
48                 Debug( LDAP_DEBUG_ANY, "ber_scanf failed\n", 0, 0 ,0 );
49                 return( 0 );
50         }
51
52         Debug( LDAP_DEBUG_ARGS, "do_abandin: id %d\n", id, 0 ,0 );
53
54         aa.aba_invokeid = id;
55
56         Debug( LDAP_DEBUG_TRACE, "DapAbandon...\n", 0, 0 ,0 );
57         if ( DapAbandon( dsaconn->c_ad, msgid, &aa, &di, ROS_ASYNC )
58             == NOTOK ) {
59                 Debug( LDAP_DEBUG_ANY, "DapAbandon failed\n", 0, 0 ,0 );
60                 return( 0 );
61         }
62         Debug( LDAP_DEBUG_TRACE, "DapAbandon completed\n", 0, 0 ,0 );
63
64         return( 0 );
65 }