void MainWindow::readReply(QNetworkReply *rply) { gotReply = true; if(rply->error() == QNetworkReply::NoError){ QString response = QString::fromUtf8(rply->readAll()); qDebug() << response; if(response.contains("Make sure your password is correct")){ if(traymode) tray->showMessage("Login failed","The system could not log you on.\nMake sure your password is correct.",QSystemTrayIcon::Critical); else QMessageBox::critical(this,"Login failed","The system could not log you on.\nMake sure your password is correct."); } else if(response.contains("Maximum",Qt::CaseInsensitive)){ if(traymode) tray->showMessage("Login failed","You have reached Maximum Login Limit.",QSystemTrayIcon::Critical); else QMessageBox::critical(this,"Login failed","You have reached Maximum Login Limit."); } else if(response.contains("You have successfully logged in")){ emit loggedin(); } else if(response.contains("You have successfully logged off")){ emit loggedOff(); if(wait4logout) this->close(); } } else { qDebug() << "error"; QMessageBox::critical(this,"Error Occured", rply->errorString()); isLoggedin = false; } }
void login() { //struct user usr; struct termios oflags, nflags; char username[51],pwd[9]; printf("Enter username: "******"%s",username); tcgetattr(fileno(stdin), &oflags); nflags = oflags; nflags.c_lflag &= ~ECHO; nflags.c_lflag |= ECHONL; if (tcsetattr(fileno(stdin), TCSANOW, &nflags) != 0) perror("tcsetattr"); printf("Enter password: "******"%s",pwd); if (tcsetattr(fileno(stdin), TCSANOW, &oflags) != 0) perror("tcsetattr"); char path[80]="common/users/"; strcat(path,username); FILE *f=fopen(path,"r+"); if(f==NULL) { printf("User doesn't exist!\n\n"); return; } fread(&u,sizeof(struct user),1,f); if(strcmp(pwd,u.password)==0) { printf("Login successful!!\n\n"); strcpy(loginpath,path); loggedin(); } else printf("Wrong username/password combination!\n\n"); }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); ui->cyb_image->setPixmap(QPixmap::fromImage(QImage(":/cyb/webclientportallogo.png"))); this->setWindowTitle("Cyberoam AutoLogin"); this->setWindowIcon(QIcon(":/cyb/icon.png")); this->setFixedSize(this->width(),this->height()); cyberoamURL.setUrl("http://10.100.56.55:8090/httpclient.html"); manager = new QNetworkAccessManager(this); req.setUrl(cyberoamURL); connect(ui->login_b,SIGNAL(clicked()),this,SLOT(login())); connect(manager,SIGNAL(finished(QNetworkReply*)),this,SLOT(readReply(QNetworkReply*))); connect(this,SIGNAL(loggedin()),this,SLOT(declareLoggedIN())); connect(this,SIGNAL(loggedOff()),this,SLOT(declareLoggedOFF())); connect(ui->user_field,SIGNAL(returnPressed()),this,SLOT(login())); connect(ui->pass_field,SIGNAL(returnPressed()),this,SLOT(login())); isLoggedin = false; QSettings setting("daiict","cyberoam_autoLogin"); QString uname = setting.value("uname","").toString(); if(uname != ""){ ui->remember->setChecked(true); ui->user_field->setText(uname); ui->pass_field->setText(setting.value("pass","").toString()); } tray = new QSystemTrayIcon(this); tray->setIcon(QIcon(":/cyb/icon.png")); tray->setToolTip("Cyberoam AutoLogin Client"); traymode = wait4logout = supressMessage = gotReply = false; createActions(); createTrayMenu(); timeInterval = 179; tm.setInterval(179*60*1000); connect(&tm,SIGNAL(timeout()),this,SLOT(callLogin())); timeout.setInterval(5000); connect(&timeout,SIGNAL(timeout()),this,SLOT(checkConnection())); }
/* ------------------infinite loop to handle client requests------------ */ int command_loop() { reply smesg; char repstr[1024]; int filefd; for(;;) { if (get_command(sconn, &smesg) <= 0 ) { return 0; } switch(smesg.code) { case USER : strncpy(username,smesg.text,127); sprintf(repstr, "331 Password required for %s.\n", username); send_request(sconn, repstr, strlen(repstr)); break; case PASS : if (check_user(username, smesg.text)) { sprintf(repstr, "230 User %s logged in.\n", username); send_request(sconn, repstr, strlen(repstr)); status = LOGGED_IN; } else { sprintf(repstr, "530 login failed.\n"); send_request(sconn, repstr, strlen(repstr)); } break; case PORT : if (!loggedin()) break; get_data_connection_info(smesg.text, cip, &cport); sprintf(repstr, "200 port command succesfull.\n"); send_request(sconn, repstr, strlen(repstr)); break; case LIST : if (!loggedin()) break; if (open_sock_connection(cip, cport, &data_conn) < 0) { sprintf(repstr, "425 Can't build data connection: Connection refused.\n"); send_request(sconn, repstr, strlen(repstr)); close_conn(data_conn); break; } sprintf(repstr, "150 Opening data connection.\n"); send_request(sconn, repstr, strlen(repstr)); put_local_ls(data_conn.sock, smesg.text); sprintf(repstr, "226 Transfer complete.\n"); send_request(sconn, repstr, strlen(repstr)); close_conn(data_conn); break; case RETR : if (!loggedin()) break; if ( (filefd = open(smesg.text, O_RDONLY, 0)) < 0) { sprintf(repstr, "550 %s\n",strerror(errno)); send_request(sconn, repstr, strlen(repstr)); break; } if (open_sock_connection(cip, cport, &data_conn) < 0) { sprintf(repstr, "425 Can't build data connection: Connection refused.\n"); send_request(sconn, repstr, strlen(repstr)); close_conn(data_conn); break; } sprintf(repstr, "150 Opening data connection.\n"); send_request(sconn, repstr, strlen(repstr)); put_data(data_conn, filefd); sprintf(repstr, "226 Transfer complete.\n"); send_request(sconn, repstr, strlen(repstr)); close_conn(data_conn); close(filefd); break; case STOR : if (!loggedin()) break; if ( (filefd = open(smesg.text, O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR)) < 0) { sprintf(repstr, "550 %s\n",strerror(errno)); send_request(sconn, repstr, strlen(repstr)); break; } if (open_sock_connection(cip, cport, &data_conn) < 0) { sprintf(repstr, "425 Can't build data connection : Connection refused.\n"); send_request(sconn, repstr, strlen(repstr)); close_conn(data_conn); break; } sprintf(repstr, "150 Opening data connection.\n"); send_request(sconn, repstr, strlen(repstr)); get_data(data_conn, filefd); sprintf(repstr, "226 Transfer complete.\n"); send_request(sconn, repstr, strlen(repstr)); close_conn(data_conn); close(filefd); break; case QUIT : sprintf(repstr, "221 GoodBye.\n"); send_request(sconn, repstr, strlen(repstr)); exit(0); break; default : strcpy(repstr, "500 command not understood\n"); send_request(sconn, repstr, strlen(repstr)); break; } }