Hi ! In http://archives.mandrakelinux.com/cooker/2003-01/msg00073.php I have reported a strange problem. I have finally found out what causes the problem.
Other then I have written there this bug is triggered too with channelbundling and some providers. Ok. Whats causing the problem: /dev/isdninfo only produces output if the output can be wriiten all at once. If the buffer for reading is to small nothing is written. A lot of applications are using a buffer of 1024 bytes (I guess standard with fopen() calls). Mandrake Kernel defines in isdn.h a maximum of 32 devices and so 64 channels. This leads very fast to exceed this 1024 byte limit as the output of /dev/isdninfois dependent on the ISDNMAXCHAN set in isdn.h . An strace shows that only the difference of HiSax vs. capidrv-1 leads to exceed the limit the current setup. ----------------------------------------------------------- write(1, "idmap:\tcapidrv-1 capidrv-1 - - -"..., 1024idmap: capidrv-1 capidrv-1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - chmap: 0 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 drmap: 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 usage: 131 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 flags: 1 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? phone: 0191011 ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ???) = 1024 <===== write(1, " \n", 2 ) = 2 <======== ------------------------------------------------ So the output is to big by 2 bytes . The question now is how to fix this problem. Calling the apps buggy :D ;) ? An fast and easy solution would be to set in /usr/src/linux/include/linux/isdn.h: #define ISDN_MAX_DRIVERS 32 #define ISDN_MAX_CHANNELS 64 to #define ISDN_MAX_DRIVERS 16 #define ISDN_MAX_CHANNELS 32 I don't think someone using mandrake will have more then 32 lines. At least if there is an update kernel in the queue for 9.1 this would be a solution. Thanks to Tin Baskovic this is proved to solve the problem. Should this be filed as a bug against the kernel or against the applications ? Suggestions anyone ? Greets Steffen
