Commit | Line | Data |
---|---|---|
9e8e5516 C |
1 | /* oper_ureject.c - deal with user rejection of an operation */ |
2 | ||
3 | #ifndef lint | |
4 | static char *rcsid = "$Header: /f/osi/quipu/RCS/oper_ureject.c,v 7.3 91/02/22 09:39:37 mrose Interim $"; | |
5 | #endif | |
6 | ||
7 | /* | |
8 | * $Header: /f/osi/quipu/RCS/oper_ureject.c,v 7.3 91/02/22 09:39:37 mrose Interim $ | |
9 | * | |
10 | * | |
11 | * $Log: oper_ureject.c,v $ | |
12 | * Revision 7.3 91/02/22 09:39:37 mrose | |
13 | * Interim 6.8 | |
14 | * | |
15 | * Revision 7.2 90/10/17 11:54:36 mrose | |
16 | * sync | |
17 | * | |
18 | * Revision 7.1 90/03/15 11:19:05 mrose | |
19 | * quipu-sync | |
20 | * | |
21 | * Revision 7.0 89/11/23 22:17:55 mrose | |
22 | * Release 6.0 | |
23 | * | |
24 | */ | |
25 | ||
26 | /* | |
27 | * NOTICE | |
28 | * | |
29 | * Acquisition, use, and distribution of this module and related | |
30 | * materials are subject to the restrictions of a license agreement. | |
31 | * Consult the Preface in the User's Manual for the full terms of | |
32 | * this agreement. | |
33 | * | |
34 | */ | |
35 | ||
36 | ||
37 | /* LINTLIBRARY */ | |
38 | ||
39 | #include "rosap.h" | |
40 | #include "quipu/util.h" | |
41 | #include "quipu/connection.h" | |
42 | ||
43 | extern LLog * log_dsap; | |
44 | ||
45 | oper_ureject(conn, rou) | |
46 | struct connection * conn; | |
47 | struct RoSAPureject * rou; | |
48 | { | |
49 | DLOG(log_dsap,LLOG_TRACE,( "oper_ureject")); | |
50 | ||
51 | if(rou->rou_noid) | |
52 | { | |
53 | LLOG(log_dsap,LLOG_EXCEPTIONS,( "Non-specific U-REJECT.INDICATION : %d (%d)", | |
54 | rou->rou_reason,conn->cn_ad)); | |
55 | } | |
56 | else | |
57 | { | |
58 | struct oper_act * on; | |
59 | ||
60 | for(on=conn->cn_operlist; on!=NULLOPER; on=on->on_next_conn) | |
61 | if(on->on_id == rou->rou_id) | |
62 | break; | |
63 | ||
64 | if(on == NULLOPER) | |
65 | { | |
66 | LLOG(log_dsap,LLOG_EXCEPTIONS,( "Unlocatable U-REJECT.INDICATION : %d (%d)", | |
67 | rou->rou_reason,conn->cn_ad)); | |
68 | return; | |
69 | } | |
70 | ||
71 | if(on->on_state == ON_ABANDONED) | |
72 | { | |
73 | LLOG(log_dsap, LLOG_NOTICE, ("oper_result - operation had been abandoned")); | |
74 | oper_extract(on); | |
75 | return; | |
76 | } | |
77 | ||
78 | oper_fail_wakeup(on); | |
79 | } | |
80 | } | |
81 |