#include "main.h"
#include "myisdn.h"
-
-#include <mISDN/mISDNcompat.h>
-int __af_isdn = MISDN_AF_ISDN;
#include <mISDN/q931.h>
#undef offsetof
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];
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);
}
/* 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) {
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");
{
cleanup_layer3();
- mISDN_debug_close();
-
if (debug_fp)
fclose(debug_fp);
debug_fp = NULL;
chan_trace_header(mISDNport, isdnport, "MESSAGE_BCHANNEL (from remote application)", DIRECTION_NONE);
add_trace("type", NULL, "export request");
end_trace();
- isdnport->p_m_remote_ref = joinremote->j_serial;
+ isdnport->p_m_remote_ref = joinremote->j_remote_ref;
isdnport->p_m_remote_id = joinremote->j_remote_id;
if (mISDNport && i>=0) {
bchannel_event(mISDNport, i, B_EVENT_EXPORTREQUEST);
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.
mt_assign_pid = pid;
return(0);
}
+#endif
/* queue message, create, if required */
if (!l3m) {
l3m = alloc_l3_msg();