Browse Source

- the dialog callbacks are exported

Andrei Pelinescu-Onciul 18 years ago
parent
commit
1237c6d1b3
3 changed files with 16 additions and 0 deletions
  1. 3 0
      modules/tm/dlg.h
  2. 5 0
      modules/tm/tm_load.c
  3. 8 0
      modules/tm/tm_load.h

+ 3 - 0
modules/tm/dlg.h

@@ -220,6 +220,9 @@ void run_trans_dlg_callbacks(dlg_t* dlg, struct cell* trans,
 								struct retr_buf* rbuf);
 /* cleanup on exit */
 void destroy_new_dlg_cbs();
+
+typedef int (*register_new_dlg_cb_f)(int, dialog_cb, void*);
+typedef int (*register_dlg_tmcb_f)(int, dlg_t*, transaction_cb, void*);
 #endif /* DIALOG_CALLBACKS */
 
 

+ 5 - 0
modules/tm/tm_load.c

@@ -48,6 +48,7 @@ int load_tm( struct tm_binds *tmb)
 		return -1;
 	}
 
+	memset(tmb, 0, sizeof(struct tm_binds));
 	if (!( tmb->register_tmcb=(register_tmcb_f) 
 		find_export("register_tmcb", NO_SCRIPT, 0)) ) {
 		LOG(L_ERR, LOAD_ERROR "'register_tmcb' not found\n");
@@ -194,5 +195,9 @@ int load_tm( struct tm_binds *tmb)
 	tmb->send_prepared_request = send_prepared_request;
 	
 	tmb->route_mode = &rmode;
+#ifdef DIALOG_CALLBACKS
+	tmb->register_new_dlg_cb=register_new_dlg_cb;
+	tmb->register_dlg_tmcb=register_dlg_tmcb;
+#endif
 	return 1;
 }

+ 8 - 0
modules/tm/tm_load.h

@@ -111,6 +111,14 @@ struct tm_binds {
 	prepare_request_within_f  prepare_request_within;
 	send_prepared_request_f   send_prepared_request;
 	enum route_mode*   route_mode;
+#ifdef DIALOG_CALLBACKS
+	register_new_dlg_cb_f register_new_dlg_cb;
+	register_dlg_tmcb_f   register_dlg_tmcb;
+#else
+	void* reserved1; /* make sure the structure has the same size even
+	                    if no dlg callbacks are used/defined*/
+	void* reserved2;
+#endif
 };
 
 extern int tm_init;