на написание клиента POP3 в C - PullRequest
3 голосов
/ 30 января 2010

Я работаю над простым клиентом pop3 в C и столкнулся со следующей проблемой: В состоянии АВТОРИЗАЦИЯ сервер никогда не распознает мой пароль:

Connection successful: +OK GMX POP3 StreamProxy ready

user hopatropa@gmx.com
+OK May I have your password, please?

pass ******
-ERR Username or password incorrect

но та же последовательность команд прекрасно работает в telnet

+OK GMX POP3 StreamProxy ready
user hopatropa@gmx.com
+OK May I have your password, please?
pass ******
+OK Mailbox locked and ready

Я уверен, что пароль, который я посылаю, в порядке. Вот как я посылаю команду pass и получаю ответ:

sprintf (command, "pass %s\r\n", pass); //pass is the string containing the password
    printf("%s", command);
    if (write(sock, command, sizeof(command)) == -1)
    {
        fprintf(stderr, "write() error: %d\n", errno);
        return errno;
    }
    if (read(sock, msgbuff, sizeof(msgbuff)) == -1)
    {
        fprintf(stderr, "read() error: %d\n", errno);
        return errno;
    }

Любая помощь будет принята с благодарностью.

1 Ответ

3 голосов
/ 30 января 2010

Почему вы используете sizeof (команду), а не strlen (команду) для длины?

...