Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:12.2:PowerPC
i4l-base
capi20_fixes.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File capi20_fixes.diff of Package i4l-base
Index: isdn4k-utils/capi20/Makefile.am =================================================================== --- isdn4k-utils.orig/capi20/Makefile.am +++ isdn4k-utils/capi20/Makefile.am @@ -10,7 +10,7 @@ lib_LTLIBRARIES = libcapi20.la lib_LIBRARIES = libcapi20dyn.a libcapi20_la_SOURCES = capi20.c capifunc.c convert.c -libcapi20_la_LDFLAGS = -version-info ${LIBCAPI_VERSION}:${LIBCAPI_VERSION_RELEASE}:${LIBCAPI_VERSION_AGE} -lc -ldl +libcapi20_la_LDFLAGS = -version-info ${LIBCAPI_VERSION}:${LIBCAPI_VERSION_RELEASE}:${LIBCAPI_VERSION_AGE} -lc -ldl -rdynamic libcapi20_la_CFLAGS = -fno-strict-aliasing -DLIBDIR=\"$(libdir)/capi\" modulesdir = $(libdir)/capi Index: isdn4k-utils/capi20/capi20.c =================================================================== --- isdn4k-utils.orig/capi20/capi20.c +++ isdn4k-utils/capi20/capi20.c @@ -140,6 +140,21 @@ unsigned char *put_word( unsigned char * } /** + * \brief Put dword to data buffer and increase buffer pointer + * \param ppnPtr data buffer pointer + * \param nVal dword number + * \return word from buffer + */ +unsigned char *put_dword( unsigned char **ppnPtr, _cdword nVal ) { + put_byte( ppnPtr, nVal & 0xFF ); + put_byte( ppnPtr, ( nVal & 0xFF00 ) >> 8 ); + put_byte( ppnPtr, ( nVal & 0xFF0000 ) >> 16 ); + put_byte( ppnPtr, ( nVal & 0xFF000000 ) >> 24 ); + + return *ppnPtr; +} + +/** * \brief Put netword to data buffer and increase buffer pointer * \param ppnPtr data buffer pointer * \param nVal netword number @@ -523,7 +538,7 @@ static int LoadModule( char *pnName ) { InitModule initModule; /* Try to open module */ - pHandle = dlopen( pnName, RTLD_LAZY ); + pHandle = dlopen( pnName, RTLD_LAZY | RTLD_GLOBAL); if ( pHandle == NULL ) { Debug( 1, "Could not open module!\n" ); return -1; @@ -636,32 +651,51 @@ unsigned capi20_isinstalled( void ) { /* read configuration file */ read_config(); - /* no special driver requested, set default to 'standard' */ + /* no special driver requested, auto-detect */ if ( strlen( driver ) <= 0 ) { - snprintf( driver, sizeof( driver ), "standard" ); - } - - /* Find requested driver in list */ - psList = psModuleList; - while ( psList != NULL ) { - if ( !strcasecmp( psList -> psMod -> pnName, driver ) ) { - psModule = psList -> psMod; - break; + /* backwards-compatible: check standard interface fist */ + psList = psModuleList; + while ( psList != NULL ) { + + if ( !strcasecmp( psList -> psMod -> pnName, "standard" ) ) { + psModule = psList -> psMod; + capi_fd = psModule -> psOperations -> IsInstalled(); + if ( capi_fd >= 0 ) { + /* no error */ + return CapiNoError; + } + } + psList = psList -> psNext; } - psList = psList -> psNext; - } - - /* if no module is selected, abort */ - if ( psModule == NULL ) { - return CapiRegNotInstalled; - } - - /* check if we have a capi interface and return file handle */ - capi_fd = psModule -> psOperations -> IsInstalled(); - if ( capi_fd >= 0 ) { - /* no error */ - return CapiNoError; + /* no standard device detect, try the other modules */ + psList = psModuleList; + while ( psList != NULL ) { + if ( strcasecmp( psList -> psMod -> pnName, "standard" ) ) { + psModule = psList -> psMod; + capi_fd = psModule -> psOperations -> IsInstalled(); + if ( capi_fd >= 0 ) { + /* no error */ + return CapiNoError; + } + } + psList = psList -> psNext; + } + } else { + /* Find requested driver in list */ + psList = psModuleList; + while ( psList != NULL ) { + if ( !strcasecmp( psList -> psMod -> pnName, driver ) ) { + psModule = psList -> psMod; + capi_fd = psModule -> psOperations -> IsInstalled(); + if ( capi_fd >= 0 ) { + /* no error */ + return CapiNoError; + } + break; + } + psList = psList -> psNext; + } } /* uhh, not installed */ Index: isdn4k-utils/capi20/capi_mod.h =================================================================== --- isdn4k-utils.orig/capi20/capi_mod.h +++ isdn4k-utils/capi20/capi_mod.h @@ -32,6 +32,7 @@ char *getHostName( void ); int getPort( void ); char *getTraceFile( void ); int getTraceLevel( void ); +unsigned char *get_buffer( unsigned applid, size_t *sizep, unsigned *handle ); #define MODULE_LOADER_VERSION 0x01 Index: isdn4k-utils/capi20/capi_mod_fritzbox.c =================================================================== --- isdn4k-utils.orig/capi20/capi_mod_fritzbox.c +++ isdn4k-utils/capi20/capi_mod_fritzbox.c @@ -115,7 +115,7 @@ static int fritzboxOpenSocket( void ) { /* no errors, return handle */ return nHandle; } - Debug( 1, "[%s]: Could not connect to port %d on '%s'", __FUNCTION__, getPort(), getHostName() ); + Debug( 1, "[%s]: Could not connect to port %d on '%s'. CapiOverTCP enabled??", __FUNCTION__, getPort(), getHostName() ); } else { Debug( 1, "[%s]: Could not resolve host '%s'", __FUNCTION__, getHostName() ); } @@ -531,7 +531,7 @@ static unsigned fritzboxGetProfile( int } /** Module operations structure */ -struct sModuleOperations sFritzBox = { +static struct sModuleOperations sFritzBox = { fritzboxIsInstalled, fritzboxRegister, fritzboxRelease, Index: isdn4k-utils/capi20/capi_mod_rcapi.c =================================================================== --- isdn4k-utils.orig/capi20/capi_mod_rcapi.c +++ isdn4k-utils/capi20/capi_mod_rcapi.c @@ -479,7 +479,7 @@ static unsigned rcapiGetProfile( int nHa } /** Module operations structure */ -struct sModuleOperations sRemoteCapi = { +static struct sModuleOperations sRemoteCapi = { rcapiIsInstalled, rcapiRegister, NULL, Index: isdn4k-utils/capi20/capi_mod_std.c =================================================================== --- isdn4k-utils.orig/capi20/capi_mod_std.c +++ isdn4k-utils/capi20/capi_mod_std.c @@ -21,8 +21,9 @@ #include "capi20.h" #include "capi_mod.h" -static char capidevname[] = "/dev/capi20"; -static char capidevnamenew[] = "/dev/isdn/capi20"; +#define CAPI_DEVICE_NAME "/dev/capi20" +#define CAPI_DEVICE_NAME_NEW "/dev/isdn/capi20" + static capi_ioctl_struct ioctl_data; /** @@ -32,8 +33,8 @@ static capi_ioctl_struct ioctl_data; static unsigned standardIsInstalled( void ) { int nHandle; - if ( ( nHandle = open( capidevname, O_RDWR, 0666 ) ) < 0 && ( errno == ENOENT ) ) { - nHandle = open( capidevnamenew, O_RDWR, 0666 ); + if ( ( nHandle = open( CAPI_DEVICE_NAME, O_RDWR, 0666 ) ) < 0 && ( errno == ENOENT ) ) { + nHandle = open( CAPI_DEVICE_NAME_NEW, O_RDWR, 0666 ); } if ( nHandle >= 0 ) { @@ -59,8 +60,8 @@ static unsigned standardRegister( unsign int nIndex; int nHandle; - if ( ( nHandle = open( capidevname, O_RDWR | O_NONBLOCK, 0666 ) ) < 0 && ( errno == ENOENT ) ) { - nHandle = open( capidevnamenew, O_RDWR | O_NONBLOCK, 0666 ); + if ( ( nHandle = open( CAPI_DEVICE_NAME, O_RDWR | O_NONBLOCK, 0666 ) ) < 0 && ( errno == ENOENT ) ) { + nHandle = open( CAPI_DEVICE_NAME_NEW, O_RDWR | O_NONBLOCK, 0666 ); } if (nHandle < 0) { @@ -435,7 +436,7 @@ static int standardGetNcciOpenCount( uns } /** Module operations structure */ -struct sModuleOperations sStandard = { +static struct sModuleOperations sStandard = { standardIsInstalled, standardRegister, NULL,
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor