int AuthLogin::doLogin(const ArsCadena &user, const ArsCadena &pass)
{
	ArsCadena		aux("AUTH LOGIN\r\n");
    CBase64			base64;
    BufferSalida	codificado;

	//
	// enviar comando de login
    //
	if (!transmitir(aux.cadena(), aux.longitud()+1, LOGIN_OK_AUTH))
        return ERR_AUTH;

	//
  	// enviar usuario en base64
    //
	codificado = base64.Encode(user.cadena(), user.longitud());

    aux = codificado.c_str();
    aux += "\r\n";
	if (!transmitir(aux.cadena(), aux.longitud()+1, LOGIN_OK_USER))
        return ERR_AUTH_USER;

	//
    // enviar contraseƱa en base64
    //
	codificado = base64.Encode(pass.cadena(), pass.longitud());

    aux = codificado.c_str();
    aux += "\r\n";
	if (!transmitir(aux.cadena(), aux.longitud()+1, LOGIN_OK_PASSWORD))
        return ERR_AUTH_PASSWORD;

    return ERR_AUTH_OK;
}
Example #2
0
main(int argc, char *argv[])
{
    char *optstring="RrTtV:v:";
    int c;

    opterr=0;
    while((c=getopt(argc, argv, optstring)) != EOF)
        switch(c) {
            case 'v':
            case 'V':
                debug=atoi(optarg);
                printf("Nivel de debugging: %d\n",debug);
                break;
            case ':': 
                printf("Falta valor numerico\n");
                exit(1);
                break;
            case 'R':
            case 'r':
                printf("Recibiendo\n");
                recibir(argv[optind]);
                break;
            case 'T':
            case 't':
                printf("Transmitiendo\n");
                transmitir(argv[optind]);
                break;
            case '?':
                printf("Mal argumento\n");
                break;
        }

}