Index: extensions/app_diameap/diameap_eap.c
===================================================================
--- extensions/app_diameap/diameap_eap.c	(revision 1075)
+++ extensions/app_diameap/diameap_eap.c	(revision 1052)
@@ -373,5 +373,5 @@
 		case EAP_INTEGRITY_CHECK:
 			if ((*eap_sm->selectedMethod->eap_method_check)(eap_sm,
-					&eap_i->aaaEapRespData) == FALSE)
+					eap_i->aaaEapRespData) == FALSE)
 			{
 				TRACE_DEBUG(INFO,"%s[EAP Protocol] Invalid EAP packet received {Type=%d, Vendor=%d}. Integrity check failed (non fatal error).",DIAMEAP_EXTENSION,eap_sm->currentMethod,eap_sm->currentVendor);
@@ -434,5 +434,5 @@
 			}
 			if ((*eap_sm->selectedMethod->eap_method_process)(eap_sm,
-					&eap_i->aaaEapRespData))
+					eap_i->aaaEapRespData))
 			{
 				TRACE_DEBUG(INFO,"%s[EAP Protocol] [%s plugin] Authentication process failed.",DIAMEAP_EXTENSION,eap_sm->selectedMethod->methodname);
Index: extensions/app_diameap/diameap_plugins.c
===================================================================
--- extensions/app_diameap/diameap_plugins.c	(revision 1075)
+++ extensions/app_diameap/diameap_plugins.c	(revision 1052)
@@ -263,5 +263,5 @@
 		{
 			plugin->eap_method_check = (boolean(*)(struct eap_state_machine *,
-					struct eap_packet*)) dlsym(plugin->handler,
+					struct eap_packet)) dlsym(plugin->handler,
 					registerplugin->check);
 			if (plugin->eap_method_check == NULL)
@@ -285,5 +285,5 @@
 		{
 			plugin->eap_method_process = (int(*)(struct eap_state_machine *,
-					struct eap_packet*)) dlsym(plugin->handler,
+					struct eap_packet)) dlsym(plugin->handler,
 					registerplugin->process);
 			if (plugin->eap_method_process == NULL)
Index: extensions/app_diameap/libdiameap.h
===================================================================
--- extensions/app_diameap/libdiameap.h	(revision 1075)
+++ extensions/app_diameap/libdiameap.h	(revision 610)
@@ -110,7 +110,7 @@
 	int (*eap_method_getTimeout)(struct eap_state_machine *smd, int * timeout); /* address of the eap_method_getTimeout method */
 	boolean (*eap_method_check)(struct eap_state_machine *smd,
-			struct eap_packet * eapRespData); /* address of the eap_method_check method */
+			struct eap_packet eapRespData); /* address of the eap_method_check method */
 	int (*eap_method_process)(struct eap_state_machine *smd,
-			struct eap_packet * eapRespData); /* address of the eap_method_process method */
+			struct eap_packet eapRespData); /* address of the eap_method_process method */
 	boolean (*eap_method_isDone)(struct eap_state_machine *smd); /* address of the eap_method_isDone method */
 	int (*eap_method_getKey)(struct eap_state_machine *smd, u8 ** msk,int *msklength, 
Index: extensions/dbg_interactive/messages.i
===================================================================
--- extensions/dbg_interactive/messages.i	(revision 1014)
+++ extensions/dbg_interactive/messages.i	(revision 1078)
@@ -297,9 +297,4 @@
 	}
 	
-	/* Log to file (depending on config)  */
-	void log ( enum fd_msg_log_cause cause, char * message ) {
-		fd_msg_log( cause, $self, message );
-	}
-	
 	/* Model */
 	struct dict_object * model() {
Index: extensions/dbg_interactive/queues.i
===================================================================
--- extensions/dbg_interactive/queues.i	(revision 1071)
+++ extensions/dbg_interactive/queues.i	(revision 1060)
@@ -66,5 +66,10 @@
 	/* Get the length of the queue (nb elements) */
 	int length() {
-		return fd_fifo_length ( $self ) ;
+		int l;
+		int ret = fd_fifo_length ( $self, &l, NULL );
+		if (ret != 0) {
+			DI_ERROR(ret, NULL, NULL);
+		}
+		return l;
 	}
 
Index: extensions/dbg_monitor/dbg_monitor.c
===================================================================
--- extensions/dbg_monitor/dbg_monitor.c	(revision 1075)
+++ extensions/dbg_monitor/dbg_monitor.c	(revision 974)
@@ -50,26 +50,4 @@
 EXTENSION_ENTRY("dbg_monitor", monitor_main);
 
-
-
-/* Display information about a queue */
-static void display_info(char * queue_desc, char * peer, int current_count, int limit_count, int highest_count, long long total_count,
-			struct timespec * total, struct timespec * blocking, struct timespec * last)
-{
-	long long ms = (total->tv_sec * 1000000) + (total->tv_nsec / 1000);
-	long double throughput = (long double)total_count * 1000000;
-	throughput /= ms;
-	if (peer) {
-		TRACE_DEBUG(INFO, "'%s'@'%s': cur:%d/%d, h:%d, T:%lld in %ld.%06lds (%.2LFitems/s), blocked:%ld.%06lds, last processing:%ld.%06lds",
-			queue_desc, peer, current_count, limit_count, highest_count,
-			total_count, total->tv_sec, total->tv_nsec, throughput,
-			blocking->tv_sec, blocking->tv_nsec, last->tv_sec, last->tv_nsec);
-	} else {
-		TRACE_DEBUG(INFO, "Global '%s': cur:%d/%d, h:%d, T:%lld in %ld.%06lds (%.2LFitems/s), blocked:%ld.%06lds, last processing:%ld.%06lds",
-			queue_desc, current_count, limit_count, highest_count,
-			total_count, total->tv_sec, total->tv_nsec, throughput,
-			blocking->tv_sec, blocking->tv_nsec, last->tv_sec, last->tv_nsec);
-	}
-}
-
 /* Thread to display periodical debug information */
 static pthread_t thr;
@@ -81,9 +59,4 @@
 	/* Loop */
 	while (1) {
-		int current_count, limit_count, highest_count;
-		long long total_count;
-		struct timespec total, blocking, last;
-		struct fd_list * li;
-	
 		#ifdef DEBUG
 		for (i++; i % 30; i++) {
@@ -92,38 +65,10 @@
 		}
 		#else /* DEBUG */
-		sleep(3599); /* 1 hour */
+		sleep(3600); /* 1 hour */
 		#endif /* DEBUG */
-		TRACE_DEBUG(INFO, "[dbg_monitor] Dumping queues statistics");
-		
-		CHECK_FCT_DO( fd_stat_getstats(STAT_G_LOCAL, NULL, &current_count, &limit_count, &highest_count, &total_count, &total, &blocking, &last), );
-		display_info("Local delivery", NULL, current_count, limit_count, highest_count, total_count, &total, &blocking, &last);
-		
-		CHECK_FCT_DO( fd_stat_getstats(STAT_G_INCOMING, NULL, &current_count, &limit_count, &highest_count, &total_count, &total, &blocking, &last), );
-		display_info("Total received", NULL, current_count, limit_count, highest_count, total_count, &total, &blocking, &last);
-		
-		CHECK_FCT_DO( fd_stat_getstats(STAT_G_OUTGOING, NULL, &current_count, &limit_count, &highest_count, &total_count, &total, &blocking, &last), );
-		display_info("Total sending", NULL, current_count, limit_count, highest_count, total_count, &total, &blocking, &last);
-		
-		
-		CHECK_FCT_DO( pthread_rwlock_rdlock(&fd_g_peers_rw), /* continue */ );
-
-		for (li = fd_g_peers.next; li != &fd_g_peers; li = li->next) {
-			struct peer_hdr * p = (struct peer_hdr *)li->o;
-			
-			fd_peer_dump(p, NONE);
-			
-			CHECK_FCT_DO( fd_stat_getstats(STAT_P_PSM, p, &current_count, &limit_count, &highest_count, &total_count, &total, &blocking, &last), );
-			display_info("Events, incl. recept", p->info.pi_diamid, current_count, limit_count, highest_count, total_count, &total, &blocking, &last);
-			
-			CHECK_FCT_DO( fd_stat_getstats(STAT_P_TOSEND, p, &current_count, &limit_count, &highest_count, &total_count, &total, &blocking, &last), );
-			display_info("Outgoing", p->info.pi_diamid, current_count, limit_count, highest_count, total_count, &total, &blocking, &last);
-			
-		}
-
-		CHECK_FCT_DO( pthread_rwlock_unlock(&fd_g_peers_rw), /* continue */ );
-
-		
-		
+		fd_log_debug("[dbg_monitor] Dumping current information");
+		CHECK_FCT_DO(fd_event_send(fd_g_config->cnf_main_ev, FDEV_DUMP_QUEUES, 0, NULL), /* continue */);
 		CHECK_FCT_DO(fd_event_send(fd_g_config->cnf_main_ev, FDEV_DUMP_SERV, 0, NULL), /* continue */);
+		CHECK_FCT_DO(fd_event_send(fd_g_config->cnf_main_ev, FDEV_DUMP_PEERS, 0, NULL), /* continue */);
 		sleep(1);
 	}
