mirror of
				https://git.kernel.org/pub/scm/network/wireless/iwd.git
				synced 2025-10-31 04:57:25 +01:00 
			
		
		
		
	monitor: pass config to nlmon_create
Expand nlmon_create to be useful for both pcaps and monitoring. Doing this also lets iwmon filter pcaps based on --no-ies,rtnl,scan etc flags since they are part of the config.
This commit is contained in:
		
							parent
							
								
									5d8b86ff7c
								
							
						
					
					
						commit
						5ebcc48814
					
				| @ -569,7 +569,8 @@ done: | ||||
| 	return exit_status; | ||||
| } | ||||
| 
 | ||||
| static int process_pcap(struct pcap *pcap, uint16_t id) | ||||
| static int process_pcap(struct pcap *pcap, uint16_t id, | ||||
| 			const struct nlmon_config *config) | ||||
| { | ||||
| 	struct nlmon *nlmon = NULL; | ||||
| 	struct timeval tv; | ||||
| @ -586,7 +587,7 @@ static int process_pcap(struct pcap *pcap, uint16_t id) | ||||
| 		return EXIT_FAILURE; | ||||
| 	} | ||||
| 
 | ||||
| 	nlmon = nlmon_create(id); | ||||
| 	nlmon = nlmon_create(id, config); | ||||
| 
 | ||||
| 	while (pcap_read(pcap, &tv, buf, snaplen, &len, &real_len)) { | ||||
| 		uint16_t arphrd_type; | ||||
| @ -797,7 +798,8 @@ int main(int argc, char *argv[]) | ||||
| 			fprintf(stderr, "Invalid packet format\n"); | ||||
| 			exit_status = EXIT_FAILURE; | ||||
| 		} else | ||||
| 			exit_status = process_pcap(pcap, nl80211_family); | ||||
| 			exit_status = process_pcap(pcap, nl80211_family, | ||||
| 							&config); | ||||
| 
 | ||||
| 		pcap_close(pcap); | ||||
| 
 | ||||
|  | ||||
| @ -7253,7 +7253,7 @@ static void nlmon_message(struct nlmon *nlmon, const struct timeval *tv, | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| struct nlmon *nlmon_create(uint16_t id) | ||||
| struct nlmon *nlmon_create(uint16_t id, const struct nlmon_config *config) | ||||
| { | ||||
| 	struct nlmon *nlmon; | ||||
| 
 | ||||
| @ -7261,6 +7261,10 @@ struct nlmon *nlmon_create(uint16_t id) | ||||
| 
 | ||||
| 	nlmon->id = id; | ||||
| 	nlmon->req_list = l_queue_new(); | ||||
| 	nlmon->nortnl = config->nortnl; | ||||
| 	nlmon->nowiphy = config->nowiphy; | ||||
| 	nlmon->noscan = config->noscan; | ||||
| 	nlmon->noies = config->noies; | ||||
| 
 | ||||
| 	return nlmon; | ||||
| } | ||||
| @ -8449,17 +8453,12 @@ struct nlmon *nlmon_open(const char *ifname, uint16_t id, const char *pathname, | ||||
| 	} else | ||||
| 		pcap = NULL; | ||||
| 
 | ||||
| 	nlmon = l_new(struct nlmon, 1); | ||||
| 
 | ||||
| 	nlmon->id = id; | ||||
| 	nlmon = nlmon_create(id, config); | ||||
| 
 | ||||
| 	nlmon->io = io; | ||||
| 	nlmon->pae_io = pae_io; | ||||
| 	nlmon->req_list = l_queue_new(); | ||||
| 	nlmon->pcap = pcap; | ||||
| 	nlmon->nortnl = config->nortnl; | ||||
| 	nlmon->nowiphy = config->nowiphy; | ||||
| 	nlmon->noscan = config->noscan; | ||||
| 	nlmon->noies = config->noies; | ||||
| 
 | ||||
| 	l_io_set_read_handler(nlmon->io, nlmon_receive, nlmon, NULL); | ||||
| 	l_io_set_read_handler(nlmon->pae_io, pae_receive, nlmon, NULL); | ||||
|  | ||||
| @ -36,7 +36,7 @@ struct nlmon *nlmon_open(const char *ifname, uint16_t id, const char *pathname, | ||||
| 				const struct nlmon_config *config); | ||||
| void nlmon_close(struct nlmon *nlmon); | ||||
| 
 | ||||
| struct nlmon *nlmon_create(uint16_t id); | ||||
| struct nlmon *nlmon_create(uint16_t id, const struct nlmon_config *config); | ||||
| void nlmon_destroy(struct nlmon *nlmon); | ||||
| void nlmon_print_rtnl(struct nlmon *nlmon, const struct timeval *tv, | ||||
| 					const void *data, uint32_t size); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 James Prestwood
						James Prestwood