void mico_mfg_test(mico_Context_t *inContex) { char str[64]; char mac[6]; char *ssid; UNUSED_PARAMETER(inContex); mico_uart_config_t uart_config; volatile ring_buffer_t rx_buffer; volatile uint8_t * rx_data; rx_data = malloc(50); require(rx_data, exit); /* Initialize UART interface */ uart_config.baud_rate = 115200; uart_config.data_width = DATA_WIDTH_8BIT; uart_config.parity = NO_PARITY; uart_config.stop_bits = STOP_BITS_1; uart_config.flow_control = FLOW_CONTROL_DISABLED; uart_config.flags = UART_WAKEUP_DISABLE; ring_buffer_init ( (ring_buffer_t *)&rx_buffer, (uint8_t *)rx_data, 50 ); MicoUartInitialize( MFG_TEST, &uart_config, (ring_buffer_t *)&rx_buffer ); sprintf(str, "Library Version: %s\r\n", system_lib_version()); mf_printf(str); mf_printf("APP Version: "); memset(str, 0, sizeof(str)); system_version(str, sizeof(str)); mf_printf(str); mf_printf("\r\n"); memset(str, 0, sizeof(str)); wlan_driver_version(str, sizeof(str)); mf_printf("Driver: "); mf_printf(str); mf_printf("\r\n"); wlan_get_mac_address(mac); sprintf(str, "MAC: %02X-%02X-%02X-%02X-%02X-%02X\r\n", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); mf_printf(str); mfg_scan(); ssid = ssid_get(); mfg_connect(ssid); exit: mico_thread_sleep(MICO_NEVER_TIMEOUT); }
int process_getmodules(pid_t pid, fcb_process_getmodules callback, void* param) { int major, minor; DWORD i; DWORD ret; DWORD bytes; HANDLE handle; HMODULE modules[1024] = {0}; CHAR filename[MAX_PATH] = {0}; // open process handle = OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ, FALSE, pid); if(!handle) return (int)GetLastError(); // enum process modules system_version(&major, &minor); #if 0 if(major >= 6) ret = EnumProcessModulesEx(handle, modules, sizeof(modules), &bytes, LIST_MODULES_ALL); else #endif ret = EnumProcessModules(handle, modules, sizeof(modules), &bytes); if(!ret) return (int)GetLastError(); // get module filename for(i=0; i<bytes/sizeof(HMODULE); i++) { if(GetModuleFileNameExA(handle, modules[i], filename, sizeof(filename)-1)) callback(param, filename); } // close process CloseHandle(handle); return 0; }
/* mxchip library manufacture test. */ void mxchip_mfg_test(void) { char str[128]; char mac[6]; char *ssid; mico_uart_config_t uart_config; volatile ring_buffer_t rx_buffer; volatile uint8_t * rx_data; mico_debug_enabled = 0; rx_data = malloc(50); require(rx_data, exit); /* Initialize UART interface */ uart_config.baud_rate = 115200; uart_config.data_width = DATA_WIDTH_8BIT; uart_config.parity = NO_PARITY; uart_config.stop_bits = STOP_BITS_1; uart_config.flow_control = FLOW_CONTROL_DISABLED; uart_config.flags = UART_WAKEUP_DISABLE; ring_buffer_init ((ring_buffer_t *)&rx_buffer, (uint8_t *)rx_data, 50); MicoUartInitialize (MFG_TEST, &uart_config, (ring_buffer_t *)&rx_buffer); mf_printf ("==== MXCHIP Manufacture Test ====\r\n"); mf_printf ("Serial Number: "); mf_printf (SERIAL_NUMBER); mf_printf ("\r\n"); mf_printf ("App CRC: "); memset (str, 0, sizeof (str)); app_crc (str, sizeof (str)); mf_printf (str); mf_printf ("\r\n"); mf_printf ("Bootloader Version: "); mf_printf (mico_get_bootloader_ver()); mf_printf ("\r\n"); sprintf (str, "Library Version: %s\r\n", system_lib_version()); mf_printf (str); mf_printf ("APP Version: "); memset (str, 0, sizeof (str)); system_version (str, sizeof (str)); mf_printf (str); mf_printf ("\r\n"); memset (str, 0, sizeof (str)); wlan_driver_version (str, sizeof (str)); mf_printf ("Driver: "); mf_printf (str); mf_printf ("\r\n"); #ifdef MICO_BLUETOOTH_ENABLE /* Initialise MICO SmartBridge */ mico_bt_init( MICO_BT_HCI_MODE, "SmartBridge Device", 0, 0 ); //Client + server connections mico_bt_smartbridge_init( 0 ); mico_bt_dev_read_local_addr( (uint8_t *)mac ); sprintf( str, "Local Bluetooth Address: %02X-%02X-%02X-%02X-%02X-%02X\r\n", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5] ); mf_printf (str); ble_scan(); #endif wlan_get_mac_address (mac); sprintf (str, "MAC: %02X-%02X-%02X-%02X-%02X-%02X\r\n", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); mf_printf(str); mfg_scan(); if (test_for_app==0) { ssid = ssid_get(); mfg_connect (ssid); } exit: mico_thread_sleep(MICO_NEVER_TIMEOUT); }
/* * Copy Headers into the request. * * This is kind of like an easter egg hunt, CGI equivilant headers are * stashed all over in different pblocks. Do the best we can without * missing any... */ static void copyHeaders(pblock *pb, Session *sn, Request *rq, HTTPRequest *req) { int i; const char *hdrval; char *portstr; const char *server; /* * the following line will generate a compiler warning. uncomment if * Netscape ever implements it. request_loadheaders(sn,rq); */ /* * first, blindly copy the request headers */ for (i=0; i < rq->headers->hsize; i++) { struct pb_entry *entry = rq->headers->ht[i]; while (entry != NULL) { pb_param *hdr = entry->param; if (hdr != NULL) req_addHeader(req, hdr->name, hdr->value, 0); entry = entry->next; } } for (i=0; i < rq->vars->hsize; i++) { struct pb_entry *entry = rq->vars->ht[i]; while (entry != NULL) { pb_param *hdr = entry->param; if (hdr != NULL) { /* * BEGIN Support for getting the client's certificate as one liner. */ if (strcmp((const char *)hdr->name, "auth-cert") == 0 && hdr->value != NULL) { const char *val = (const char *)make_cert_one_line((char *)hdr->value); if(val != NULL){ req_addHeader(req, "SSL_CLIENT_CERT", val, 0); //WOLog(WO_DBG, "Adding server variable %s", hdr->name); //WOLog(WO_DBG, "With value %s", hdr->value); } /* * END Support for getting the client's certificate. */ else { req_addHeader(req, hdr->name, hdr->value, 0); //WOLog(WO_DBG, "Adding server variable %s", hdr->name); //WOLog(WO_DBG, "With value %s", hdr->value); } } } entry = entry->next; } } if (req->method == HTTP_POST_METHOD) req_addHeader(req,"REQUEST_METHOD","POST", 0); else if (req->method == HTTP_HEAD_METHOD) req_addHeader(req,"REQUEST_METHOD","HEAD", 0); else req_addHeader(req,"REQUEST_METHOD","GET", 0); /* * collect up the server specific headers */ cpyhdr("ip", sn->client, req, "REMOTE_ADDR"); cpyhdr("query", rq->reqpb, req, "QUERY_STRING"); cpyhdr("protocol", rq->reqpb, req, "SERVER_PROTOCOL"); hdrval = session_maxdns(sn); if (!hdrval) hdrval = session_dns(sn); if (hdrval) req_addHeader(req, "REMOTE_HOST", hdrval, 0); req_addHeader(req, "SERVER_SOFTWARE", system_version(), 0); portstr = (char *)WOMALLOC(32); if (portstr) { util_itoa(server_portnum, portstr); req_addHeader(req, "SERVER_PORT", portstr, STR_FREEVALUE); } /* * Netscape claims to have fixed this in 3, if it causes a problem * comment it out */ server = server_hostname; if (server != NULL) req_addHeader(req, "SERVER_NAME", server, 0); return; }