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

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?

UserRevisionLine numberNew 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 }