For Wifi personal security mode. It is always cumbersome to change the password whenever there is a breach in the network. and even more annoying is to distribute the passwords to the clients/guests. WifiFlexManager is a project that can change the password (with a random predefined length string) whenever the admin sends a specific IR code (through android app) and can retrieve the current password or the connected users (Through Bluetooth screen). So as a client who wants to get connected to the router, you only need to point your phone's IR towards the mbed and press a button, and the current password will be shown at your phone's screen.
Dependencies: EthernetInterface HTTPServer RemoteIR SDFileSystem mbed-rpc mbed-rtos mbed
main.cpp@5:e4c3ce3f66a2, 2015-05-04 (annotated)
- Committer:
- mskamoona
- Date:
- Mon May 04 03:41:46 2015 +0000
- Revision:
- 5:e4c3ce3f66a2
- Parent:
- 4:779396fc3f76
IR, Bluetooth, Telnet are working!
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mskamoona | 0:c08dc0b2963b | 1 | #include "mbed.h" |
mskamoona | 0:c08dc0b2963b | 2 | #include "EthernetInterface.h" |
mskamoona | 0:c08dc0b2963b | 3 | #include "HTTPServer.h" |
mskamoona | 0:c08dc0b2963b | 4 | #include "FsHandler.h" |
mskamoona | 0:c08dc0b2963b | 5 | #include "RpcHandler.h" |
mskamoona | 0:c08dc0b2963b | 6 | #include "rtos.h" |
mskamoona | 0:c08dc0b2963b | 7 | #include <string> |
mskamoona | 0:c08dc0b2963b | 8 | #include <string.h> |
mskamoona | 0:c08dc0b2963b | 9 | #include "mbed_rpc.h" |
mskamoona | 2:17304882739c | 10 | #include <time.h> |
mskamoona | 3:e8334a5aeeff | 11 | #include "defines.h" |
mskamoona | 0:c08dc0b2963b | 12 | |
mskamoona | 0:c08dc0b2963b | 13 | DigitalOut led1(LED1); |
mskamoona | 0:c08dc0b2963b | 14 | DigitalOut led2(LED2); |
mskamoona | 0:c08dc0b2963b | 15 | |
mskamoona | 0:c08dc0b2963b | 16 | //Start IR |
mskamoona | 0:c08dc0b2963b | 17 | #include "ReceiverIR.h" |
mskamoona | 0:c08dc0b2963b | 18 | #include "TransmitterIR.h" |
mskamoona | 0:c08dc0b2963b | 19 | #include "IR.h" |
mskamoona | 0:c08dc0b2963b | 20 | //END IR |
mskamoona | 0:c08dc0b2963b | 21 | |
mskamoona | 0:c08dc0b2963b | 22 | |
mskamoona | 0:c08dc0b2963b | 23 | // Start DB |
mskamoona | 0:c08dc0b2963b | 24 | #include <stdio.h> |
mskamoona | 0:c08dc0b2963b | 25 | #include <stdlib.h> |
mskamoona | 0:c08dc0b2963b | 26 | #include "SDFileSystem.h" |
mskamoona | 0:c08dc0b2963b | 27 | #include "db.h" |
mskamoona | 0:c08dc0b2963b | 28 | // End DB |
mskamoona | 0:c08dc0b2963b | 29 | |
mskamoona | 3:e8334a5aeeff | 30 | Serial pc(USBTX, USBRX); |
mskamoona | 1:79a18ad6eeb5 | 31 | Serial HC06(PTC15,PTC14); // BT TX,RX |
mskamoona | 1:79a18ad6eeb5 | 32 | |
mskamoona | 0:c08dc0b2963b | 33 | SDFileSystem sd(PTE3,PTE1,PTE2,PTE4, "sd"); // the pinout on the mbed |
mskamoona | 0:c08dc0b2963b | 34 | |
mskamoona | 3:e8334a5aeeff | 35 | //Function that calls the function that lists users |
mskamoona | 0:c08dc0b2963b | 36 | TCPSocketConnection socket; |
mskamoona | 0:c08dc0b2963b | 37 | |
mskamoona | 4:779396fc3f76 | 38 | char username[]="root\r\n"; |
mskamoona | 0:c08dc0b2963b | 39 | char password[]="password\r\n"; |
mskamoona | 1:79a18ad6eeb5 | 40 | char chngpwd[]="nvram set wl_wpa_psk=PleaseVote1forkamoona\r\n"; |
mskamoona | 0:c08dc0b2963b | 41 | char getusers[]="cat /proc/net/arp\r\n"; |
mskamoona | 1:79a18ad6eeb5 | 42 | char getpwd[]="nvram get wl_wpa_psk\r\n"; |
mskamoona | 0:c08dc0b2963b | 43 | |
mskamoona | 0:c08dc0b2963b | 44 | int main() |
mskamoona | 2:17304882739c | 45 | { |
mskamoona | 3:e8334a5aeeff | 46 | char *randptr = (char*) malloc (10); |
mskamoona | 3:e8334a5aeeff | 47 | char *Rand = randstring(10,randptr); |
mskamoona | 3:e8334a5aeeff | 48 | printf ("Random String out of function is %s\n",Rand); |
mskamoona | 3:e8334a5aeeff | 49 | |
mskamoona | 0:c08dc0b2963b | 50 | // Telnet related |
mskamoona | 1:79a18ad6eeb5 | 51 | HC06.baud(9600); |
mskamoona | 1:79a18ad6eeb5 | 52 | HC06.printf("Bluetooth connected. Please send an IR command!\n"); |
mskamoona | 1:79a18ad6eeb5 | 53 | printf("Bluetooth connected. Please send an IR command!\n"); |
mskamoona | 0:c08dc0b2963b | 54 | // mkdir("/sd/mydir", 0777); |
mskamoona | 0:c08dc0b2963b | 55 | mkdir("/sd/Wifi", 0777); |
mskamoona | 1:79a18ad6eeb5 | 56 | printf("Created the /sd/Wifi directory in SD card\n"); |
mskamoona | 0:c08dc0b2963b | 57 | |
mskamoona | 0:c08dc0b2963b | 58 | FILE *fp = fopen("/sd/Wifi/sdtest.txt", "w"); |
mskamoona | 0:c08dc0b2963b | 59 | if(fp == NULL) { |
mskamoona | 0:c08dc0b2963b | 60 | error("Could not open file for write\n"); |
mskamoona | 0:c08dc0b2963b | 61 | } |
mskamoona | 0:c08dc0b2963b | 62 | fprintf(fp, "Opened SD for to test!"); |
mskamoona | 0:c08dc0b2963b | 63 | fclose(fp); |
mskamoona | 0:c08dc0b2963b | 64 | |
mskamoona | 1:79a18ad6eeb5 | 65 | printf("Printed in /sd/Wifi/sdtest.txt successfullly !\n"); |
mskamoona | 0:c08dc0b2963b | 66 | |
mskamoona | 0:c08dc0b2963b | 67 | EthernetInterface eth; |
mskamoona | 1:79a18ad6eeb5 | 68 | led1 = 1; |
mskamoona | 1:79a18ad6eeb5 | 69 | led2 = 1; |
mskamoona | 1:79a18ad6eeb5 | 70 | eth.init ("192.168.2.9","255.255.255.0","0.0.0.0"); |
mskamoona | 0:c08dc0b2963b | 71 | eth.connect(); |
mskamoona | 0:c08dc0b2963b | 72 | |
mskamoona | 0:c08dc0b2963b | 73 | printf("IP: %s\n \r", eth.getIPAddress()); |
mskamoona | 0:c08dc0b2963b | 74 | printf("Setup OK\n \r"); |
mskamoona | 0:c08dc0b2963b | 75 | |
mskamoona | 0:c08dc0b2963b | 76 | // DB Init |
mskamoona | 0:c08dc0b2963b | 77 | mkdir("/sd/SmartRemote", 0777); |
mskamoona | 0:c08dc0b2963b | 78 | printf("Hello World!\n"); |
mskamoona | 0:c08dc0b2963b | 79 | |
mskamoona | 0:c08dc0b2963b | 80 | mkdir("/sd/mydir", 0777); |
mskamoona | 0:c08dc0b2963b | 81 | |
mskamoona | 0:c08dc0b2963b | 82 | fp = fopen("/sd/mydir/sdtest.txt", "w"); |
mskamoona | 0:c08dc0b2963b | 83 | if(fp == NULL) { |
mskamoona | 0:c08dc0b2963b | 84 | error("Could not open file for write\n"); |
mskamoona | 0:c08dc0b2963b | 85 | } |
mskamoona | 0:c08dc0b2963b | 86 | fprintf(fp, "Hello fun SD Card World!"); |
mskamoona | 0:c08dc0b2963b | 87 | fclose(fp); |
mskamoona | 0:c08dc0b2963b | 88 | |
mskamoona | 0:c08dc0b2963b | 89 | printf("Goodbye World!\n"); |
mskamoona | 0:c08dc0b2963b | 90 | |
mskamoona | 0:c08dc0b2963b | 91 | char tuple_code[128]; |
mskamoona | 0:c08dc0b2963b | 92 | char tuple_name[128]; |
mskamoona | 0:c08dc0b2963b | 93 | char tuple_bitlength[128]; |
mskamoona | 0:c08dc0b2963b | 94 | char tuple_format[128]; |
mskamoona | 0:c08dc0b2963b | 95 | char temp[20]; |
mskamoona | 0:c08dc0b2963b | 96 | int n; |
mskamoona | 0:c08dc0b2963b | 97 | //End DB init |
mskamoona | 0:c08dc0b2963b | 98 | |
mskamoona | 0:c08dc0b2963b | 99 | //IR Init |
mskamoona | 0:c08dc0b2963b | 100 | uint8_t buf1[32]; |
mskamoona | 0:c08dc0b2963b | 101 | uint8_t buf2[32]; |
mskamoona | 0:c08dc0b2963b | 102 | int bitlength1; |
mskamoona | 0:c08dc0b2963b | 103 | int bitlength2; |
mskamoona | 0:c08dc0b2963b | 104 | char tempstr[3]; |
mskamoona | 1:79a18ad6eeb5 | 105 | char bufc1[2]; //For IR command comparison |
mskamoona | 0:c08dc0b2963b | 106 | RemoteIR::Format format; |
mskamoona | 0:c08dc0b2963b | 107 | printf("Constructor Initialized\n"); |
mskamoona | 0:c08dc0b2963b | 108 | memset(buf1, 0x00, sizeof(buf1)); |
mskamoona | 0:c08dc0b2963b | 109 | memset(buf2, 0x00, sizeof(buf2)); |
mskamoona | 0:c08dc0b2963b | 110 | //END IR Init |
mskamoona | 0:c08dc0b2963b | 111 | |
mskamoona | 0:c08dc0b2963b | 112 | printf("Listening...\n \r"); |
mskamoona | 3:e8334a5aeeff | 113 | int Learn = 1; |
mskamoona | 3:e8334a5aeeff | 114 | |
mskamoona | 0:c08dc0b2963b | 115 | //Listen indefinitely |
mskamoona | 3:e8334a5aeeff | 116 | while(true) |
mskamoona | 3:e8334a5aeeff | 117 | { |
mskamoona | 3:e8334a5aeeff | 118 | if (Learn) |
mskamoona | 3:e8334a5aeeff | 119 | { |
mskamoona | 0:c08dc0b2963b | 120 | // Debug LED |
mskamoona | 0:c08dc0b2963b | 121 | led1=0; |
mskamoona | 0:c08dc0b2963b | 122 | // Receive the code |
mskamoona | 3:e8334a5aeeff | 123 | bitlength1 = receive(&format, buf1, sizeof(buf1)); |
mskamoona | 3:e8334a5aeeff | 124 | if (bitlength1 < 0) |
mskamoona | 3:e8334a5aeeff | 125 | { |
mskamoona | 3:e8334a5aeeff | 126 | printf("Continuing\n"); |
mskamoona | 3:e8334a5aeeff | 127 | continue; |
mskamoona | 3:e8334a5aeeff | 128 | } |
mskamoona | 3:e8334a5aeeff | 129 | display_status("RECV", bitlength1); |
mskamoona | 3:e8334a5aeeff | 130 | display_data(buf1, bitlength1); |
mskamoona | 3:e8334a5aeeff | 131 | display_format(format); |
mskamoona | 3:e8334a5aeeff | 132 | |
mskamoona | 3:e8334a5aeeff | 133 | printf("Converting Bytes ...\n"); |
mskamoona | 3:e8334a5aeeff | 134 | sprintf(bufc1,"%02X",buf1[0]); |
mskamoona | 3:e8334a5aeeff | 135 | printf("%s\n",bufc1); |
mskamoona | 3:e8334a5aeeff | 136 | |
mskamoona | 3:e8334a5aeeff | 137 | if (strcmp(bufc1,"4B") == 0) |
mskamoona | 3:e8334a5aeeff | 138 | { |
mskamoona | 3:e8334a5aeeff | 139 | printf("Running task 0 ...\n"); |
mskamoona | 3:e8334a5aeeff | 140 | led1 = 1; |
mskamoona | 3:e8334a5aeeff | 141 | telnet_task(0); |
mskamoona | 3:e8334a5aeeff | 142 | } |
mskamoona | 3:e8334a5aeeff | 143 | else if (strcmp(bufc1,"71") == 0) |
mskamoona | 0:c08dc0b2963b | 144 | { |
mskamoona | 3:e8334a5aeeff | 145 | printf("Running task 1 ...\n"); |
mskamoona | 3:e8334a5aeeff | 146 | led1 = 1; |
mskamoona | 3:e8334a5aeeff | 147 | telnet_task(1); |
mskamoona | 3:e8334a5aeeff | 148 | } |
mskamoona | 3:e8334a5aeeff | 149 | else if (strcmp(bufc1,"E3") == 0) |
mskamoona | 3:e8334a5aeeff | 150 | { |
mskamoona | 3:e8334a5aeeff | 151 | printf("Running task 2 ...\n"); |
mskamoona | 3:e8334a5aeeff | 152 | led1 = 1; |
mskamoona | 3:e8334a5aeeff | 153 | telnet_task(2); |
mskamoona | 0:c08dc0b2963b | 154 | } |
mskamoona | 3:e8334a5aeeff | 155 | } |
mskamoona | 3:e8334a5aeeff | 156 | // Reset |
mskamoona | 3:e8334a5aeeff | 157 | led1 = 1; |
mskamoona | 1:79a18ad6eeb5 | 158 | // Learn = 0; |
mskamoona | 3:e8334a5aeeff | 159 | // Set up the variables |
mskamoona | 3:e8334a5aeeff | 160 | |
mskamoona | 3:e8334a5aeeff | 161 | sprintf(tuple_code, "%X", buf1); |
mskamoona | 3:e8334a5aeeff | 162 | sprintf(tuple_bitlength, "%d", bitlength1); |
mskamoona | 3:e8334a5aeeff | 163 | sprintf(tuple_format, "%d", format); |
mskamoona | 3:e8334a5aeeff | 164 | for (int i = 0; i < 10; i++) |
mskamoona | 3:e8334a5aeeff | 165 | { |
mskamoona | 3:e8334a5aeeff | 166 | if (tuple_name[i] == '~') tuple_name[i] = ' '; |
mskamoona | 0:c08dc0b2963b | 167 | } |
mskamoona | 0:c08dc0b2963b | 168 | |
mskamoona | 3:e8334a5aeeff | 169 | const int n = bitlength1 / 8 + (((bitlength1 % 8) != 0) ? 1 : 0); |
mskamoona | 3:e8334a5aeeff | 170 | strcpy(tuple_code, ""); |
mskamoona | 3:e8334a5aeeff | 171 | for (int i = 0; i < n; i++) |
mskamoona | 3:e8334a5aeeff | 172 | { |
mskamoona | 3:e8334a5aeeff | 173 | sprintf(temp, "%02X", buf1[i]); |
mskamoona | 3:e8334a5aeeff | 174 | strcat(tuple_code, temp); |
mskamoona | 0:c08dc0b2963b | 175 | } |
mskamoona | 0:c08dc0b2963b | 176 | } |
mskamoona | 0:c08dc0b2963b | 177 | eth.disconnect(); |
mskamoona | 0:c08dc0b2963b | 178 | return 0; |
mskamoona | 0:c08dc0b2963b | 179 | } |
mskamoona | 0:c08dc0b2963b | 180 | |
mskamoona | 0:c08dc0b2963b | 181 | void cursor(char *check, bool sd,char c) |
mskamoona | 0:c08dc0b2963b | 182 | { |
mskamoona | 0:c08dc0b2963b | 183 | printf("Check = %s\n", check); |
mskamoona | 1:79a18ad6eeb5 | 184 | printf("sd = %d\n", sd); |
mskamoona | 1:79a18ad6eeb5 | 185 | printf("c = %c\n", c); |
mskamoona | 1:79a18ad6eeb5 | 186 | char BTbuf[100], title[100]; |
mskamoona | 4:779396fc3f76 | 187 | char shift[strlen(check)]; |
mskamoona | 0:c08dc0b2963b | 188 | char buf[] = " "; |
mskamoona | 0:c08dc0b2963b | 189 | bool res=false; |
mskamoona | 0:c08dc0b2963b | 190 | FILE *fp; |
mskamoona | 0:c08dc0b2963b | 191 | if (sd) |
mskamoona | 4:779396fc3f76 | 192 | { |
mskamoona | 0:c08dc0b2963b | 193 | if (c=='u') |
mskamoona | 0:c08dc0b2963b | 194 | fp=fopen("/sd/Wifi/users.txt", "w"); |
mskamoona | 0:c08dc0b2963b | 195 | else if (c=='p') |
mskamoona | 0:c08dc0b2963b | 196 | fp=fopen("/sd/Wifi/pass.txt", "w"); |
mskamoona | 4:779396fc3f76 | 197 | if(fp == NULL) |
mskamoona | 4:779396fc3f76 | 198 | { |
mskamoona | 0:c08dc0b2963b | 199 | error("Could not open file for write\n"); |
mskamoona | 0:c08dc0b2963b | 200 | } |
mskamoona | 4:779396fc3f76 | 201 | } |
mskamoona | 4:779396fc3f76 | 202 | int negState = 0; |
mskamoona | 4:779396fc3f76 | 203 | int negCnt = 0; |
mskamoona | 4:779396fc3f76 | 204 | char negAns[3]; |
mskamoona | 4:779396fc3f76 | 205 | |
mskamoona | 0:c08dc0b2963b | 206 | while (res==false) |
mskamoona | 0:c08dc0b2963b | 207 | { |
mskamoona | 0:c08dc0b2963b | 208 | int n = socket.receive(buf, 1); |
mskamoona | 4:779396fc3f76 | 209 | |
mskamoona | 4:779396fc3f76 | 210 | if (negState == 1 && negCnt < 3) |
mskamoona | 4:779396fc3f76 | 211 | { |
mskamoona | 4:779396fc3f76 | 212 | if (buf[0] == DO) |
mskamoona | 4:779396fc3f76 | 213 | { |
mskamoona | 4:779396fc3f76 | 214 | negAns[negCnt] = WONT; |
mskamoona | 4:779396fc3f76 | 215 | negCnt ++; |
mskamoona | 4:779396fc3f76 | 216 | } |
mskamoona | 4:779396fc3f76 | 217 | else |
mskamoona | 4:779396fc3f76 | 218 | { |
mskamoona | 4:779396fc3f76 | 219 | negAns[negCnt] = buf[0]; |
mskamoona | 4:779396fc3f76 | 220 | negCnt ++; |
mskamoona | 1:79a18ad6eeb5 | 221 | } |
mskamoona | 4:779396fc3f76 | 222 | } |
mskamoona | 4:779396fc3f76 | 223 | else if (negCnt >= 3) |
mskamoona | 4:779396fc3f76 | 224 | { |
mskamoona | 4:779396fc3f76 | 225 | negCnt = 0; |
mskamoona | 4:779396fc3f76 | 226 | negState = 0; |
mskamoona | 4:779396fc3f76 | 227 | socket.send_all(negAns, sizeof(negAns)); |
mskamoona | 4:779396fc3f76 | 228 | } |
mskamoona | 4:779396fc3f76 | 229 | |
mskamoona | 4:779396fc3f76 | 230 | if (buf[0] == IAC) |
mskamoona | 0:c08dc0b2963b | 231 | { |
mskamoona | 4:779396fc3f76 | 232 | negCnt = 0; |
mskamoona | 4:779396fc3f76 | 233 | negState = 1; |
mskamoona | 4:779396fc3f76 | 234 | negAns[negCnt] = IAC; |
mskamoona | 4:779396fc3f76 | 235 | negCnt ++; |
mskamoona | 4:779396fc3f76 | 236 | } |
mskamoona | 4:779396fc3f76 | 237 | |
mskamoona | 4:779396fc3f76 | 238 | printf("Last received is %s\n",buf); |
mskamoona | 4:779396fc3f76 | 239 | |
mskamoona | 4:779396fc3f76 | 240 | if (negState == 0) |
mskamoona | 4:779396fc3f76 | 241 | { |
mskamoona | 4:779396fc3f76 | 242 | if (sd) |
mskamoona | 4:779396fc3f76 | 243 | { |
mskamoona | 4:779396fc3f76 | 244 | fprintf(fp, "%c",buf[0]); |
mskamoona | 4:779396fc3f76 | 245 | } |
mskamoona | 4:779396fc3f76 | 246 | printf("%c",buf[0]); |
mskamoona | 4:779396fc3f76 | 247 | HC06.printf("%c",buf[0]); |
mskamoona | 4:779396fc3f76 | 248 | for (int k=0;k<strlen(check);k++) |
mskamoona | 4:779396fc3f76 | 249 | shift[k]=shift[k+1]; |
mskamoona | 4:779396fc3f76 | 250 | shift[strlen(check)]=buf[0]; |
mskamoona | 4:779396fc3f76 | 251 | if (strcmp(shift,check) == 0) |
mskamoona | 4:779396fc3f76 | 252 | { |
mskamoona | 4:779396fc3f76 | 253 | printf("Prompt Reached!\n"); |
mskamoona | 4:779396fc3f76 | 254 | res = true; |
mskamoona | 4:779396fc3f76 | 255 | } |
mskamoona | 0:c08dc0b2963b | 256 | } |
mskamoona | 0:c08dc0b2963b | 257 | } |
mskamoona | 4:779396fc3f76 | 258 | |
mskamoona | 0:c08dc0b2963b | 259 | if (sd) |
mskamoona | 0:c08dc0b2963b | 260 | { |
mskamoona | 0:c08dc0b2963b | 261 | printf("Closing file on SD...\n"); |
mskamoona | 1:79a18ad6eeb5 | 262 | fgets(BTbuf, sizeof BTbuf, fp); /* expect string like "title: TITLE WITH SPACES" */ |
mskamoona | 1:79a18ad6eeb5 | 263 | sscanf(buf, "%*s %99[^\n]", title); |
mskamoona | 1:79a18ad6eeb5 | 264 | HC06.printf("%s",BTbuf); |
mskamoona | 1:79a18ad6eeb5 | 265 | printf("%s",BTbuf); |
mskamoona | 1:79a18ad6eeb5 | 266 | HC06.printf("%s",title); |
mskamoona | 1:79a18ad6eeb5 | 267 | printf("%s",title); |
mskamoona | 0:c08dc0b2963b | 268 | fclose(fp); |
mskamoona | 0:c08dc0b2963b | 269 | } |
mskamoona | 0:c08dc0b2963b | 270 | } |
mskamoona | 0:c08dc0b2963b | 271 | |
mskamoona | 1:79a18ad6eeb5 | 272 | /*void lsusrsf(void) //callstring is a sting passed to be sent by the TCP socket |
mskamoona | 0:c08dc0b2963b | 273 | { |
mskamoona | 0:c08dc0b2963b | 274 | socket.send_all("cat /proc/net/arp\r\n", sizeof("cat /proc/net/arp\r\n") - 1); |
mskamoona | 0:c08dc0b2963b | 275 | printf("Users listed in memory card: \n Exited lsusersf function, after \n"); |
mskamoona | 1:79a18ad6eeb5 | 276 | } */ |
mskamoona | 0:c08dc0b2963b | 277 | |
mskamoona | 0:c08dc0b2963b | 278 | void telnet_task(int taskNumber) |
mskamoona | 0:c08dc0b2963b | 279 | { |
mskamoona | 0:c08dc0b2963b | 280 | while (socket.connect(ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT) < 0) { |
mskamoona | 0:c08dc0b2963b | 281 | printf("Unable to connect to (%s) on port (%d)\n", ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT); |
mskamoona | 0:c08dc0b2963b | 282 | wait(1); |
mskamoona | 0:c08dc0b2963b | 283 | } |
mskamoona | 4:779396fc3f76 | 284 | //char negot[]={255,253,1,255,254,31}; |
mskamoona | 4:779396fc3f76 | 285 | //socket.send_all(negot, sizeof(negot) - 1); |
mskamoona | 4:779396fc3f76 | 286 | |
mskamoona | 4:779396fc3f76 | 287 | int requirelogin = 1; |
mskamoona | 0:c08dc0b2963b | 288 | |
mskamoona | 4:779396fc3f76 | 289 | if (requirelogin == 1) |
mskamoona | 4:779396fc3f76 | 290 | { |
mskamoona | 4:779396fc3f76 | 291 | printf("Entering function: \n"); |
mskamoona | 4:779396fc3f76 | 292 | char log[] = login; |
mskamoona | 4:779396fc3f76 | 293 | cursor(&log[0],false,'a'); |
mskamoona | 4:779396fc3f76 | 294 | printf("Exiting function: \n"); |
mskamoona | 4:779396fc3f76 | 295 | socket.send_all(username, sizeof(username) - 1); |
mskamoona | 4:779396fc3f76 | 296 | printf("Sent username!\n"); |
mskamoona | 0:c08dc0b2963b | 297 | |
mskamoona | 4:779396fc3f76 | 298 | printf("Entering function: \n"); |
mskamoona | 4:779396fc3f76 | 299 | char paspmt[] = passcurs; |
mskamoona | 4:779396fc3f76 | 300 | cursor(&paspmt[0],false,'a'); |
mskamoona | 4:779396fc3f76 | 301 | printf("Exiting function: \n"); |
mskamoona | 4:779396fc3f76 | 302 | socket.send_all(password, sizeof(password) - 1); |
mskamoona | 4:779396fc3f76 | 303 | printf("Sent password!\n"); |
mskamoona | 4:779396fc3f76 | 304 | } |
mskamoona | 0:c08dc0b2963b | 305 | |
mskamoona | 0:c08dc0b2963b | 306 | printf("Entering function: \n"); |
mskamoona | 3:e8334a5aeeff | 307 | char curspmt[] = cursr; |
mskamoona | 3:e8334a5aeeff | 308 | cursor(&curspmt[0],false,'a'); |
mskamoona | 0:c08dc0b2963b | 309 | printf("Exiting function: \n"); |
mskamoona | 0:c08dc0b2963b | 310 | |
mskamoona | 0:c08dc0b2963b | 311 | switch (taskNumber) |
mskamoona | 0:c08dc0b2963b | 312 | { |
mskamoona | 0:c08dc0b2963b | 313 | case 0: // Get users |
mskamoona | 1:79a18ad6eeb5 | 314 | printf("Entering Case 0 function: \n"); |
mskamoona | 0:c08dc0b2963b | 315 | socket.send_all(getusers, sizeof(getusers) - 1); |
mskamoona | 3:e8334a5aeeff | 316 | cursor(&curspmt[0],true,'u'); |
mskamoona | 1:79a18ad6eeb5 | 317 | |
mskamoona | 0:c08dc0b2963b | 318 | break; |
mskamoona | 0:c08dc0b2963b | 319 | |
mskamoona | 0:c08dc0b2963b | 320 | case 1: // Change password |
mskamoona | 1:79a18ad6eeb5 | 321 | printf("Entering Case 1 function: \n"); |
mskamoona | 3:e8334a5aeeff | 322 | socket.send_all(chngpwd, sizeof(chngpwd) - 1); |
mskamoona | 3:e8334a5aeeff | 323 | |
mskamoona | 3:e8334a5aeeff | 324 | cursor(&curspmt[0],false,'a'); |
mskamoona | 0:c08dc0b2963b | 325 | printf("Sent chngpwd!\n"); |
mskamoona | 0:c08dc0b2963b | 326 | break; |
mskamoona | 0:c08dc0b2963b | 327 | case 2: // Get password |
mskamoona | 1:79a18ad6eeb5 | 328 | printf("Entering Case 2 function: \n"); |
mskamoona | 1:79a18ad6eeb5 | 329 | socket.send_all(getpwd, sizeof(getpwd) - 1); |
mskamoona | 3:e8334a5aeeff | 330 | cursor(&curspmt[0],true,'p'); |
mskamoona | 1:79a18ad6eeb5 | 331 | printf("getpwd!\n"); |
mskamoona | 0:c08dc0b2963b | 332 | break; |
mskamoona | 0:c08dc0b2963b | 333 | } |
mskamoona | 0:c08dc0b2963b | 334 | socket.close(); |
mskamoona | 2:17304882739c | 335 | } |
mskamoona | 2:17304882739c | 336 | |
mskamoona | 2:17304882739c | 337 | |
mskamoona | 3:e8334a5aeeff | 338 | char *randstring(size_t length, char *randptr) |
mskamoona | 3:e8334a5aeeff | 339 | { |
mskamoona | 2:17304882739c | 340 | static char charset[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789,.-#'?!"; |
mskamoona | 3:e8334a5aeeff | 341 | char tmpStr[length+1]; |
mskamoona | 3:e8334a5aeeff | 342 | srand (time(NULL)); |
mskamoona | 3:e8334a5aeeff | 343 | if (length) |
mskamoona | 3:e8334a5aeeff | 344 | { |
mskamoona | 3:e8334a5aeeff | 345 | for (int n = 0;n < length;n++) |
mskamoona | 3:e8334a5aeeff | 346 | { |
mskamoona | 3:e8334a5aeeff | 347 | int RndNum = rand(); |
mskamoona | 3:e8334a5aeeff | 348 | int key = RndNum % (int)(sizeof(charset) -1); |
mskamoona | 3:e8334a5aeeff | 349 | tmpStr[n] = charset[key]; |
mskamoona | 2:17304882739c | 350 | } |
mskamoona | 3:e8334a5aeeff | 351 | tmpStr[length] = '\0'; |
mskamoona | 3:e8334a5aeeff | 352 | printf ("Random String in function %s\n",tmpStr); |
mskamoona | 2:17304882739c | 353 | } |
mskamoona | 3:e8334a5aeeff | 354 | memmove(randptr,tmpStr,length); |
mskamoona | 3:e8334a5aeeff | 355 | return randptr; |
mskamoona | 0:c08dc0b2963b | 356 | } |