@@ -26,6 +26,29 @@ package ibmmq
26
26
#include <cmqc.h>
27
27
#include <cmqxc.h>
28
28
29
+ void freeCCDTUrl(MQCNO *mqcno) {
30
+ #if defined(MQCNO_VERSION_6) && MQCNO_CURRENT_VERSION == MQCNO_VERSION_6
31
+ if (mqcno.CCDTUrlPtr != NULL) {
32
+ free(mqcno.CCDTUrlPtr);
33
+ }
34
+ #endif
35
+ }
36
+
37
+ void setCCDTUrl(MQCNO *mqcno, PMQCHAR url, MQLONG length) {
38
+ #if defined(MQCNO_VERSION_6) && MQCNO_CURRENT_VERSION == MQCNO_VERSION_6
39
+ mqcno.CCDTUrlOffset = 0;
40
+ mqcno.CCDTUrlPtr = NULL;
41
+ mqcno.CCDTUrlLength = length;
42
+ if (url != NULL) {
43
+ mqcno.CCDTUrlPtr = PMQCHAR(url);
44
+ }
45
+ #else
46
+ if (url != NULL) {
47
+ free(url);
48
+ }
49
+ #endif
50
+ }
51
+
29
52
*/
30
53
import "C"
31
54
import "unsafe"
@@ -152,14 +175,7 @@ func copyCNOtoC(mqcno *C.MQCNO, gocno *MQCNO) {
152
175
mqcno .SecurityParmsPtr = nil
153
176
}
154
177
155
- mqcno .CCDTUrlOffset = 0
156
- if len (gocno .CCDTUrl ) != 0 {
157
- mqcno .CCDTUrlPtr = C .PMQCHAR (unsafe .Pointer (C .CString (gocno .CCDTUrl )))
158
- mqcno .CCDTUrlLength = C .MQLONG (len (gocno .CCDTUrl ))
159
- } else {
160
- mqcno .CCDTUrlPtr = nil
161
- mqcno .CCDTUrlLength = 0
162
- }
178
+ C .setCCDTUrl (mqcno , C .PMQCHAR (C .CString (gocno .CCDTUrl )), C .MQLONG (len (gocno .CCDTUrl )))
163
179
return
164
180
}
165
181
@@ -187,8 +203,6 @@ func copyCNOfromC(mqcno *C.MQCNO, gocno *MQCNO) {
187
203
C .free (unsafe .Pointer (mqcno .SSLConfigPtr ))
188
204
}
189
205
190
- if mqcno .CCDTUrlPtr != nil {
191
- C .free (unsafe .Pointer (mqcno .CCDTUrlPtr ))
192
- }
206
+ C .freeCCDTUrl (mqcno )
193
207
return
194
208
}
0 commit comments