diff --git a/Open_Access_Control_Ethernet.ino b/Open_Access_Control_Ethernet.ino index 9c96693..99e6b6c 100644 --- a/Open_Access_Control_Ethernet.ino +++ b/Open_Access_Control_Ethernet.ino @@ -252,7 +252,7 @@ void setup(){ // Runs once at Arduino boot-up } - ds1307.setDateDs1307(0,49,1,3,7,6,11); + ds1307.setDateDs1307(0,41,2,5,30,8,12); /* Sets the date/time (needed once at commissioning) byte second, // 0-59 @@ -278,7 +278,7 @@ void setup(){ // Runs once at Arduino boot-up } void loop() // Main branch, runs over and over again -{ +{ // listen for incoming clients EthernetClient client = server.available(); @@ -304,6 +304,17 @@ void loop() // Main branch, runs over and ov if (c == '\n' && currentLineIsBlank) { PROGMEMprintln(client,httpheaderok); + if(readString.indexOf("?e=") > 0 || readString.indexOf("&e=") > 0) { // login -- use e= to allow ?e and &e + int offset = readString.indexOf("e="); + char pass[5] = {readString[offset+2],readString[offset+3],readString[offset+4],readString[offset+5],'\0'}; + + if(login(strtoul(pass,NULL,16))) { + client.println("authok"); + } + else { + client.println("authfail"); + } + } if(readString.indexOf("?s") > 0) { // show user int offset = readString.indexOf("?s"); char usernum[4] = {readString[offset+2],readString[offset+3],readString[offset+4],'\0'}; @@ -356,7 +367,7 @@ void loop() // Main branch, runs over and ov } if(readString.indexOf("?a") > 0) { //list all users if(privmodeEnabled==true) { - logDate(); + //logDate(); client.println("
");
               client.print("UserNum:");
               client.print(" ");
@@ -524,7 +535,7 @@ void loop()                                     // Main branch, runs over and ov
               }
               logCursor = 0;
               addToLog('z',0);
-              logDate();
+              //logDate();
               
               client.println("y");
             }
@@ -533,68 +544,13 @@ void loop()                                     // Main branch, runs over and ov
               logprivFail();
             }
           }
-          /*
-          if(readString.indexOf("?d=") > 0) { // modify date (?d=00&w=0&m=00&y=00&h=00&i=00&s=00 - day-dayofweek-month-year-hour-min-sec)
-            int offset = readString.indexOf("?d=");  // date, 3 chars
-            int initialoffset = offset; // save for comparison
-            
-            char day2[3] = {readString[offset+3],readString[offset+4],'\0'};
-
-            offset = readString.indexOf("&w="); // week, 1 char
-            char dayofweek2[2] = {readString[offset+3],'\0'};
-
-            offset = readString.indexOf("&m="); // month, 2 char
-            char month2[3] = {readString[offset+3],readString[offset+4],'\0'};
-            
-            offset = readString.indexOf("&y="); // year, 2 char
-            char year2[3] = {readString[offset+3],readString[offset+4],'\0'};
-            
-            offset = readString.indexOf("&h="); // hour, 2 char
-            char hour2[3] = {readString[offset+3],readString[offset+4],'\0'};
-            
-            offset = readString.indexOf("&i="); // minute, 2 char
-            char minute2[3] = {readString[offset+3],readString[offset+4],'\0'};
-            
-            offset = readString.indexOf("&s="); // second, 2 char
-            char second2[3] = {readString[offset+3],readString[offset+4],'\0'};
-
-            
-            if(offset-initialoffset == 10){
-              if(privmodeEnabled==true) {
-                
-                //update date
-                ds1307.setDateDs1307(atoi(second2),atoi(minute2),atoi(hour2),atoi(dayofweek2),atoi(day2),atoi(month2),atoi(year2));
-                
-              }
-              else{
-                PROGMEMprintln(client,noauth);
-                logprivFail();
-              } 
-            }
-            else {
-              client.println("err:badquery");
-            }
-            
-          }*/
-          if(readString.indexOf("?e=") > 0) {
-            int offset = readString.indexOf("?e=");
-            char pass[5] = {readString[offset+3],readString[offset+4],readString[offset+5],readString[offset+6],'\0'};
-
-            if(login(strtoul(pass,NULL,16))) {
-              PROGMEMprintln(client,title);
-              client.println("authok");  
-              PROGMEMprintln(client,help);
-            }
-            else {
-              PROGMEMprintln(client,title);
-              client.println("authfail");
-              PROGMEMprintln(client,help);
-            }
-          }
           if(readString.indexOf("?") < 0) {
             PROGMEMprintln(client,title);
             PROGMEMprintln(client,help);
           }
+          if(readString.indexOf("&e=") > 0) { // if e is passed as a second parameter, log out.
+            login(strtoul("0000",NULL,16)); // 0000 = logout
+          }
 
           break;
         }
@@ -1281,12 +1237,12 @@ void logReboot() {                                  //Log system startup
 }
 
 void logChime() {
-  logDate();
+  //logDate();
     //PROGMEMprintln(doorChimeMessage);
 }
 
 void logTagPresent (long user, byte reader) {     //Log Tag Presented events
-  logDate();
+  //logDate();
   addToLog('R',user%divisor); 
   addToLog('r',user/divisor); 
 }
@@ -1313,7 +1269,7 @@ void logkeypadCommand(byte user, long command){
 
 
 void logalarmSensor(byte zone) {     //Log Alarm zone events
-  logDate();
+  //logDate();
   addToLog('s',zone); 
 }
 
@@ -1537,7 +1493,7 @@ void dumpUser(EthernetClient client, byte usernum)                     // Return
 }
 
 boolean login(long input) {
-  logDate();
+  //logDate();
   if((consoleFail>=5) && (millis()-consolefailTimer<300000))  // Do not allow priv mode if more than 5 failed logins in 5 minute
   {  
     addToLog('F',1);
@@ -1552,7 +1508,7 @@ boolean login(long input) {
       return true;
     }
     else {
-      addToLog('F',0);
+      //addToLog('F',0);
       privmodeEnabled=false;    
       if(consoleFail==0) {                // Set the timeout for failed logins
         consolefailTimer=millis();