Exclude in Interest Sending
diff --git a/nlsr_ndn.c b/nlsr_ndn.c
index f3b4a0e..84a0219 100644
--- a/nlsr_ndn.c
+++ b/nlsr_ndn.c
@@ -145,16 +145,25 @@
 
 	if(!strcmp((char *)comp_ptr1,"lsdb"))
 	{
-		//send_hello_response_content(selfp,info);
+		process_incoming_interest_lsdb(selfp,info);
 	}
-	else if(!strcmp((char *)comp_ptr1,"lsa"))
-	{
-		//process_iHaveUpdate_incoming_interest(selfp,info);	
-	}
-	else if(!strcmp((char *)comp_ptr1,"lsaupdate"))
-	{
-		//process_sendlsdb_incoming_interest(selfp,info);	
-	}
+
+
+}
+
+
+void 
+process_incoming_interest_lsdb(struct ccn_closure *selfp, struct ccn_upcall_info *info)
+{
+	printf("process_incoming_interest_lsdb called \n");
+	
+	int i,m;
+	struct upcalldata *data=selfp->data;
+
+	m=data->n_excl;
+	for(i=0; i<m; i++)
+		printf("%s ",ccn_charbuf_as_string(data->excl[i]));
+
 
 }
 
@@ -199,7 +208,27 @@
 		ccn_name_append_str(name,lsdb_str);
 		ccn_name_append_str(name,rnumstr);
 
-		res=ccn_express_interest(nlsr->ccn,name,&(nlsr->in_content),NULL);	
+		/* adding filter */
+		unsigned char bf_all[9] = { 3, 1, 'A', 0, 0, 0, 0, 0, 0xFF };
+		struct ccn_charbuf *templ = NULL;
+		templ = ccn_charbuf_create();
+		ccn_charbuf_append_tt(templ, CCN_DTAG_Interest, CCN_DTAG);
+		ccn_charbuf_append_tt(templ, CCN_DTAG_Name, CCN_DTAG);
+		ccn_charbuf_append_closer(templ); /* </Name> */
+		ccn_charbuf_append_tt(templ, CCN_DTAG_Exclude, CCN_DTAG);
+
+		ccn_charbuf_append_tt(templ, CCN_DTAG_Bloom, CCN_DTAG);
+		ccn_charbuf_append_tt(templ, sizeof(bf_all), CCN_BLOB);
+		ccn_charbuf_append(templ, bf_all, sizeof(bf_all));
+		ccn_charbuf_append_closer(templ);
+
+
+		ccn_charbuf_append_closer(templ); /* </Exclude> */
+		//answer_passive(templ);
+		ccn_charbuf_append_closer(templ); /* </Interest> */
+		
+
+		res=ccn_express_interest(nlsr->ccn,name,&(nlsr->in_content),templ);	
 		if ( res >= 0 )
 			printf("Interest sending Successfull .... \n");	
 		ccn_charbuf_destroy(&name);
diff --git a/nlsr_ndn.h b/nlsr_ndn.h
index 24e1cd1..be2a8f6 100644
--- a/nlsr_ndn.h
+++ b/nlsr_ndn.h
@@ -1,10 +1,20 @@
 #ifndef _NLSR_NDN_H_
 #define _NLSR_NDN_H_
 
+struct upcalldata {
+     int magic; /* 856372 */
+     long *counter;
+     unsigned warn;
+     int flags;
+     int n_excl;
+     struct ccn_charbuf **excl; /* Array of n_excl items */
+};
+
 int send_lsdb_interest(struct ccn_schedule *sched, void *clienth, struct ccn_scheduled_event *ev, int flags);
 
 enum ccn_upcall_res incoming_interest(struct ccn_closure *selfp, enum ccn_upcall_kind kind, struct ccn_upcall_info *info);
 void process_incoming_interest(struct ccn_closure *selfp, struct ccn_upcall_info *info);
+void process_incoming_interest_lsdb(struct ccn_closure *selfp, struct ccn_upcall_info *info);
 
 
 enum ccn_upcall_res incoming_content(struct ccn_closure* selfp, enum ccn_upcall_kind kind, struct ccn_upcall_info* info);