Beispiel #1
0
/*------------------------------------------------------------------------------------------------------------*/
void cgi_reset( void * pStruct )
{
	struct HTTP_REQUEST * http_request;
	http_request = (struct HTTP_REQUEST *) pStruct;

	cgi_PrintHttpheaderStart();

	if ( http_request->argc == 0 )
	{
		printf_P( PSTR(	"<form action=\"reset.cgi\" method=\"get\" accept-charset=\"ISO-8859-1\">"
						"<p><input type=\"submit\" name=\"reset\" value=\"reset\"></p></form>" ));
		cgi_PrintHttpheaderEnd();
	}
	else if( PharseCheckName_P( http_request, PSTR("reset") ) )
	{	
		if ( !strcmp_P( http_request->argvalue[ PharseGetValue_P( http_request, PSTR("reset") ) ] , PSTR("reset") ) )
		{
			printf_P( PSTR("Reset"));
			cgi_PrintHttpheaderEnd();
			STDOUT_Flush();
			CloseTCPSocket( http_request->HTTP_SOCKET );
			softreset();
			while(1);
		}
	}
}
Beispiel #2
0
 /**
 * \brief Das CGI-Interface. Erzeugt einen netten Graphen.
 * \param 	PStruct		Structur vom HTTP-Server mit allen Datem vom Request,.
 * \return  void
 */
void temp_logger_cgi( void * pStruct )
{
	char Sensor, ChartYName[32], ChartHeadline[32], ChartUnit[32];

	sprintf_P( ChartUnit, PSTR("&deg;C") );
	sprintf_P( ChartYName, PSTR("Temperatur (%s)"), ChartUnit );
	sprintf_P( ChartHeadline, PSTR("Temperaturverlauf") );
	
	struct HTTP_REQUEST * http_request;
	http_request = (struct HTTP_REQUEST *) pStruct;

	struct TIME nowtime;

	CLOCK_GetTime ( &nowtime );

	printf_P( HIGHCHART_part_1() , ChartHeadline, nowtime.YY, nowtime.MM-1, nowtime.DD, ChartYName, ChartUnit );

	if( PharseCheckName_P( http_request, Sensor_P ) )
	{
		Sensor = atoi( http_request->argvalue[ PharseGetValue_P ( http_request, Sensor_P ) ] );
		temp_json_print( Sensor );
	}
	else
	{
		for ( Sensor = 0 ; Sensor < TEMP_MAX_SENSORS ; Sensor++ )
			temp_json_print( Sensor );
	}
	
	printf_P( HIGHCHART_part_2() );
}
Beispiel #3
0
/**
 * \brief Das CGI-Interface. Gibt ein Json für einen Tag aus.
 * \param 	PStruct		Structur vom HTTP-Server mit allen Datem vom Request,.
 * \return  void
 */
void temp_json_cgi( void * pStruct )
{
	char Sensor=0;
	
	struct HTTP_REQUEST * http_request;
	http_request = (struct HTTP_REQUEST *) pStruct;

	if( PharseCheckName_P( http_request, Sensor_P ) )
	{
		Sensor = (char) atoi( http_request->argvalue[ PharseGetValue_P ( http_request, Sensor_P ) ] );
	}

	temp_json_print( Sensor );
}
Beispiel #4
0
void cgi_ntp( void * pStruct )
{
	struct HTTP_REQUEST * http_request;
	http_request = (struct HTTP_REQUEST *) pStruct;
	
	char NTPSERVER[32];
	char UTCZONE[4];

	cgi_PrintHttpheaderStart();

	// Wenn keine Variablen übergeben wurden, dann Config ausgeben,
	// wenn Variablen übergeben wurden Config ändern
	if ( http_request->argc == 0 )
	{
		readConfig_P( NTP_P, NTPSERVER );
		printf_P( PSTR(	"<form action=\"ntp.cgi\">\r"
					   	"<table border=\"0\" cellpadding=\"5\" cellspacing=\"0\">"
  						"<tr>"
					   	"<td align=\"right\">SNTP aktivieren</td>"
					    "<td><input type=\"checkbox\" name=\"NTP\" value=\"on\" " )); 
		if ( !strcmp_P( NTPSERVER, PSTR("on") ) )
						printf_P( PSTR("checked"));
		printf_P( PSTR(	"></td>"
  						"</tr>") );
		
		if( checkConfigName_P( NTP_P ) != -1 )
			readConfig_P ( NTPSERVER_P, NTPSERVER );
  		else
			strcpy_P ( NTPSERVER, PSTR("time.fu-berlin.de"));
			
		if( checkConfigName_P( UTCZONE_P ) != -1 )
			readConfig_P ( UTCZONE_P, UTCZONE );
  		else
			strcpy_P ( UTCZONE, PSTR("0"));

		printf_P( PSTR(	"<tr>"
					   	"<td align=\"right\">SNTP-Server</td>"
  						"<td><input name=\"NTPSERVER\" type=\"text\" size=\"25\" value=\"%s\" maxlength=\"25\"></td>"
  						"</tr>"
						"<tr>"
					   	"<td align=\"right\">Zeitzone</td>"
						"<td><input name=\"UTCZONE\" type=\"text\" size=\"3\" value=\"%s\" maxlength=\"3\"></td>"
  						"</tr>"
 						"<tr>"
   						"<td></td><td><input type=\"submit\" value=\" Einstellung &Uuml;bernehmen \"></td>"
  						"</tr>"
					   	"</table>"
						"</form>" ) , NTPSERVER, UTCZONE );
	}
	else
	{
		if ( PharseCheckName_P( http_request, NTP_P ) )
			changeConfig_P( NTP_P, http_request->argvalue[ PharseGetValue_P ( http_request, NTP_P ) ] );
		else
			changeConfig_P( NTP_P, "off" );	
		if ( PharseCheckName_P( http_request, NTPSERVER_P ) )
			changeConfig_P( NTPSERVER_P, http_request->argvalue[ PharseGetValue_P ( http_request, NTPSERVER_P ) ] );
		if ( PharseCheckName_P( http_request, UTCZONE_P ) )
			changeConfig_P( UTCZONE_P, http_request->argvalue[ PharseGetValue_P ( http_request, UTCZONE_P ) ] );
		
		printf_P( PSTR("Einstellungen uebernommen!\r\n"));

	}

	cgi_PrintHttpheaderEnd();
}
Beispiel #5
0
void cgi_cron( void * pStruct )
{
	int i;
	char string[32];
	int HH, MM;
	
	
	struct HTTP_REQUEST * http_request;
	http_request = (struct HTTP_REQUEST *) pStruct;
		
	cgi_PrintHttpheaderStart();

	if ( http_request->argc == 0 )
	{
		printf_P( PSTR(	"<table border=\"0\" cellpadding=\"5\" cellspacing=\"0\">" ));
		for( i = 0 ; i < MAX_CRON ; i++ )
		{
			if ( CRON_getentry( string, i) == 1 )
			{
				printf_P( PSTR(	"<tr>"
					   			"<td align=\"left\">%s</td>"
					   			"<td align=\"left\">"
								"<a href=\"cron.cgi?del=%d\" style=\"text-decoration:none\" title=\"Del\"><input type=\"button\" value=\"del\" class=\"actionBtn\"></a>"
								"</td>"
  								"</tr>"), string, i );
			}
		}

		printf_P( PSTR(	"<tr>"
			   			"<td align=\"left\">"
						"<a href=\"cron.cgi?addnew\" style=\"text-decoration:none\" title=\"Add\"><input type=\"button\" value=\"add new cron\" class=\"actionBtn\"></a>"
						"</td>"
						"</tr>"
						"</table>\r") );

	}
	else
	{
		if ( PharseCheckName_P( http_request, PSTR("addnew") ) )
		{
			printf_P( PSTR(	"<form action=\"cron.cgi\">"
					   		"<table border=\"0\" cellpadding=\"5\" cellspacing=\"0\">"
							"<tr>"
						   	"<td align=\"right\">Stunde</td><td><input name=\"HH\" type=\"text\" size=\"3\" value=\"0\"maxlength=\"3\"></td>"
  							"</tr>"
							"<tr>"
						   	"<td align=\"right\">Minute</td>"
							"<td><input name=\"MM\" type=\"text\" size=\"3\" value=\"0\" maxlength=\"3\"></td>"
  							"</tr>"
							"<tr>"
						   	"<td align=\"right\">Command</td>"
							"<td><input name=\"CMD\" type=\"text\" size=\"30\" maxlength=\"30\"></td>"
  							"</tr>"
 							"<tr>"
   							"<td></td><td><input type=\"submit\" value=\" Eintrag sichern \"></td>"
  							"</tr>"
						   	"</table>"
							"</form>\r" ) );
		}
		else if ( PharseCheckName_P( http_request, PSTR("CMD") ) )
		{
			HH = atoi( http_request->argvalue[ PharseGetValue_P ( http_request, PSTR("HH") ) ] );
			MM = atoi( http_request->argvalue[ PharseGetValue_P ( http_request, PSTR("MM") ) ] );
			sprintf_P( string, PSTR("%d %d \"%s\""), HH, MM, http_request->argvalue[ PharseGetValue_P ( http_request, PSTR("CMD") ) ] );
			CRON_addentry( string );
			CRON_reloadcrontable();
			printf_P( PSTR("Einstellungen uebernommen!\r\n"));

		}
		else if ( PharseCheckName_P( http_request, PSTR("del") ) )
		{
			CRON_delentry( atoi( http_request->argvalue[ PharseGetValue_P ( http_request, PSTR("del") ) ] ) );
			CRON_reloadcrontable();
		}
	}

	cgi_PrintHttpheaderEnd();
}
Beispiel #6
0
/*------------------------------------------------------------------------------------------------------------*/
void cgi_twitter( void * pStruct )
{
	struct HTTP_REQUEST * http_request;
	http_request = (struct HTTP_REQUEST *) pStruct;

	printf_P( PSTR(		"<HTML>\r\n"
						"<HEAD>\r\n"
						"<TITLE>Twitter</TITLE>\r\n"
						"</HEAD>\r\n"
						" <BODY>\r\n"));

	// Wenn keine Variablen übergeben wurden, dann Config ausgeben,
	// wenn Variablen übergeben wurden Config ändern
	if ( http_request->argc == 0 )
	{
		printf_P( PSTR(	"<form action=\"twitter.cgi\">\r"
	               		"<script type=\"text/javascript\">\r\n"
		               	"function textCounter(field, countfield, maxlimit)\r\n"
						"{\r\n"
						"	if (field.value.length > maxlimit)\r\n"
						"		field.value = field.value.substring(0, maxlimit);\r\n"
						"	else\r\n"
						"		countfield.value = maxlimit - field.value.length;\r\n"
						"}\r\n"
		               	"</script>\r\n"
		               	" <table>\r"
		               	"  <tr>"
		               	"   <td valign=\"top\">Tweety-Text:</td>"
						"   <td><textarea cols=20 rows=6 style=\"WIDTH: 250px\" name=\"TWITTERMSG\" wrap=physical maxLength=\"140\" onChange=\"textCounter(this.form.TWITTERMSG,this.form.remLen,140);\" onFocus=\"textCounter(this.form.TWITTERMSG,this.form.remLen,140);\" onKeyDown=\"textCounter(this.form.TWITTERMSG,this.form.remLen,140);\" onKeyUp=\"textCounter(this.form.TWITTERMSG,this.form.remLen,140);\"></textarea>"
						"   </td>" 
						"  </tr>" 
						"  <tr>" 
						"   <td>Sie haben:</td>" 
						"   <td valign=absmiddle><input readonly type=text name=\"remLen\" size=3 maxlength=3 value=140> Zeichen &uuml;brig</td>" 
						"  </tr>" 
 						"  <tr>\r"
   						"   <td colspan=\"2\" align=\"right\"><input type=\"submit\" value=\"Tweety senden\"><br>"
  						"  </tr>\r" 
					   	" </table>\r"
		                "<a href=\"http://www.twitter.com/openmcp_foo\" target=\"_blank\">OpenMCP_foo on Twitter.</a><br>"
		               	"<a href=\"twitter.cgi?config\">Richtigen Account eingestellen.	</a>"
						"</form>" ) );
	}
	else
	{
		if ( PharseCheckName_P( http_request, PSTR("config") ) )
		{
			printf_P( PSTR( "<form action=\"twitter.cgi\" method=\"get\" accept-charset=\"ISO-8859-1\">"
					    	"<p>Accountdaten ( user:pw ) :<input name=\"userpw\" size=\"50\"></p>"
					    	"<p><input type=\"submit\" value=\"Account speichern\"></p></form>" ));
		}
		else if ( PharseCheckName_P( http_request, PSTR("userpw") ) )
		{
			changeConfig_P( PSTR("&TWITTERPW"), http_request->argvalue[ PharseGetValue_P ( http_request, PSTR("userpw") ) ] );
			printf_P( PSTR("Einstellungen uebernommen!\r\n"));
		}
		else if ( PharseCheckName_P( http_request, PSTR("TWITTERMSG") ) )
		{
			char userpw[32];
			if ( readConfig_P( PSTR("&TWITTERPW"), userpw ) == -1 )
				printf_P( PSTR("Keine Accountdaten hinterlegt!"));
			else
			{
				TWITTER_sendtweet( http_request->argvalue[ PharseGetValue_P ( http_request, PSTR("TWITTERMSG") ) ] , userpw );
				printf_P( PSTR("Tweet wurde versucht zu versenden!\r\n"));
			}
		}
	}
	
	printf_P( PSTR( " </BODY>\r\n"
					"</HTML>\r\n"
					"\r\n"));

}
Beispiel #7
0
/*------------------------------------------------------------------------------------------------------------*/
void cgi_network( void * pStruct )
{
	struct HTTP_REQUEST * http_request;
	http_request = (struct HTTP_REQUEST *) pStruct;
	
	unsigned char IP[32];

/*	printf_P( PSTR(		"<HTML>\r\n"
						"<HEAD>\r\n"
						"<TITLE>network</TITLE>\r\n"
						"</HEAD>\r\n"
						" <BODY>\r\n"));
*/
	cgi_PrintHttpheaderStart();

	if ( http_request->argc == 0 )
	{
					   
		printf_P( PSTR( "<pre>\r\n") );
#ifdef TELNETSERVER
		TELNET_runcmdextern_P( PSTR("ifconfig") );
		TELNET_runcmdextern_P( PSTR("stats") );
#endif		
		printf_P( PSTR( "</pre>\r\n") );
	}
	else if( PharseCheckName_P( http_request, PSTR("config") ) )
	{	
		
		printf_P( PSTR(	"<form action=\"network.cgi\">\r"
					   	" <table border=\"0\" cellpadding=\"5\" cellspacing=\"0\">" ));
#ifdef DHCP
		readConfig_P( PSTR("DHCP"), IP );
  		printf_P( PSTR( "  <tr>\r"
					   	"   <td align=\"right\">DHCP aktivieren</td>"
					    "   <td><input type=\"checkbox\" name=\"DHCP\" value=\"on\" " )); 
		if ( !strcmp_P( IP, PSTR("on") ) )
						printf_P( PSTR("checked"));
		printf_P( PSTR(	"></td>\r"
  						"  </tr>\r") );
#endif
		if ( readConfig_P ( PSTR("IP"), IP ) != 1 )
			iptostr ( myIP, IP );
  		printf_P( PSTR(	"  <tr>\r"
					   	"   <td align=\"right\">IP-Adresse</td>"
  						"   <td><input name=\"IP\" type=\"text\" size=\"15\" value=\"%s\" maxlength=\"15\"></td>"
  						"  </tr>\r") , IP );
		if ( readConfig_P ( PSTR("MASK"), IP ) != 1 )
			iptostr ( Netmask, IP );		
  		printf_P( PSTR(	"  <tr>\r"
					   	"   <td align=\"right\">Netzwerkmaske</td>"
  						"   <td><input name=\"MASK\" type=\"text\" size=\"15\" value=\"%s\" maxlength=\"15\"></td>"
  						"  </tr>\r") , IP );
		if ( readConfig_P ( PSTR("GATE"), IP ) != 1 )
			iptostr ( Gateway, IP );		
  		printf_P( PSTR(	"  <tr>\r"
					   	"   <td align=\"right\">Gateway</td>"
						"   <td><input name=\"GATE\" type=\"text\" size=\"15\" value=\"%s\" maxlength=\"15\"></td>"
  						"  </tr>\r") , IP );
#ifdef DNS
		if ( readConfig_P ( PSTR("DNS"), IP ) != 1 )
			iptostr ( DNSserver, IP );		
		printf_P( PSTR(	"  <tr>\r"
					   	"   <td align=\"right\">DNS-Server</td>"
						"   <td><input name=\"DNS\" type=\"text\" size=\"15\" value=\"%s\" maxlength=\"15\"></td>"
  						"  </tr>\r" ), IP );
#endif
		readConfig_P( PSTR("ETH_FLDX"), IP );
  		printf_P( PSTR( "  <tr>\r"
					   	"   <td align=\"right\">Fullduplex aktivieren</td>"
					    "   <td><input type=\"checkbox\" name=\"ETH_FLDX\" value=\"on\" " )); 
		if ( !strcmp_P( IP, PSTR("on") ) )
						printf_P( PSTR("checked"));
		printf_P( PSTR(	"></td>\r"
  						"  </tr>\r") );

		if ( readConfig_P ( PSTR("MAC"), IP ) != 1 )
			mactostr( mymac, IP );
  		printf_P( PSTR(	"  <tr>\r"
					   	"   <td align=\"right\">Hardware-MAC</td>"
						"   <td><input name=\"MAC\" type=\"text\" size=\"17\" value=\"%s\" maxlength=\"17\"></td>"
  						"  </tr>\r"
		  				"  <tr>\r"
   						"   <td></td><td><input type=\"submit\" value=\" Einstellung &Uuml;bernehmen \"></td>"
  						"  </tr>\r"
					   	" </table>\r"
						"</form>") , IP );
	}
	else
	{
#ifdef DHCP
		if ( PharseCheckName_P( http_request, PSTR("DHCP") ) )
			changeConfig_P( PSTR("DHCP"), http_request->argvalue[ PharseGetValue_P ( http_request, PSTR("DHCP") ) ] );
		else
			changeConfig_P( PSTR("DHCP"), "off" );
#endif
		if ( PharseCheckName_P( http_request, PSTR("IP") ) )
			changeConfig_P( PSTR("IP"), http_request->argvalue[ PharseGetValue_P ( http_request, PSTR("IP") ) ] );
		if ( PharseCheckName_P( http_request, PSTR("MASK") ) )
			changeConfig_P( PSTR("MASK"), http_request->argvalue[ PharseGetValue_P ( http_request, PSTR("MASK") ) ] );
		if ( PharseCheckName_P( http_request, PSTR("GATE") ) )
			changeConfig_P( PSTR("GATE"), http_request->argvalue[ PharseGetValue_P ( http_request, PSTR("GATE") ) ] );
		#ifdef DNS
		if ( PharseCheckName_P( http_request, PSTR("DNS") ) )
			changeConfig_P( PSTR("DNS"), http_request->argvalue[ PharseGetValue_P ( http_request, PSTR("DNS") ) ] );
		#endif
		if ( PharseCheckName_P( http_request, PSTR("MAC") ) )
			changeConfig_P( PSTR("MAC"), http_request->argvalue[ PharseGetValue_P ( http_request, PSTR("MAC") ) ] );
		if ( PharseCheckName_P( http_request, PSTR("ETH_FLDX") ) )
			changeConfig_P( PSTR("ETH_FLDX"), http_request->argvalue[ PharseGetValue_P ( http_request, PSTR("ETH_FLDX") ) ] );
		else
			changeConfig_P( PSTR("ETH_FLDX"), "off" );
		printf_P( PSTR("Einstellungen uebernommen!\r\n"));
	}
	
	cgi_PrintHttpheaderEnd();
	
/*	printf_P( PSTR( " </BODY>\r\n"
					"</HTML>\r\n"
					"\r\n"), IP);
*/
}