int login()
{
    int iLoginu1;
    int iLoginu2;
    int iAuswahl;
    char sUsername1[40];
    char sUsername2[40];
    char sPasswort1[40] = "\0";
    char sPasswort2[40] = "\0";

    printf("Herzlich Willkommen\n");
    do
    {
        printf("Bitte wählen Sie aus:\n1. Login (Sie gegen Ki)\n2. Login (Multiplayer)\n3. Registrieren\n4. Beenden\n\nEingabe: ");
        fflush(stdin);
        scanf("%i",&iAuswahl);
        if(iAuswahl<1||iAuswahl>4) {
            system("cls");
            printf("Ihre Eingabe war Falsch bitte wiederholen.\n\n");
        }
    } while(iAuswahl<1||iAuswahl>4);
    system("cls");

    switch(iAuswahl)
    {
    case 1:
        iType=1;
        do
        {
            printf("Zum Abbrechen -1 eingeben.\n\nBitte Username fuer den ersten User eingeben:\n");
            fflush(stdin);
            scanf("%s",sUsername1);
            if(strcmp(sUsername1,"-1")==0)
            {
                system("cls");
                return 0;
            }
            printf("Bitte Passwort fuer den ersten User eingeben:\n");
            enter_pw(sPasswort1);
            if(strcmp(sPasswort1,"-1")==0)
            {
                system("cls");
                return 0;
            }
            iLoginu1 = sql_login(sUsername1,sPasswort1);
            if(iLoginu1==0) {
                system("cls");
                printf("Username oder Passwort waren Falsch.\n\n");
            }
        } while(iLoginu1==0);
        return 1;
        break;
    case 2:
        iType=2;
        do
        {
            printf("Zum Abbrechen -1 eingeben.\n\nBitte Username fuer den ersten User eingeben:\n");
            fflush(stdin);
            scanf("%s",sUsername1);
            if(strcmp(sUsername1,"-1")==0)
            {
                system("cls");
                return 0;
            }
            printf("Bitte Passwort fuer den ersten User eingeben:\n");
            enter_pw(sPasswort1);
            if(strcmp(sPasswort1,"-1")==0)
            {
                system("cls");
                return 0;
            }
            iLoginu1 = sql_login(sUsername1,sPasswort1);
            if(iLoginu1==0) {
                system("cls");
                printf("Username oder Passwort für den ersten User waren Falsch.\n\n");
            }
        } while(iLoginu1==0);
        do
        {
            printf("Zum Abbrechen -1 eingeben.\n\nBitte Username fuer den zweiten User eingeben:\n");
            fflush(stdin);
            scanf("%s",sUsername2);
            if(strcmp(sUsername2,"-1")==0)
            {
                system("cls");
                return 0;
            }
            printf("Bitte Passwort fuer den zweiten User eingeben:\n");
            enter_pw(sPasswort2);
            if(strcmp(sPasswort2,"-1")==0)
            {
                system("cls");
                return 0;
            }
            iLoginu2 = sql_login(sUsername2,sPasswort2);
            if(iLoginu2==0)
            {
                system("cls");
                printf("Username oder Passwort für den zweiten User waren Falsch.\n\n");
            }
            if(iLoginu2==-1)
            {
                system("cls");
                printf("Der gleiche User darf sich nicht 2. mal anmelden.\n\n");
                iLoginu2 = 0;
            }
        } while(iLoginu2==0);
        return 1;
        break;
    case 3:
        printf("Zum Abbrechen -1 eingeben.\n\nRegistrierung\n\nBitte Username eingeben:\n");
        fflush(stdin);
        scanf("%s",sUsername1);
        if(strcmp(sUsername1,"-1")==0)
        {
            system("cls");
            return 0;
        }
        printf("Bitte Passwort eingeben:\n");
        fflush(stdin);
        scanf("%s",sPasswort1);
        if(strcmp(sPasswort1,"-1")==0)
        {
            system("cls");
            return 0;
        }
        break;
    case 4:
        return -1;
        break;
    }
    return -1;
}
Пример #2
0
int sql_routine(int fd, sqlite3 *db, sockfd_buf_t *rwbuf)
{
    if (fd < 0 || db == NULL || rwbuf == NULL || rwbuf->rbuf.data == NULL || 
        rwbuf->rbuf.len == 0 || rwbuf->wbuf.data == NULL) {
        E("parameter error.");
        DD(fd);
        DP(db);
        DP(rwbuf);
        DP(rwbuf->rbuf.data);
        DD(rwbuf->rbuf.len);
        DP(rwbuf->wbuf.data);
        DD(rwbuf->wbuf.len);
        return -1;
    }

    char *regex = "^:[0-9]{1,2}:[A-Za-z0-9_]*:[A-Za-z0-9_]*:"
                    "[A-Za-z0-9_]*:.*:[0-9]{0,14}$";
    if (cs_regex(rwbuf->rbuf.data, regex) != 0) {
        E("request type undefined.");

        strncpy(rwbuf->wbuf.data, "regex_err", 9);
        rwbuf->wbuf.len = 9;
        return -1;
    }

    cs_request_t req = cs_parse_request(rwbuf->rbuf.data);
    request_dump(&req);

    int ret = -1;
    switch (req.req_type) {
        case 0:
            ret = sql_register(&req, db, &rwbuf->wbuf);
            break;
        case 1:
            ret = sql_destroy(&req, db, &rwbuf->wbuf);
            break;
        case 2:
            ret = sql_login(fd, &req, db, &rwbuf->wbuf);
            break;
        case 3:
            ret = sql_logout(&req, db, &rwbuf->wbuf);
            break;
        case 4:
            ret = sql_view_user(&req, db, &rwbuf->wbuf);
            break;
        case 5:
            ret = sql_add_buddy(&req, db, &rwbuf->wbuf);
            break;
        case 6:
            ret = sql_del_buddy(&req, db, &rwbuf->wbuf);
            break;
        case 7:
            ret = sql_sendto(fd, &req, db, &rwbuf->wbuf);
            break;
        case 8:
            ret = sql_view_log(&req, db, &rwbuf->wbuf);
            break;
        case 9:
            ret = sql_del_log(&req, db, &rwbuf->wbuf);
            break;
        case 10:
            ret = sql_change_passwd(&req, db, &rwbuf->wbuf);
            break;
        case 11:
            ret = sql_submit_info(&req, db, &rwbuf->wbuf);
            break;
        case 12:
            ret = sql_view_info(&req, db, &rwbuf->wbuf);
            break;
        default:
            DD(req.req_type);
            break;
    }

    request_free(&req);
    return ret; 
}