| 
									
										
										
										
											2016-04-29 03:55:42 +00:00
										 |  |  | #include <qse/si/nwif.h>
 | 
					
						
							| 
									
										
										
										
											2012-11-16 16:46:49 +00:00
										 |  |  | #include <qse/cmn/mbwc.h>
 | 
					
						
							|  |  |  | #include <qse/cmn/main.h>
 | 
					
						
							|  |  |  | #include <qse/cmn/mem.h>
 | 
					
						
							|  |  |  | #include <qse/cmn/str.h>
 | 
					
						
							| 
									
										
										
										
											2016-04-29 03:55:42 +00:00
										 |  |  | #include <qse/si/sio.h>
 | 
					
						
							| 
									
										
										
										
											2014-08-30 05:40:57 +00:00
										 |  |  | #include <qse/cmn/fmt.h>
 | 
					
						
							| 
									
										
										
										
											2012-11-16 16:46:49 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | #include <locale.h>
 | 
					
						
							|  |  |  | #if defined(_WIN32)
 | 
					
						
							|  |  |  | #	include <windows.h>
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void print_nwifcfg (qse_nwifcfg_t* ptr) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	qse_char_t tmp[128]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	qse_printf (QSE_T("[%s] ifindex=[%u] "), ptr->name, ptr->index); | 
					
						
							|  |  |  | 		 | 
					
						
							|  |  |  | 	qse_nwadtostr (&ptr->addr, tmp, QSE_COUNTOF(tmp), QSE_NWADTOSTR_ALL); | 
					
						
							|  |  |  | 	qse_printf (QSE_T("addr=[%s] "), tmp); | 
					
						
							|  |  |  | 	qse_nwadtostr (&ptr->mask, tmp, QSE_COUNTOF(tmp), QSE_NWADTOSTR_ALL); | 
					
						
							|  |  |  | 	qse_printf (QSE_T("mask=[%s] "), tmp); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	if (ptr->flags & QSE_NWIFCFG_BCAST) | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		qse_nwadtostr (&ptr->bcast, tmp, QSE_COUNTOF(tmp), QSE_NWADTOSTR_ALL); | 
					
						
							|  |  |  | 		qse_printf (QSE_T("bcast=[%s] "), tmp); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	qse_printf (QSE_T("mtu=[%d] "), (int)ptr->mtu); | 
					
						
							|  |  |  | 	qse_printf (QSE_T("\n")); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static int test_main (int argc, qse_char_t* argv[]) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	qse_char_t name[100]; | 
					
						
							|  |  |  | 	unsigned int index; | 
					
						
							| 
									
										
										
										
											2012-11-18 15:19:51 +00:00
										 |  |  | 	unsigned int i; | 
					
						
							| 
									
										
										
										
											2012-11-16 16:46:49 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	for (i = 1; ;i++) | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		if (qse_nwifindextostr (i, name, QSE_COUNTOF(name)) <= -1)  | 
					
						
							|  |  |  | 		{ | 
					
						
							|  |  |  | 			qse_printf (QSE_T("ifindex %d failed\n"), i); | 
					
						
							|  |  |  | 			break; | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		 | 
					
						
							| 
									
										
										
										
											2012-11-18 15:19:51 +00:00
										 |  |  | 		if (qse_nwifstrtoindex (name, &index) <= -1) | 
					
						
							| 
									
										
										
										
											2012-11-16 16:46:49 +00:00
										 |  |  | 		{ | 
					
						
							|  |  |  | 			qse_printf (QSE_T("ifname %s failed\n"), name); | 
					
						
							|  |  |  | 			break; | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		 | 
					
						
							|  |  |  | 		if (i != index) | 
					
						
							|  |  |  | 		{ | 
					
						
							| 
									
										
										
										
											2012-11-18 15:19:51 +00:00
										 |  |  | 			qse_printf (QSE_T("index mismatch %u %u %s\n"), i, index, name); | 
					
						
							| 
									
										
										
										
											2012-11-16 16:46:49 +00:00
										 |  |  | 			break; | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-18 15:19:51 +00:00
										 |  |  | 		qse_printf (QSE_T("OK %u %s\n"), index, name); | 
					
						
							| 
									
										
										
										
											2012-11-16 16:46:49 +00:00
										 |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	qse_printf (QSE_T("================================================\n")); | 
					
						
							|  |  |  | 	return 0; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | int qse_main (int argc, qse_achar_t* argv[]) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2014-08-30 05:40:57 +00:00
										 |  |  | 	int ret; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-16 16:46:49 +00:00
										 |  |  | #if defined(_WIN32)
 | 
					
						
							|  |  |  | 	char locale[100]; | 
					
						
							|  |  |  | 	UINT codepage = GetConsoleOutputCP();	 | 
					
						
							|  |  |  | 	if (codepage == CP_UTF8) | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		/*SetConsoleOutputCP (CP_UTF8);*/ | 
					
						
							|  |  |  | 		qse_setdflcmgrbyid (QSE_CMGR_UTF8); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	else | 
					
						
							|  |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2014-08-30 05:40:57 +00:00
										 |  |  | 		qse_fmtuintmaxtombs (locale, QSE_COUNTOF(locale), | 
					
						
							|  |  |  | 			codepage, 10, -1, QSE_MT('\0'), QSE_MT(".")); | 
					
						
							|  |  |  | 		setlocale (LC_ALL, locale); | 
					
						
							| 
									
										
										
										
											2015-04-27 08:37:57 +00:00
										 |  |  | 		/*qse_setdflcmgrbyid (QSE_CMGR_SLMB);*/ | 
					
						
							| 
									
										
										
										
											2012-11-16 16:46:49 +00:00
										 |  |  | 	} | 
					
						
							|  |  |  | #else
 | 
					
						
							| 
									
										
										
										
											2014-08-30 05:40:57 +00:00
										 |  |  | 	setlocale (LC_ALL, ""); | 
					
						
							| 
									
										
										
										
											2015-04-27 08:37:57 +00:00
										 |  |  | 	/*qse_setdflcmgrbyid (QSE_CMGR_SLMB);*/ | 
					
						
							| 
									
										
										
										
											2012-11-16 16:46:49 +00:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2017-09-16 08:54:25 +00:00
										 |  |  | 	qse_open_stdsios (); | 
					
						
							| 
									
										
										
										
											2018-09-13 03:16:23 +00:00
										 |  |  | 	ret =  qse_run_main (argc, argv, test_main); | 
					
						
							| 
									
										
										
										
											2017-09-16 08:54:25 +00:00
										 |  |  | 	qse_close_stdsios (); | 
					
						
							| 
									
										
										
										
											2014-08-30 05:40:57 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	return ret; | 
					
						
							| 
									
										
										
										
											2012-11-16 16:46:49 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 |