int http_server_demo(void) { HTTP_INT16 ipType = 4; rtp_net_init(); rtp_threads_init(); rtp_memset(&ExampleServerCtx, 0, sizeof(ExampleServerCtx)); rtp_strcpy(ExampleServerCtx.rootDirectory, DEMO_WWW_ROOT); ExampleServerCtx.chunkedEncoding = 0; ExampleServerCtx.numHelperThreads = DEMO_MAX_HELPERS; ExampleServerCtx.numConnections = DEMO_MAX_CONNECTIONS; rtp_strcpy(ExampleServerCtx.defaultFile,"index.htm"); ExampleServerCtx.defaultIpAddr[0] = DEFAULT_DEMO_IPADDRESS[0]; ExampleServerCtx.defaultIpAddr[1] = DEFAULT_DEMO_IPADDRESS[1]; ExampleServerCtx.defaultIpAddr[2] = DEFAULT_DEMO_IPADDRESS[2]; ExampleServerCtx.defaultIpAddr[3] = DEFAULT_DEMO_IPADDRESS[3]; rtp_sprintf(ExampleServerCtx.defaultIpAddrstr, "%d.%d.%d.%d", ExampleServerCtx.defaultIpAddr[0], ExampleServerCtx.defaultIpAddr[1], ExampleServerCtx.defaultIpAddr[2], ExampleServerCtx.defaultIpAddr[3]); /* Initialize the server */ if (http_server_demo_restart() != 0) return(-1); for (;;) { HTTP_ServerProcessOneRequest (&ExampleServerCtx.httpServer, 1000*60); if (ExampleServerCtx.timeToReload) { ExampleServerCtx.timeToReload = 0; HTTP_ServerDestroy(&ExampleServerCtx.httpServer, &ExampleServerCtx.connectCtxArray); rtp_free(ExampleServerCtx.connectCtxArray); /* Initialize the server */ if (http_server_demo_restart() != 0) return(-1); } } rtp_net_exit(); return (0); }
BOOL RTIP_SOCKETS_Driver::Uninitialize() { NATIVE_PROFILE_PAL_NETWORK(); const int c_exitTimeout = 1; // secs int exitRetries = 3; bool fEnabled = INTERRUPTS_ENABLED_STATE(); if(!fEnabled) ENABLE_INTERRUPTS(); while(exitRetries--) { if(!xn_wait_pkts_output( RTP_TRUE, c_exitTimeout * rtp_get_ticks_p_sec() )) break; while(HAL_CONTINUATION::Dequeue_And_Execute()); } if(!fEnabled) DISABLE_INTERRUPTS(); #if defined(NETWORK_USE_LOOPBACK) // close the loopback driver g_LOOPBACK_Driver.Close(); #endif for(int i=0; i<g_NetworkConfig.NetworkInterfaceCount; i++) { UpdateAdapterConfiguration(i, SOCK_NETWORKCONFIGURATION_UPDATE_DHCP_RELEASE, &g_NetworkConfig.NetworkInterfaces[i]); Network_Interface_Close(i); } rtp_net_exit(); return TRUE; }
int http_client_demo(void) { int idle_count = 0,command; rtp_net_init(); rtp_threads_init(); while ((command = prompt_for_command()) != COMMAND_QUIT) { HTTPManagedClient httpClient; if (http_client_init(&httpClient) < 0) return(-1); if (command == COMMAND_GET) http_client_get(&httpClient,0); else if (command == COMMAND_GETTO_FILE) http_client_get(&httpClient,1); else if (command == COMMAND_POST) http_client_post(&httpClient); else if (command == COMMAND_PUT) http_client_put(&httpClient); } rtp_net_exit(); return (0); }
// ---------------------------------------------------- // ENTRY POINT // ---------------------------------------------------- int smbservermain(void) { char c; int go; int have_printer; byte security_mode; RTP_THREAD new_thread; #ifndef RTSMB_RTIP int spinState = 0; char spinner[4] = {'\\', '-', '/', '|'}; #endif // ------------------------------------------------ #if (INCLUDE_RTIP) rtp_memcpy(my_ip_srv_address, my_ip_address, IP_ALEN); rtp_memcpy(ip_srv_mask_address, ip_mask_address, IP_ALEN); #endif // ------------------------------------------------ rtp_printf("\n\nRun Alt Port Numbers(Y/y) or Well-Known(N/n)"); while (!kbhit ()) { } c = getch (); if (c == 'Y' || c == 'y') { rtsmb_init_port_alt (); } if (c == 'N' || c == 'n') { rtsmb_init_port_well_know (); } // ------------------------------------------------ if (!rtp_file_mkdir (SHARE_PATH)) { rtp_printf("WARNING: mkdir of SHARE_PATH failed %s\n", SHARE_PATH, 0); } rtp_printf("\nsmbservermain - enter\n"); go = 1; /* Start ertfs on windows*/ //pc_ertfs_init (); /* initialize server */ rtsmb_srv_init (my_ip_srv_address, ip_srv_mask_address, NETWORK_NAME , NETWORK_GROUP); rtp_printf ("Initialized rtsmb\n"); #ifdef USE_CONFIG_FILE rtsmb_srv_read_config ("smb_config.txt"); #else rtp_printf("Note: The demo does not actually print data, it just captures print data to a temporary file.\n"); { char printerName[32]; char driverName[32]; char tempPath[32]; char prnFile[32]; rtp_strcpy(printerName, "SmbPrinter"); rtp_strcpy(driverName, "HP LaserJet 1100"); rtp_strcpy(tempPath, TEMP_PATH); rtp_strcpy(prnFile, "SmbPrintData.prn"); have_printer = in_printer(printerName,driverName, tempPath, prnFile); if (have_printer) { rtsmb_srv_share_add_printer (printerName, driverName, 1, (PSMBFILEAPI)0, tempPath, 0, (PFCHAR)0, prnFile); } } security_mode = in_loginmode(); //rtsmb_srv_share_add_tree (SHARE_NAME, DESCRIPTION, NULL, SHARE_PATH, SHARE_FLAGS_8_3, SECURITY_READWRITE, NULL); //rtsmb_srv_share_add_tree (SHARE_NAME, DESCRIPTION, (PSMBFILEAPI)0, SHARE_PATH, SHARE_FLAGS_CREATE, SECURITY_READWRITE, (PFCHAR)0); rtsmb_srv_share_add_ipc ((PFCHAR)0); rtsmb_srv_set_mode (security_mode); /* AUTH_USER_MODE or AUTH_SHARE_MODE */ rtsmb_srv_register_group ("rw_access"); rtsmb_srv_register_group ("rd_access"); { char shareName[32]; char sharePath[32]; char shareDesc[32]; char sharePass[32]; char secCode[32]; rtp_strcpy(shareName, SHARE_NAME); rtp_strcpy(shareDesc, "Rtsmbshare"); rtp_strcpy(sharePath, SHARE_PATH); rtp_strcpy(sharePass, ""); rtp_strcpy(secCode,"2"); if (in_share(security_mode, shareName, sharePath, shareDesc, sharePass, secCode)) { byte security_mode; /* Defult is 2 SECURITY_READWRITE */ char *psharePass; if (sharePass[0]) psharePass = &sharePass[0]; else psharePass = 0; security_mode = (byte)(secCode[0] -'0'); rtsmb_srv_share_add_tree (shareName, shareDesc, (PSMBFILEAPI)0, sharePath, SHARE_FLAGS_CREATE, security_mode, (PFCHAR)psharePass); rtsmb_srv_set_group_permissions ("rw_access", shareName, SECURITY_READWRITE); rtsmb_srv_set_group_permissions ("rd_access", shareName, SECURITY_READ); } } // rtsmb_srv_set_group_permissions ("rw_access", SHARE_NAME, SECURITY_READWRITE); rtsmb_srv_set_group_permissions ("rw_access", "IPC$", SECURITY_READWRITE); rtsmb_srv_set_group_permissions ("rd_access", "IPC$", SECURITY_READWRITE); //rtsmb_srv_register_group ("ro_access"); //rtsmb_srv_set_group_permissions ("ro_access", SHARE_NAME, SECURITY_READ); //rtsmb_srv_set_group_permissions ("ro_access", "IPC$", SECURITY_READWRITE); //rtsmb_srv_register_group ("wo_access"); //rtsmb_srv_set_group_permissions ("wo_access", SHARE_NAME, SECURITY_WRITE); //rtsmb_srv_set_group_permissions ("wo_access", "IPC$", SECURITY_READWRITE); /* No access */ //rtsmb_srv_register_group ("nonebs"); //rtsmb_srv_set_group_permissions ("nonebs", SHARE_NAME, SECURITY_NONE); //rtsmb_srv_set_group_permissions ("nonebs", "IPC$", SECURITY_NONE); //rtsmb_srv_register_user (SMB_GUESTNAME, (PFCHAR)0); //rtsmb_srv_register_user (SMB_GUESTNAME, "ebs"); //rtsmb_srv_add_user_to_group (SMB_GUESTNAME, "rw_access"); if (security_mode == AUTH_USER_MODE) { char userName[32]; char userPass[32]; char userPerm[32]; if (in_guestaccount()) rtsmb_srv_register_user (SMB_GUESTNAME, (PFCHAR)0); rtp_strcpy(userName, "user"); rtp_strcpy(userPass, "password"); rtp_printf("Add users, enter a blank user to stop : "); while (in_user(userName, userPass, userPerm)) { rtsmb_srv_register_user (userName, userPass); if (rtp_strcmp(userPerm, "rw") == 0) {rtsmb_srv_add_user_to_group (userName, "rw_access");break;} else if (rtp_strcmp(userPerm, "r") == 0) {rtsmb_srv_add_user_to_group (userName, "rd_access");break;} } } #endif //USE_CONFIG_FILE #if (1) if (rtp_thread_spawn ( &new_thread, (RTP_ENTRY_POINT_FN) rtsmb_main, (const char *) "RTIP_SMB_SRV", STACKSIZE_HUGE_INDEX, TASKPRIO_NORMAL_INDEX, (void *) 0 ) < 0) { rtp_term_puts("spawn of SMB task failed"); return(-1); } rtp_term_puts("spawn of SMB task WORKED"); while (1) { #ifndef RTSMB_RTIP spinState += 1; spinState = spinState%4; rtp_printf("\b%c",spinner[spinState]); #endif rtsmb_srv_cycle (1000); } #else //Main Loop while(go) { rtsmb_main (); if(rtp_term_kbhit()) { // switch (getch()) switch (rtp_term_getch()) { case 'q': go = 0; break; default: break; } } } //Shutdown rtp_printf("main: shutting down\n"); rtsmb_srv_shutdown (); rtp_net_exit (); #endif return(0); }//main
/*---------------------------------------------------------------------------*/ int main (int* argc, char* agrv[]) { int result; int done = 0; char ch; UPnPRuntime rt; UPnPControlPoint cp; rtp_net_init(); rtp_threads_init(); result = UPnP_RuntimeInit ( &rt, 0, // serverAddr: IP_ANY_ADDR 0, // serverPort: any port RTP_NET_TYPE_IPV4,// ip version: ipv4 0, // web server root dir 10, // maxConnections 5 // maxHelperThreads ); if (result >= 0) { /* Initialize the control point */ if (UPnP_ControlPointInit(&cp, &rt, controlPointCallback, 0) >= 0) { while(!done) { printf("\n********************************\n"); printf(" Media Controller Demo Menu\n"); printf("********************************\n\n"); printf("Media Server - \n"); printf("--> S to View Media Server\n"); printf("--> B to Browse Root Directory\n"); printf("--> f to search a mp3 file on server\n"); printf("\nMedia Renderer - \n"); printf("--> R to View Media Renderer\n"); printf("\n--> Q to Exit Demo\n"); ch = getch(); ch = tolower(ch); switch (ch) { case 's': openMediaDevice (&rt, &cp, MEDIA_SERVER_UDN); break; case 'b': //Browse Mode browseMediaServer (&rt, &cp); break; case 'f': searchFileOnServer (&rt, &cp); break; case 'r': openMediaDevice (&rt, &cp, MEDIA_RENDERER_UDN); break; case 'q': done = 1; break; default : break; } } UPnP_ControlPointDestroy (&cp, 0); } UPnP_RuntimeDestroy(&rt); } rtp_threads_shutdown(); rtp_net_exit(); return(0); }
int http_server_demo(void) { HTTP_INT16 ipType = DEMO_IPVERSION; int idle_count = 0; rtp_net_init(); rtp_threads_init(); /* Set initial default values */ rtp_memset(&ExampleServerCtx, 0, sizeof(ExampleServerCtx)); rtp_strcpy(ExampleServerCtx.rootDirectory, DEMO_WWW_ROOT); rtp_strcpy(ExampleServerCtx.defaultFile,DEMO_WWW_FILE); ExampleServerCtx.chunkedEncoding = 0; ExampleServerCtx.numHelperThreads = DEMO_MAX_HELPERS; ExampleServerCtx.numConnections = DEMO_MAX_CONNECTIONS; /* If these are {0,0,0,0} use the default interface otherwise we use the configured address */ ExampleServerCtx.defaultIpAddr[0] = DEFAULT_DEMO_IPADDRESS[0]; ExampleServerCtx.defaultIpAddr[1] = DEFAULT_DEMO_IPADDRESS[1]; ExampleServerCtx.defaultIpAddr[2] = DEFAULT_DEMO_IPADDRESS[2]; ExampleServerCtx.defaultIpAddr[3] = DEFAULT_DEMO_IPADDRESS[3]; rtp_printf("Using IP address %d.%d.%d.%d (all zeroes means use default interface) \n", ExampleServerCtx.defaultIpAddr[0], ExampleServerCtx.defaultIpAddr[1], ExampleServerCtx.defaultIpAddr[2], ExampleServerCtx.defaultIpAddr[3]); /* Initialize the server */ if (http_server_demo_restart() != 0) return(-1); /* Now loop continuously process one request per loop. */ for (;;) { if (HTTP_ServerProcessOneRequest (&ExampleServerCtx.httpServer, 1000*60) < 0) { /* Print an idle counter every minute the server is not accessed */ idle_count += 1; if (idle_count == 1) rtp_printf("\n Idle %d minutes ", idle_count); else rtp_printf(" \r Idle %d minutes", idle_count); } else idle_count = 0; if (ExampleServerCtx.ModuleRequestingReload) { ExampleServerCtx.ModuleRequestingReload = 0; HTTP_ServerDestroy(&ExampleServerCtx.httpServer, &ExampleServerCtx.connectCtxArray); rtp_free(ExampleServerCtx.connectCtxArray); ExampleServerCtx.connectCtxArray = 0; /* Initialize the server */ if (http_server_demo_restart() != 0) { rtp_net_exit(); return(-1); } } } rtp_net_exit(); return (0); }