Skip to content

Commit 192fb25

Browse files
committed
handle token flag, remove unused code
1 parent 42c273a commit 192fb25

File tree

4 files changed

+21
-25
lines changed

4 files changed

+21
-25
lines changed

AuthClient.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ void AuthClient::addParam(char* buff, char* key, char* value, bool first) {
134134
encode(strtail(buff),value);
135135
}
136136

137-
int AuthClient::getGearToken(char mode, char* token, char* tokensecret, char* endpoint, char* gearkey, char* gearsecret, char* gearalias, char* scope, char* rtoken, char* rtokensecret) {
137+
int AuthClient::getGearToken(char mode, char* token, char* tokensecret, char* endpoint, char *flag, char* gearkey, char* gearsecret, char* gearalias, char* scope, char* rtoken, char* rtokensecret) {
138138
#ifdef DEBUG_H
139139
Serial.println("Enter getGearToken()..");
140140
#endif
@@ -159,6 +159,7 @@ int AuthClient::getGearToken(char mode, char* token, char* tokensecret, char* en
159159
*token = '\0';
160160
*tokensecret = '\0';
161161
*endpoint = '\0';
162+
*flag = '\0';
162163

163164
strcpy(signbase,"POST&http%3A%2F%2F");
164165
sprintf(strtail(signbase),"%s%%3A%d",GEARAUTHHOST,GEARAUTHPORT);
@@ -362,7 +363,8 @@ int AuthClient::getGearToken(char mode, char* token, char* tokensecret, char* en
362363
if (strcmp(p,"oauth_token")==0) strcpy(token,s+1);
363364
else if (strcmp(p,"oauth_token_secret")==0) strcpy(tokensecret,s+1);
364365
else if (strcmp(p,"endpoint")==0) strcpy(endpoint,s+1);
365-
delay(200);
366+
else if (strcmp(p,"flag")==0) strcpy(flag,s+1);
367+
delay(50);
366368
if (!last) p = t+1; else break;
367369
}
368370
return httpstatus;

AuthClient.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class AuthClient {
3232
void write(char*);
3333
void writeln(char*);
3434
bool readln(char*, size_t);
35-
int getGearToken(char, char*, char*, char*, char*, char*, char*, char*, char*, char*);
35+
int getGearToken(char, char*, char*, char*, char*, char*, char*, char *, char*, char*, char*);
3636
protected:
3737
private:
3838
Client* client;

MicroGear.cpp

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -176,12 +176,13 @@ void MicroGear::resetToken() {
176176

177177

178178
void MicroGear::getToken(char *gkey, char *galias, char* token, char* tokensecret, char *endpoint) {
179-
char state[2];
179+
char state[2], tstate[2];
180180
int authstatus = 0;
181181

182182
char ekey[KEYSIZE+1];
183183
char rtoken[TOKENSIZE+1];
184184
char rtokensecret[TOKENSECRETSIZE+1];
185+
char flag[FLAGSIZE+1];
185186
char buff[2*TOKENSECRETSIZE+2];
186187
char revokecode[REVOKECODESIZE+1];
187188

@@ -214,7 +215,7 @@ void MicroGear::getToken(char *gkey, char *galias, char* token, char* tokensecre
214215
Serial.println("authclient is connected");
215216
#endif
216217

217-
authstatus = authclient->getGearToken(_REQUESTTOKEN,rtoken,rtokensecret,endpoint,gearkey,gearsecret,galias,scope,NULL,NULL);
218+
authstatus = authclient->getGearToken(_REQUESTTOKEN,rtoken,rtokensecret,endpoint,flag,gearkey,gearsecret,galias,scope,NULL,NULL);
218219
delay(1000);
219220
#ifdef DEBUG_H
220221
Serial.println(authstatus); Serial.println(rtoken); Serial.println(rtokensecret); Serial.println(endpoint);
@@ -227,7 +228,6 @@ void MicroGear::getToken(char *gkey, char *galias, char* token, char* tokensecre
227228
writeEEPROM(gearkey,EEPROM_KEYOFFSET,KEYSIZE);
228229
writeEEPROM(rtoken,EEPROM_TOKENOFFSET,TOKENSIZE);
229230
writeEEPROM(rtokensecret,EEPROM_TOKENSECRETOFFSET,TOKENSECRETSIZE);
230-
231231
#ifdef DEBUG_H
232232
Serial.println("@ Write Request Token");
233233
Serial.println(state);
@@ -259,7 +259,7 @@ void MicroGear::getToken(char *gkey, char *galias, char* token, char* tokensecre
259259
#ifdef DEBUG_H
260260
Serial.println("authclient is connected, get access token");
261261
#endif
262-
authstatus = authclient->getGearToken(_ACCESSTOKEN,token,tokensecret,endpoint,gearkey,gearsecret,galias,"",rtoken,rtokensecret);
262+
authstatus = authclient->getGearToken(_ACCESSTOKEN,token,tokensecret,endpoint,flag,gearkey,gearsecret,galias,"",rtoken,rtokensecret);
263263
delay(1000);
264264
authclient->stop();
265265
delay(1000);
@@ -271,13 +271,21 @@ void MicroGear::getToken(char *gkey, char *galias, char* token, char* tokensecre
271271
delay(1000);
272272
}
273273
}
274-
275274
#ifdef DEBUG_H
276275
Serial.println(authstatus);
276+
Serial.print("flag = ");
277+
Serial.println(flag[0]);
277278
#endif
279+
280+
// still write an EEPROM ic case of flag S
278281
if (authstatus == 200) {
279282
*state = EEPROM_STATE_ACC;
280-
writeEEPROM(state,EEPROM_STATEOFFSET,1);
283+
284+
// if return with session flag mark eeprom token as null
285+
if (flag[0] != 'S') *tstate = EEPROM_STATE_ACC;
286+
else *tstate = EEPROM_STATE_NUL;
287+
288+
writeEEPROM(tstate,EEPROM_STATEOFFSET,1);
281289
writeEEPROM(gearkey,EEPROM_KEYOFFSET,KEYSIZE);
282290
writeEEPROM(token,EEPROM_TOKENOFFSET,TOKENSIZE);
283291
writeEEPROM(tokensecret,EEPROM_TOKENSECRETOFFSET,TOKENSECRETSIZE);
@@ -421,18 +429,6 @@ boolean MicroGear::connect(char* appid) {
421429
if (backoff < MAXBACKOFFTIME) backoff = 2*backoff;
422430
delay(backoff);
423431
break;
424-
case CLIENT_REJECTED :
425-
#ifdef DEBUG_H
426-
Serial.println("mqtt connection rejected");
427-
Serial.println(retry);
428-
#endif
429-
if (--retry <= 0) {
430-
resetToken();
431-
#ifdef DEBUG_H
432-
Serial.println("Reset token");
433-
#endif
434-
}
435-
break;
436432
}
437433
return constate;
438434
}

MicroGear.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@
2121
#define GEARTIMEADDRESS "ga.netpie.io"
2222
#define GEARTIMEPORT 8080
2323

24-
#define CLIENTTYPE "esp1"
25-
2624
#define MINBACKOFFTIME 10
2725
#define MAXBACKOFFTIME 10000
2826
#define MAXENDPOINTLENGTH 200
@@ -35,6 +33,7 @@
3533
#define USERNAMESIZE 65
3634
#define PASSWORDSIZE 28
3735
#define REVOKECODESIZE 28
36+
#define FLAGSIZE 4
3837

3938
#define EEPROM_STATE_NUL 65
4039
#define EEPROM_STATE_REQ 66
@@ -54,9 +53,8 @@
5453

5554
#define CLIENT_NOTCONNECT 0
5655
#define CLIENT_CONNECTED 1
57-
#define CLIENT_REJECTED 2
5856

59-
/* event type */
57+
/* Event Type */
6058
#define MESSAGE 1
6159
#define PRESENT 2
6260
#define ABSENT 3

0 commit comments

Comments
 (0)