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; }
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; } }