rsyslog/librelp

review list of exported symbols

mbiebl opened this issue · 4 comments

This is a followup for #179
Looking at 1.6.0, librelp.so.0 exposes the following 162 symbols

 relpCCServerclose
 relpCltAddPermittedPeer
 relpCltConnect
 relpCltConstruct
 relpCltDestruct
 relpCltEnableTLS
 relpCltEnableTLSZip
 relpCltHintBurstBegin
 relpCltHintBurstEnd
 relpCltReconnect
 relpCltSendSyslog
 relpCltSetAuthMode
 relpCltSetCACert
 relpCltSetClientIP
 relpCltSetConnTimeout
 relpCltSetGnuTLSPriString
 relpCltSetOwnCert
 relpCltSetPrivKey
 relpCltSetTimeout
 relpCltSetTlsConfigCmd
 relpCltSetUsrPtr
 relpCltSetWindowSize
 relpEngineAddListner2
 relpEngineAddListner
 relpEngineCallOnGenericErr
 relpEngineCltConstruct
 relpEngineCltDestruct
 relpEngineConstruct
 relpEngineDestruct
 relpEngineDispatchFrame
 relpEngineGetVersion
 relpEngineListnerConstruct
 relpEngineListnerConstructFinalize
 relpEngineRun
 relpEngineSetDbgprint
 relpEngineSetDnsLookupMode
 relpEngineSetEnableCmd
 relpEngineSetFamily
 relpEngineSetOnAuthErr
 relpEngineSetOnErr
 relpEngineSetOnGenericErr
 relpEngineSetShutdownImmdtPtr
 relpEngineSetStop
 relpEngineSetSyslogRcv2
 relpEngineSetSyslogRcv
 relpEngineSetTLSLib
 relpEngineSetTLSLibByName
 relpFrameBuildSendbuf
 relpFrameConstruct
 relpFrameConstructWithData
 relpFrameDestruct
 relpFrameGetNextC
 relpFrameProcessOctetRcvd
 relpFrameRewriteTxnr
 relpFrameSetCmd
 relpFrameSetData
 relpFrameSetTxnr
 relpOfferAdd
 relpOfferValueAdd
 relpOffersConstruct
 relpOffersConstructFromFrame
 relpOffersDestruct
 relpOffersToString
 relpSCClose
 relpSCInit
 relpSCRsp
 relpSCSyslog
 relpSendbufConstruct
 relpSendbufDestruct
 relpSendbufSend
 relpSendbufSendAll
 relpSendbufSetData
 relpSendqAddBuf
 relpSendqConstruct
 relpSendqDelFirstBuf
 relpSendqDestruct
 relpSendqIsEmpty
 relpSendqSend
 relpSessAcceptAndConstruct
 relpSessAddUnacked
 relpSessCltConnChkOffers
 relpSessConnect
 relpSessConstruct
 relpSessConstructOffers
 relpSessDestruct
 relpSessEnableTLS
 relpSessEnableTLSZip
 relpSessGetUnacked
 relpSessRcvData
 relpSessSendCommand
 relpSessSendResponse
 relpSessSendSyslog
 relpSessSetAuthMode
 relpSessSetCACert
 relpSessSetClientIP
 relpSessSetConnTimeout
 relpSessSetEnableCmd
 relpSessSetGnuTLSPriString
 relpSessSetMaxDataSize
 relpSessSetOwnCert
 relpSessSetPermittedPeers
 relpSessSetPrivKey
 relpSessSetProtocolVersion
 relpSessSetTimeout
 relpSessSetTlsConfigCmd
 relpSessSetUsrPtr
 relpSessSetWindowSize
 relpSessSndData
 relpSessTryReestablish
 relpSrvAddPermittedPeer
 relpSrvConstruct
 relpSrvDestruct
 relpSrvEnableTLS2
 relpSrvEnableTLS
 relpSrvEnableTLSZip2
 relpSrvEnableTLSZip
 relpSrvRun
 relpSrvSetAuthMode
 relpSrvSetCACert
 relpSrvSetDHBits
 relpSrvSetEnableCmd
 relpSrvSetFamily
 relpSrvSetGnuTLSPriString
 relpSrvSetKeepAlive
 relpSrvSetLstnAddr
 relpSrvSetLstnPort
 relpSrvSetMaxDataSize
 relpSrvSetOversizeMode
 relpSrvSetOwnCert
 relpSrvSetPrivKey
 relpSrvSetTlsConfigCmd
 relpSrvSetUsrPtr
 relpTcpAbortDestruct
 relpTcpAcceptConnReq
 relpTcpChkPeerAuth
 relpTcpConnect
 relpTcpConstruct
 relpTcpDestruct
 relpTcpDestructTLS
 relpTcpEnableTLS
 relpTcpEnableTLSZip
 relpTcpGetRtryDirection
 relpTcpHintBurstBegin
 relpTcpHintBurstEnd
 relpTcpLastSSLErrorMsg
 relpTcpLstnInit
 relpTcpPostHandshakeCheck
 relpTcpRcv
 relpTcpRtryHandshake
 relpTcpSend
 relpTcpSetAuthMode
 relpTcpSetCACert
 relpTcpSetConnTimeout
 relpTcpSetDHBits
 relpTcpSetGnuTLSPriString
 relpTcpSetOwnCert
 relpTcpSetPermittedPeers
 relpTcpSetPrivKey
 relpTcpSetTlsConfigCmd
 relpTcpSetUsrPtr
 relpTcpSslInitCerts
 relpTcpWaitWriteable

Checking librelp.h, i.e. the official API of librelp, only 60 can be found there

relpCltAddPermittedPeer
relpCltConnect
relpCltEnableTLS
relpCltEnableTLSZip
relpCltHintBurstBegin
relpCltHintBurstEnd
relpCltReconnect
relpCltSendSyslog
relpCltSetAuthMode
relpCltSetCACert
relpCltSetClientIP
relpCltSetConnTimeout
relpCltSetGnuTLSPriString
relpCltSetOwnCert
relpCltSetPrivKey
relpCltSetTimeout
relpCltSetTlsConfigCmd
relpCltSetUsrPtr
relpCltSetWindowSize
relpEngineAddListner2
relpEngineAddListner
relpEngineCltConstruct
relpEngineCltDestruct
relpEngineConstruct
relpEngineDestruct
relpEngineGetVersion
relpEngineListnerConstruct
relpEngineListnerConstructFinalize
relpEngineRun
relpEngineSetDbgprint
relpEngineSetDnsLookupMode
relpEngineSetEnableCmd
relpEngineSetFamily
relpEngineSetOnAuthErr
relpEngineSetOnErr
relpEngineSetOnGenericErr
relpEngineSetShutdownImmdtPtr
relpEngineSetStop
relpEngineSetSyslogRcv2
relpEngineSetSyslogRcv
relpEngineSetTLSLib
relpEngineSetTLSLibByName
relpSrvAddPermittedPeer
relpSrvEnableTLS2
relpSrvEnableTLS
relpSrvEnableTLSZip2
relpSrvEnableTLSZip
relpSrvSetAuthMode
relpSrvSetCACert
relpSrvSetDHBits
relpSrvSetGnuTLSPriString
relpSrvSetKeepAlive
relpSrvSetLstnAddr
relpSrvSetLstnPort
relpSrvSetMaxDataSize
relpSrvSetOversizeMode
relpSrvSetOwnCert
relpSrvSetPrivKey
relpSrvSetTlsConfigCmd
relpSrvSetUsrPtr

What remains is the following list, which should be reviewed. If they are not supposed to be exported publicly, it's advisable to hide those symbols from the .so:

relpCCServerclose
relpCltConstruct
relpCltDestruct
relpEngineCallOnGenericErr
relpEngineDispatchFrame
relpFrameBuildSendbuf
relpFrameConstruct
relpFrameConstructWithData
relpFrameDestruct
relpFrameGetNextC
relpFrameProcessOctetRcvd
relpFrameRewriteTxnr
relpFrameSetCmd
relpFrameSetData
relpFrameSetTxnr
relpOfferAdd
relpOfferValueAdd
relpOffersConstruct
relpOffersConstructFromFrame
relpOffersDestruct
relpOffersToString
relpSCClose
relpSCInit
relpSCRsp
relpSCSyslog
relpSendbufConstruct
relpSendbufDestruct
relpSendbufSend
relpSendbufSendAll
relpSendbufSetData
relpSendqAddBuf
relpSendqConstruct
relpSendqDelFirstBuf
relpSendqDestruct
relpSendqIsEmpty
relpSendqSend
relpSessAcceptAndConstruct
relpSessAddUnacked
relpSessCltConnChkOffers
relpSessConnect
relpSessConstruct
relpSessConstructOffers
relpSessDestruct
relpSessEnableTLS
relpSessEnableTLSZip
relpSessGetUnacked
relpSessRcvData
relpSessSendCommand
relpSessSendResponse
relpSessSendSyslog
relpSessSetAuthMode
relpSessSetCACert
relpSessSetClientIP
relpSessSetConnTimeout
relpSessSetEnableCmd
relpSessSetGnuTLSPriString
relpSessSetMaxDataSize
relpSessSetOwnCert
relpSessSetPermittedPeers
relpSessSetPrivKey
relpSessSetProtocolVersion
relpSessSetTimeout
relpSessSetTlsConfigCmd
relpSessSetUsrPtr
relpSessSetWindowSize
relpSessSndData
relpSessTryReestablish
relpSrvConstruct
relpSrvDestruct
relpSrvRun
relpSrvSetEnableCmd
relpSrvSetFamily
relpTcpAbortDestruct
relpTcpAcceptConnReq
relpTcpChkPeerAuth
relpTcpConnect
relpTcpConstruct
relpTcpDestruct
relpTcpDestructTLS
relpTcpEnableTLS
relpTcpEnableTLSZip
relpTcpGetRtryDirection
relpTcpHintBurstBegin
relpTcpHintBurstEnd
relpTcpLastSSLErrorMsg
relpTcpLstnInit
relpTcpPostHandshakeCheck
relpTcpRcv
relpTcpRtryHandshake
relpTcpSend
relpTcpSetAuthMode
relpTcpSetCACert
relpTcpSetConnTimeout
relpTcpSetDHBits
relpTcpSetGnuTLSPriString
relpTcpSetOwnCert
relpTcpSetPermittedPeers
relpTcpSetPrivKey
relpTcpSetTlsConfigCmd
relpTcpSetUsrPtr
relpTcpSslInitCerts
relpTcpWaitWriteable

Hi @rgerhards, I still see the following
discrepancy

relpCltConstruct
relpCltDestruct
relpEngineCallOnGenericErr
relpEngineDispatchFrame
relpSrvConstruct
relpSrvDestruct
relpSrvRun
relpSrvSetEnableCmd
relpSrvSetFamily

Are those symbols supposed to be exported?

@rgerhards should I file a separate issue for this?

@rgerhards should I file a separate issue for this?

might be best - I initially though I fix it right away, but I still have some issues with the new CI/CD pipeline (initial version) I have setup for our pacakge build environment.

@mbiebl I am right now working on it