Index: src/SMB.h
===================================================================
--- src/SMB.h	(révision 7145)
+++ src/SMB.h	(copie de travail)
@@ -48,7 +48,7 @@
 
 	static bool any_smb_event()
 		{
-		return smb_message ||
+		return smb_message || smb_com_negotiate ||
 			smb_com_tree_connect_andx ||
 			smb_com_nt_create_andx || smb_com_transaction ||
 			smb_com_transaction2 || smb_com_read_andx ||
Index: src/SMB.cc
===================================================================
--- src/SMB.cc	(révision 7145)
+++ src/SMB.cc	(copie de travail)
@@ -480,8 +480,8 @@
 	r->Assign(0, new Val(req.flags(), TYPE_COUNT));
 	r->Assign(1, new StringVal(req.password_length(),
 					(const char*) req.password()));
-	r->Assign(3, new StringVal(path));
-	r->Assign(4, new StringVal(service));
+	r->Assign(2, new StringVal(path));
+	r->Assign(3, new StringVal(service));
 
 	if ( strstr_n(norm_path->Len(), norm_path->Bytes(), 5,
 		      (const u_char*) "\\IPC$") != -1 )
@@ -1012,10 +1012,11 @@
 	r->Assign(1, new Val(status, TYPE_COUNT));
 	r->Assign(2, new Val(hdr.flags(), TYPE_COUNT));
 	r->Assign(3, new Val(hdr.flags2(), TYPE_COUNT));
-	r->Assign(4, new Val(hdr.tid(), TYPE_COUNT));
-	r->Assign(5, new Val(hdr.pid(), TYPE_COUNT));
-	r->Assign(6, new Val(hdr.uid(), TYPE_COUNT));
-	r->Assign(7, new Val(hdr.mid(), TYPE_COUNT));
+	r->Assign(4, new Val(hdr.processid(), TYPE_COUNT));
+	r->Assign(5, new Val(hdr.tid(), TYPE_COUNT));
+	r->Assign(6, new Val(hdr.pid(), TYPE_COUNT));
+	r->Assign(7, new Val(hdr.uid(), TYPE_COUNT));
+	r->Assign(8, new Val(hdr.mid(), TYPE_COUNT));
 
 	return r;
 	}
Index: src/smb-protocol.pac
===================================================================
--- src/smb-protocol.pac	(révision 7145)
+++ src/smb-protocol.pac	(copie de travail)
@@ -106,7 +106,7 @@
 
 type SMB_error (err_status_type: int) = case err_status_type of {
 	0 -> dos_error: SMB_dos_error;
-	1 -> status: int32;
+	1 -> status: uint32;
 };
 
 type SMB_header = record {
@@ -115,7 +115,8 @@
 	status		: SMB_error(err_status_type);
 	flags		: uint8;
 	flags2		: uint16;
-	pad		: padding[12];
+	processid	: uint16;
+	pad		: padding[10];
 	tid		: uint16;
 	pid		: uint16;
 	uid		: uint16;
Index: src/ICMP.cc
===================================================================
--- src/ICMP.cc	(révision 7145)
+++ src/ICMP.cc	(copie de travail)
@@ -84,23 +84,18 @@
 					false, false, true);
 	}
 
-void ICMP_Analyzer::NextICMP(double /* t */, const struct icmp* /* icmpp */,
-				int /* len */, int /* caplen */,
-				const u_char*& /* data */)
+void ICMP_Analyzer::NextICMP(double t , const struct icmp* icmpp ,
+				int len , int caplen ,
+				const u_char*& data)
 	{
-	ICMPEvent(icmp_sent);
-	}
-
-void ICMP_Analyzer::ICMPEvent(EventHandlerPtr f)
-	{
-	if ( ! f )
-		return;
-
+	BroString* payload = new BroString(data, caplen, 0);
 	val_list* vl = new val_list;
+
 	vl->append(BuildConnVal());
 	vl->append(BuildICMPVal());
+	vl->append(new StringVal(payload));
 
-	ConnectionEvent(f, vl);
+	ConnectionEvent(icmp_sent, vl);
 	}
 
 RecordVal* ICMP_Analyzer::BuildICMPVal()
Index: src/event.bif
===================================================================
--- src/event.bif	(révision 7145)
+++ src/event.bif	(copie de travail)
@@ -52,7 +52,7 @@
 event udp_reply%(u: connection%);
 event udp_contents%(u: connection, is_orig: bool, contents: string%);
 event udp_session_done%(u: connection%);
-event icmp_sent%(c: connection, icmp: icmp_conn%);
+event icmp_sent%(c: connection, icmp: icmp_conn, payload: string%);
 event icmp_echo_request%(c: connection, icmp: icmp_conn, id: count, seq: count, payload: string%);
 event icmp_echo_reply%(c: connection, icmp: icmp_conn, id: count, seq: count, payload: string%);
 event icmp_unreachable%(c: connection, icmp: icmp_conn, code: count, context: icmp_context%);
@@ -198,7 +198,7 @@
 event netbios_session_keepalive%(c: connection, msg: string%);
 
 event smb_message%(c: connection, hdr: smb_hdr, is_orig: bool, cmd: string, body_length: count, body: string%);
-event smb_com_tree_connect_andx%(c: connection, hdr: smb_hdr, path: string, service: string%);
+event smb_com_tree_connect_andx%(c: connection, hdr: smb_hdr, tree: smb_tree_connect%);
 event smb_com_tree_disconnect%(c: connection, hdr: smb_hdr%);
 event smb_com_nt_create_andx%(c: connection, hdr: smb_hdr, name: string%);
 event smb_com_transaction%(c: connection, hdr: smb_hdr, trans: smb_trans, data: smb_trans_data, is_orig: bool%);
Index: src/ICMP.h
===================================================================
--- src/ICMP.h	(révision 7145)
+++ src/ICMP.h	(copie de travail)
@@ -34,7 +34,6 @@
 	virtual bool IsReuse(double t, const u_char* pkt);
 	virtual unsigned int MemoryAllocation() const;
 
-	void ICMPEvent(EventHandlerPtr f);
 	void Describe(ODesc* d) const;
 
 	RecordVal* BuildICMPVal();
Index: policy/bro.init
===================================================================
--- policy/bro.init	(révision 7145)
+++ policy/bro.init	(copie de travail)
@@ -768,6 +768,7 @@
 	status: count;
 	flags: count;
 	flags2: count;
+	processid: count;
 	tid: count;
 	pid: count;
 	uid: count;
