Patch Name: PHNE_20837 Patch Description: s700_800 10.20 R5.1 SNAplus2 API cumulative patch Creation Date: 00/01/06 Post Date: 00/04/26 Hardware Platforms - OS Releases: s700: 10.20 s800: 10.20 Products: SNAplus2-API R5.1 Filesets: SNAplus2-API.SNAP2-API Automatic Reboot?: No Status: General Release Critical: No (superseded patches were critical) PHNE_14874: ABORT Path Name: /hp-ux_patches/s700_800/10.X/PHNE_20837 Symptoms: PHNE_20837: (1) JAGab75212/8606106251 When customer attempted to link their APPC application they received a linker error: /usr/ccs/bin/ld: Can't open ../../o/lib/libnof.sl /usr/ccs/bin/ld: No such file or directory PHNE_14874: (1) 4701390534 For lua, appc and cpic, you can get references to unresolved symbols in '../../o/lib/libnof.sl' if you link your application without explicitly specifying '-l nof' on the link line. Also, you can get a similar problem with 'libappc' when using CPI-C. (2) 4701386730 CPIC CMRCV call always traces empty buffer. (3) 4701384511 When using AP_SAME conversation securty (cmscst) we get cmscsu rejected by the library with state check. (4) 4701381616 Crash in APPC library in vav_call_appl from vav_data_callback with invalid handles. PHNE_11163: (1) 1653231308 Customer unable to compile application using API library (2) 4701362954 If you compile with C++, you get the non-ansi definitions of functionsfrom the SNAplus2 header files. (3) 4701363424 The CSV define trace verb does not support NOF or MS. Also, the define trace verb doesn't allow you to turn off tracing unless you have already traced something (4) 4701370643 CPI-C Doesn't Support sending User ID when secrity type SAME specified. (5) 4701373795 Asynchronous CPIC calls can sometimes return invalid conversation ID's. (6) 5003388793 If you issue an ALLOCATE verb with AP_SAME as the secrity type, the system will always set the user_id on the outgoing attach as the unix user ID which the TP was running under. PHNE_9761: (1) 1653213165 It has become apparent that ANSI C is now a requirement for the APPC APIs to be compiled. This has changed from previous releases of SNAPLUS, where the standard C compiler supplied with the machine has been all that was required to compile the APIs. This has added implications, in that HP engineers who want a reliable test to be performed using the sample API programs, will not be able to do so unless ANSI C has been purchased by the customer. (2) 4701356899 Enhancement to expose R5.2 version of application based scheduling API in R5.0 and R5.1 PHNE_9055: (1) 1653184192 RUI PURGE call failed on SNAPLUS2 on 10.10., but originally worked on SNAPLUS R4.X. Program code that fails is as follows :- void rui_purge_call( read_verb) LUA_VERB_RECORD *read_verb; { LUA_VERB_RECORD verb; verb.common.lua_data_ptr = ( char * ) ( read_verb ); RUI( &verb ); .......... (2) 1653195636 The problem was that an application issues cminic and then cmacci and gets return code of parameter check with log 8195-5 (0) CPI-C conversation id unknown. (3) 1653196402 Symptoms of problem: coredump when linking with the libmgrdce library and calling cmcanc while other verbs in progress. (4) 1653205906 Issuing cmsltp followed by cmacci (non-blocking) and then cmrltp results in in cmetpn returning NULLs for the TP name. (5) 1653205914 CPIC conversation ID's are not logged to help with debugging. (6) 1653207050 There is no method in CPIC for the application to specify the local LU that it wants to use. In some cases, this results in an application only being able to have one conversation active at a time. (7) 1653211060 There is a bug in the CSV code translation tables which means that the EBCDIC vertical bar and logcal not characters are not translated properly. (8) 4701325530 CPI-C TP gives the following message when run: dld/sl: Unresolved symbol: nof (code) from /opt/sna/lib/libcpic.1 IOT trap (core dumped) (9) 4701326454 When using R5 SNAplus2 on HPUX B.10.10, the following compiler errors occured when compiling fxhpsnap.c: cc: 'fxhpsnap.c', line 2049: error 1574: Unknown size for 'getstate'. cc: 'fxhpsnap.c', line 2056: error 1594: The sizeof operator cannot be applied to types with unknown size. cc: 'fxhpsnap.c', line 2057: error 1530: Undefined struct or union. cc: 'fxhpsnap.c', line 2057: error 1588: 'AP_GET_STATE' undefined. cc: 'fxhpsnap.c', line 2058: error 1530: Undefined struct or union. cc: 'fxhpsnap.c', line 2058: warning 563: Argument #1 is not the correct type. cc: 'fxhpsnap.c', line 2058: error 1530: Undefined struct or union. Stop. The definition of the 'getstate' structure, as well as a definition of AP_GET_STATE appears to be missing. (10) 5003304865 Unable to allow API header files to be multiply included (11) 5003352963 Service TP names are incorrectly specified in CPI-C Side info. If you have a TP such as 21F0F0F8 (one of the NVDM/6000 TPs), you actually have to configure it as 21303038, because the first charcter gets passed through unchanged, but all subsequent characters get converted from ASCII to EBCDIC. Defect Description: PHNE_20837: (1) JAGab75212/8606106251 When building the APPC library it is linked with a copy of libnof.sl that is in the SNAplus2 build system (it actually lives in ../../o/lib relative to the build location of the APPC library). When using the APPC library a user must also link with libnof and this is ensured by adding an entry into the shared library list (a list of required shared libraries within the APPC library itself. You can see this by looking at the chatr output on libappc). /opt/sna/lib/libappc.1: shared library shared library dynamic path search: SHLIB_PATH disabled second embedded path enabled first /opt/sna/lib shared library list: dynamic ../../o/lib/libnof.sl However the entire library path is embedded into the binary. This gives us the ../../o/lib reference. The standard HP linker will strip off this path when doing subsequent linking operations with the library - i.e. it will simply look for libnof.sl using the embedded path of /opt/sna/lib which is also contained in the binary. In this situation, however, the customer was using a different linker (esql) which is evidently not stripping off the path of the shared libraries and is therefore using the ../../o/lib in order to locate the libnof.sl library. Resolution: The fix is to modify the SNAplus2 build system so that at build time we pick up shared libraries from their final resting place of /opt/sna/lib. This will mean that even if the linker does not strip off the path when trying to link the required shared libraries it will find them correctly. This has the desired effect as can be seen from this new chatr output: libappc.sl: shared library shared library dynamic path search: SHLIB_PATH disabled second embedded path enabled first /opt/sna/lib shared library list: dynamic /opt/sna/lib/libnof.sl PHNE_14874: (1) 4701390534 Build environment changed to ensure that the libraries include details of their dependencies. This was a compile script issue where we did not have execute permissions on the script - there is no RDS ID, as no actual code changes were required. (2) 4701386730 Code changed to trace out the true buffer - the buffer length is a LONG not a SHORT. (3) 4701384511 Code changed to allow application to specify the userid for both R5 and R6. Further alter the APPC library in R5 only for this to take effect in the case where the TP is setuid root. (4) 4701381616 Code change made to protect against race between tp_ended and rcv_and_wait. PHNE_11163: (1) 1653231308 Problem was due the to build environment for the libraries. API libraries recompiled to resolve. (2) 4701362954 Correct the macroing within the header files (3) 4701363424 Code change made to implement changes to define trace verb. (4) 4701370643 Code changed to add this support. Note this fix requires the APPC fix provided under SR5003388793 . (5) 4701373795 When the calling application passes a conversation ID, we used to save the pointer passed to us rather than the conv ID itself. If the application freed up the memory (e.g. if it called CPIC and passed a local variable as the conv ID, then exitted the function where the local was declared) then we no longer have access to the conv ID and return incorrect data. Code change made to ensure that we always copy the conv ID rather than simply relying on the calling apps pointer. (6) 5003388793 If the TP is running as root (and only if) then allow the user to put a user_id on the allocate verb - this will be sent in the attach. Otherwise, send the user ID the TP is running under. PHNE_9761: (1) 1653213165 CPIC header file cmc.h did not include K&R definition of function headers - all other APIs did. (2) 4701356899 Tidy up macroing of function to make it easier to use. R5.0, 5.1 and 5.2 now support the same variant of the application based scheduling API - refer to the documentation in the 'additional items' manual being produced for R5.2 by ENSD. PHNE_9055: (1) 1653184192 The problem was caused by an incorrect test in the code when it checked what it should delete. The test has now been corrected. (2) 1653195636 Details of fix applied: Correct previous fix (SFR 21718 / SR4701336701 ) Remove check for fTpActive in SCC_find_cccb. (3) 1653196402 Details of fix applied: The fix is to recheck the conversation id following a cmcanc call as this can invalidate it. (4) 1653205906 Changed the cmacci callback to fill in the side info TP name field when an incoming call is accepted. This brings it in line with the code for allocating a call. The cmetpn routine is now simplified to just extract the TP name from the side info field whether we accepted the conversation or allocated it. (5) 1653205914 Code modified to add Conversation ID to logs. (6) 1653207050 Changes have been made to the following CPIC verbs :- cminit cmslln cmallc cmdeal cmaccp (7) 1653211060 The code has been changed to alter the CSV code translation tables for the German language to ensure these characters are translated correctly (they are valid in the German codepage). (8) 4701325530 This error occurs after migrating from an R4.X SNAplus release to R5.X. The R5 CPI-C library was not correctly linking in the NOF library at runtime. (9) 4701326454 APPC AP_GET_STATE verb was not included in the R5 API. (10) 5003304865 Details of Fix applied: Enhance product to allow API header files to be multiply included. (11) 5003352963 Fix made to GUI admin and CPI-C library to take service TP names in the ASCII format 21F0F1F2 to represent the HEX format eg ASCII 21F0F1F2 will represent HEX 0x21F0F1F2. SR: 8606106251 5003388793 5003352963 5003304865 4701390534 4701386730 4701384511 4701381616 4701373795 4701370643 4701363424 4701362954 4701356899 4701326454 4701325530 1653231308 1653213165 1653211060 1653207050 1653205914 1653205906 1653196402 1653195636 1653184192 Patch Files: /opt/sna/include/acssvcc.h /opt/sna/include/appc_c.h /opt/sna/include/cmc.h /opt/sna/include/lua_c.h /opt/sna/include/ms_c.h /opt/sna/include/nof_c.h /opt/sna/include/values_c.h /opt/sna/lib/libappc.1 /opt/sna/lib/libcov.1 /opt/sna/lib/libcpic.1 /opt/sna/lib/libcsv.1 /opt/sna/lib/liblua.1 what(1) Output: /opt/sna/lib/libappc.1: ]B.10.20.106 SNAplus2 R5.1 LU 6.2 Verb Library Routi nes ] (PHNE_20837 : 99/12/17 19:05:17) ] /opt/sna/lib/libcpic.1: ]B.10.20.109 SNAplus2 R5.1 CPI-C Library Routines ] (PHNE_20837 : 99/12/17 19:08:33) ] /opt/sna/lib/libcov.1: ]B.10.20.101 SNAplus2 R5.1 Control Operator Verbs ] (PHNE_20837 : 99/12/17 19:07:09) ] /opt/sna/lib/libcsv.1: ]B.10.20.101 SNAplus2 R5.1 Common Service Verb Libra ry Routines ] (PHNE_11163 : 97/08/01 11:44:47) ] /opt/sna/lib/liblua.1: ]B.10.20.103 SNAplus2 R5.1 LUA Verb Library Routines ] (PHNE_20837 : 99/12/18 13:43:02) ] /opt/sna/include/acssvcc.h: None /opt/sna/include/appc_c.h: None /opt/sna/include/cmc.h: None /opt/sna/include/lua_c.h: None /opt/sna/include/ms_c.h: None /opt/sna/include/nof_c.h: None /opt/sna/include/values_c.h: None cksum(1) Output: 2166596730 90112 /opt/sna/lib/libappc.1 3182100222 299008 /opt/sna/lib/libcpic.1 4199244241 45056 /opt/sna/lib/libcov.1 2536224524 90112 /opt/sna/lib/libcsv.1 1133944182 69632 /opt/sna/lib/liblua.1 2741713346 17931 /opt/sna/include/acssvcc.h 3662064440 42290 /opt/sna/include/appc_c.h 3771457030 24465 /opt/sna/include/cmc.h 3988140795 28172 /opt/sna/include/lua_c.h 2589413137 17946 /opt/sna/include/ms_c.h 1345408636 472478 /opt/sna/include/nof_c.h 1843070300 141965 /opt/sna/include/values_c.h Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHNE_9055 PHNE_9761 PHNE_11163 PHNE_14874 Equivalent Patches: None Patch Package Size: 1380 KBytes Installation Instructions: Please review all instructions and the Hewlett-Packard SupportLine User Guide or your Hewlett-Packard support terms and conditions for precautions, scope of license, restrictions, and, limitation of liability and warranties, before installing this patch. ------------------------------------------------------------ 1. Back up your system before installing a patch. 2. Login as root. 3. Copy the patch to the /tmp directory. 4. Move to the /tmp directory and unshar the patch: cd /tmp sh PHNE_20837 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHNE_20837.depot By default swinstall will archive the original software in /var/adm/sw/patch/PHNE_20837. If you do not wish to retain a copy of the original software, you can create an empty file named /var/adm/sw/patch/PATCH_NOSAVE. WARNING: If this file exists when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. It is recommended that you move the PHNE_20837.text file to /var/adm/sw/patch for future reference. To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHNE_20837.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: Stop SNA daemon before installing patch (snap stop). After installing the patch start the SNA daemon (snap start).