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;
    }
}
Beispiel #2
0
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()));

}
Beispiel #4
0
/* ------------------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;
		}
	}