X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=lcr.git;a=blobdiff_plain;f=mISDN.cpp;h=1d75fc3be2a6d043983f2595b93132cf28b6124d;hp=46cf1a5797f12972fb04f3cae16a40c2dbe43a0d;hb=2106a9212ce6610b01f7019d5acf92ee1af5c8d8;hpb=5df02da464adcac01848f5ab465d02a7574af663 diff --git a/mISDN.cpp b/mISDN.cpp index 46cf1a5..1d75fc3 100644 --- a/mISDN.cpp +++ b/mISDN.cpp @@ -11,9 +11,6 @@ #include "main.h" #include "myisdn.h" - -#include -int __af_isdn = MISDN_AF_ISDN; #include #undef offsetof @@ -40,7 +37,9 @@ struct mISDNport *mISDNport_first; unsigned char mISDN_rand[256]; int mISDN_rand_count = 0; +#ifdef OLD_MT_ASSIGN unsigned int mt_assign_pid = ~0; +#endif int mISDNsocket = -1; static int upqueue_pipe[2]; @@ -50,9 +49,21 @@ int upqueue_avail = 0; static int mISDN_upqueue(struct lcr_fd *fd, unsigned int what, void *instance, int i); static int mISDN_timeout(struct lcr_timer *timer, void *instance, int i); +static int my_mISDNlib_debug(const char *file, int line, const char *func, int level, const char *fmt, va_list va) +{ + int ret = 0; + + if (debug_fp > 0) + ret = vfprintf(debug_fp, fmt, va); + return ret; +} + +static struct mi_ext_fn_s myfn; + int mISDN_initialize(void) { char filename[256]; + int ver; /* try to open raw socket to check kernel */ mISDNsocket = socket(PF_ISDN, SOCK_RAW, ISDN_P_BASE); @@ -62,7 +73,10 @@ int mISDN_initialize(void) } /* init mlayer3 */ - init_layer3(4); // buffer of 4 + // set debug printout function + myfn.prt_debug = my_mISDNlib_debug; + + ver = init_layer3(4, &myfn); // buffer of 4 /* open debug, if enabled and not only stack debugging */ if (options.deb) { @@ -70,11 +84,10 @@ int mISDN_initialize(void) debug_fp = fopen(filename, "a"); } - if (options.deb & DEBUG_STACK) { - SPRINT(filename, "%s/debug_mISDN.log", LOG_DIR); - mISDN_debug_init(0xfffffeff, filename, filename, filename); - } else - mISDN_debug_init(0, NULL, NULL, NULL); + if (options.deb & DEBUG_STACK) + mISDN_set_debug_level(0xfffffeff); + else + mISDN_set_debug_level(0); if (pipe(upqueue_pipe) < 0) FATAL("Failed to open pipe\n"); @@ -89,8 +102,6 @@ void mISDN_deinitialize(void) { cleanup_layer3(); - mISDN_debug_close(); - if (debug_fp) fclose(debug_fp); debug_fp = NULL; @@ -2036,6 +2047,7 @@ int do_layer3(struct mlayer3 *ml3, unsigned int cmd, unsigned int pid, struct l3 struct mISDNport *mISDNport = (struct mISDNport *)ml3->priv; struct mbuffer *mb; +#ifdef OLD_MT_ASSIGN /* special MT_ASSIGN handling: * * if we request a PID from mlayer, we always do it while lcr is locked. @@ -2053,6 +2065,7 @@ int do_layer3(struct mlayer3 *ml3, unsigned int cmd, unsigned int pid, struct l3 mt_assign_pid = pid; return(0); } +#endif /* queue message, create, if required */ if (!l3m) { l3m = alloc_l3_msg();