projects
/
apps
/
madmutt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
list2_t --
[apps/madmutt.git]
/
nntp
/
nntp.c
diff --git
a/nntp/nntp.c
b/nntp/nntp.c
index
34d7746
..
a5deac1
100644
(file)
--- a/
nntp/nntp.c
+++ b/
nntp/nntp.c
@@
-9,35
+9,20
@@
* please see the file GPL in the top level source directory.
*/
* please see the file GPL in the top level source directory.
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <lib-lib/mem.h>
-#include <lib-lib/str.h>
-#include <lib-lib/file.h>
-#include <lib-lib/macros.h>
+#include <lib-lib/lib-lib.h>
#include <lib-mime/mime.h>
#include <lib-mime/mime.h>
+#include <lib-ui/curses.h>
+#include <lib-ui/sidebar.h>
#include "mutt.h"
#include "mutt.h"
-#include "mutt_curses.h"
#include "sort.h"
#include "mx.h"
#include "mx_nntp.h"
#include "sort.h"
#include "mx.h"
#include "mx_nntp.h"
-#include "rfc1524.h"
#include "nntp.h"
#include "nntp.h"
-#include "sidebar.h"
#include "buffy.h"
#include "buffy.h"
-#include "mutt_crypt.h"
-
-#include "lib/debug.h"
-
-#include <unistd.h>
-#include <string.h>
-#include <ctype.h>
-#include <stdlib.h>
+#include <lib-crypt/crypt.h>
#define WANT_LISTGROUP_COMMAND 0
#define WANT_LISTGROUP_COMMAND 0
@@
-82,10
+67,6
@@
void nntp_sync_sidebar (NNTP_DATA* data) {
tmp->msgcount = data->lastMessage - data->firstMessage;
}
tmp->msgcount = data->lastMessage - data->firstMessage;
}
-static void nntp_error (const char *where, const char *msg) {
- debug_print (1, ("unexpected response in %s: %s\n", where, msg));
-}
-
static int nntp_auth (NNTP_SERVER * serv)
{
CONNECTION *conn = serv->conn;
static int nntp_auth (NNTP_SERVER * serv)
{
CONNECTION *conn = serv->conn;
@@
-107,13
+88,8
@@
static int nntp_auth (NNTP_SERVER * serv)
return -1;
}
return -1;
}
-#ifdef DEBUG
- /* don't print the password unless we're at the ungodly debugging level */
- if (DebugLevel < M_SOCK_LOG_FULL)
- debug_print (M_SOCK_LOG_CMD, ("> AUTHINFO PASS *\n"));
-#endif
snprintf (buf, sizeof (buf), "AUTHINFO PASS %s\r\n", conn->account.pass);
snprintf (buf, sizeof (buf), "AUTHINFO PASS %s\r\n", conn->account.pass);
- mutt_socket_write
_d (conn, buf, M_SOCK_LOG_FULL
);
+ mutt_socket_write
(conn, buf
);
if (mutt_socket_readln (buf, sizeof (buf), conn) < 0) {
conn->account.flags = flags;
return -1;
if (mutt_socket_readln (buf, sizeof (buf), conn) < 0) {
conn->account.flags = flags;
return -1;
@@
-351,8
+327,7
@@
static int mutt_nntp_fetch (NNTP_DATA * nntp_data, const char *query, char *msg,
inbuf = p_new(char, sizeof(buf));
for (;;) {
inbuf = p_new(char, sizeof(buf));
for (;;) {
- chunk = mutt_socket_readln_d (buf, sizeof (buf), nntp_data->nserv->conn,
- M_SOCK_LOG_HDR);
+ chunk = mutt_socket_readln(buf, sizeof (buf), nntp_data->nserv->conn);
if (chunk < 0)
break;
if (chunk < 0)
break;
@@
-369,7
+344,7
@@
static int mutt_nntp_fetch (NNTP_DATA * nntp_data, const char *query, char *msg,
m_strcpy(inbuf + lenbuf, sizeof(buf), p);
pos += chunk;
m_strcpy(inbuf + lenbuf, sizeof(buf), p);
pos += chunk;
- if (chunk >= sizeof (buf)) {
+ if (chunk >= s
s
izeof (buf)) {
lenbuf += m_strlen(p);
}
else {
lenbuf += m_strlen(p);
}
else {
@@
-474,8
+449,6
@@
static int nntp_read_header (CONTEXT * ctx, const char *msgid,
ret = mutt_nntp_fetch (nntp_data, buf, NULL, NULL, nntp_read_tempfile, f, 0);
if (ret) {
ret = mutt_nntp_fetch (nntp_data, buf, NULL, NULL, nntp_read_tempfile, f, 0);
if (ret) {
- if (ret != -1)
- debug_print (1, ("%s\n", buf));
fclose (f);
unlink (tempfile);
return (ret == -1 ? -1 : 1);
fclose (f);
unlink (tempfile);
return (ret == -1 ? -1 : 1);
@@
-511,7
+484,6
@@
static int parse_description (char *line, void *n)
d++;
while (*d && (*d == '\t' || *d == ' '))
d++;
d++;
while (*d && (*d == '\t' || *d == ' '))
d++;
- debug_print (2, ("group: %s, desc: %s\n", line, d));
if ((data = (NNTP_DATA *) hash_find (news->newsgroups, line)) != NULL &&
m_strcmp(d, data->desc)) {
p_delete(&data->desc);
if ((data = (NNTP_DATA *) hash_find (news->newsgroups, line)) != NULL &&
m_strcmp(d, data->desc)) {
p_delete(&data->desc);
@@
-532,12
+504,9
@@
static void nntp_get_desc (NNTP_DATA * data, const char *mask, char *msg, progre
if (data->nserv->hasXGTITLE)
snprintf (buf, sizeof (buf), "XGTITLE %s\r\n", mask);
else
if (data->nserv->hasXGTITLE)
snprintf (buf, sizeof (buf), "XGTITLE %s\r\n", mask);
else
- snprintf (buf, sizeof (buf), "
LIST
NEWSGROUPS %s\r\n", mask);
+ snprintf (buf, sizeof (buf), "
string_list_t
NEWSGROUPS %s\r\n", mask);
if (mutt_nntp_fetch (data, buf, msg, bar, parse_description, data->nserv, 0) !=
0) {
if (mutt_nntp_fetch (data, buf, msg, bar, parse_description, data->nserv, 0) !=
0) {
-#ifdef DEBUG
- nntp_error ("nntp_get_desc()", buf);
-#endif
}
}
}
}
@@
-555,9
+524,9
@@
static int nntp_parse_xover (CONTEXT * ctx, char *buf, HEADER * hdr)
char *p, *b;
int x, done = 0;
char *p, *b;
int x, done = 0;
- hdr->env =
mutt_new_envelope
();
+ hdr->env =
envelope_new
();
hdr->env->newsgroups = m_strdup(nntp_data->group);
hdr->env->newsgroups = m_strdup(nntp_data->group);
- hdr->content =
mutt_new_body
();
+ hdr->content =
body_new
();
hdr->content->type = TYPETEXT;
hdr->content->subtype = m_strdup("plain");
hdr->content->encoding = ENC7BIT;
hdr->content->type = TYPETEXT;
hdr->content->subtype = m_strdup("plain");
hdr->content->encoding = ENC7BIT;
@@
-583,7
+552,7
@@
static int nntp_parse_xover (CONTEXT * ctx, char *buf, HEADER * hdr)
hdr->env->subject = m_strdup(b);
break;
case 2:
hdr->env->subject = m_strdup(b);
break;
case 2:
- address_
delete
(&hdr->env->from);
+ address_
list_wipe
(&hdr->env->from);
hdr->env->from = rfc822_parse_adrlist (hdr->env->from, b);
/* same as for mutt_parse_rfc822_line():
* don't leave from info NULL if there's an invalid address (or
hdr->env->from = rfc822_parse_adrlist (hdr->env->from, b);
/* same as for mutt_parse_rfc822_line():
* don't leave from info NULL if there's an invalid address (or
@@
-604,7
+573,7
@@
static int nntp_parse_xover (CONTEXT * ctx, char *buf, HEADER * hdr)
hdr->env->message_id = m_strdup(b);
break;
case 5:
hdr->env->message_id = m_strdup(b);
break;
case 5:
-
mutt_free_list
(&hdr->env->references);
+
string_list_wipe
(&hdr->env->references);
hdr->env->references = mutt_parse_references (b, 0);
break;
case 6:
hdr->env->references = mutt_parse_references (b, 0);
break;
case 6:
@@
-666,7
+635,7
@@
static int add_xover_line (char *line, void *c)
if (ctx->msgcount >= ctx->hdrmax)
mx_alloc_memory (ctx);
if (ctx->msgcount >= ctx->hdrmax)
mx_alloc_memory (ctx);
- ctx->hdrs[ctx->msgcount] =
mutt_new_header
();
+ ctx->hdrs[ctx->msgcount] =
header_new
();
ctx->hdrs[ctx->msgcount]->index = ctx->msgcount;
nntp_parse_xover (ctx, line, ctx->hdrs[ctx->msgcount]);
ctx->hdrs[ctx->msgcount]->index = ctx->msgcount;
nntp_parse_xover (ctx, line, ctx->hdrs[ctx->msgcount]);
@@
-682,7
+651,7
@@
static int add_xover_line (char *line, void *c)
mutt_message ("%s %d/%d", fc->msg, num, total);
}
else
mutt_message ("%s %d/%d", fc->msg, num, total);
}
else
-
mutt_free_header
(&ctx->hdrs[ctx->msgcount]); /* skip it */
+
header_delete
(&ctx->hdrs[ctx->msgcount]); /* skip it */
return 0;
}
return 0;
}
@@
-721,9
+690,6
@@
static int nntp_fetch_headers (CONTEXT * ctx, unsigned int first,
0) {
mutt_error (_("LISTGROUP command failed: %s"), buf);
sleep (2);
0) {
mutt_error (_("LISTGROUP command failed: %s"), buf);
sleep (2);
-#ifdef DEBUG
- nntp_error ("nntp_fetch_headers()", buf);
-#endif
p_delete(&fc.messages);
return -1;
}
p_delete(&fc.messages);
return -1;
}
@@
-791,9
+757,6
@@
static int nntp_fetch_headers (CONTEXT * ctx, unsigned int first,
mx_update_context (ctx, ctx->msgcount - oldmsgcount);
if (ret != 0) {
mutt_error (_("XOVER command failed: %s"), buf);
mx_update_context (ctx, ctx->msgcount - oldmsgcount);
if (ret != 0) {
mutt_error (_("XOVER command failed: %s"), buf);
-#ifdef DEBUG
- nntp_error ("nntp_fetch_headers()", buf);
-#endif
p_delete(&fc.messages);
return -1;
}
p_delete(&fc.messages);
return -1;
}
@@
-811,7
+774,7
@@
static int nntp_fetch_headers (CONTEXT * ctx, unsigned int first,
if (ctx->msgcount >= ctx->hdrmax)
mx_alloc_memory (ctx);
if (ctx->msgcount >= ctx->hdrmax)
mx_alloc_memory (ctx);
- h = ctx->hdrs[ctx->msgcount] =
mutt_new_header
();
+ h = ctx->hdrs[ctx->msgcount] =
header_new
();
h->index = ctx->msgcount;
ret = nntp_read_header (ctx, NULL, current);
h->index = ctx->msgcount;
ret = nntp_read_header (ctx, NULL, current);
@@
-821,7
+784,7
@@
static int nntp_fetch_headers (CONTEXT * ctx, unsigned int first,
mx_update_context (ctx, 1);
}
else
mx_update_context (ctx, 1);
}
else
-
mutt_free_header
(&h); /* skip it */
+
header_delete
(&h); /* skip it */
if (ret == -1) {
p_delete(&fc.messages);
return -1;
if (ret == -1) {
p_delete(&fc.messages);
return -1;
@@
-847,18
+810,18
@@
int nntp_open_mailbox (CONTEXT * ctx)
char server[LONG_STRING];
int count = 0;
unsigned int first;
char server[LONG_STRING];
int count = 0;
unsigned int first;
- ACCOUNT ac
c
t;
+ ACCOUNT act;
- p_clear(&ac
c
t, 1);
+ p_clear(&act, 1);
- if (nntp_parse_url (ctx->path, &ac
c
t, buf, sizeof (buf)) < 0 || !*buf) {
+ if (nntp_parse_url (ctx->path, &act, buf, sizeof (buf)) < 0 || !*buf) {
mutt_error (_("%s is an invalid newsgroup specification!"), ctx->path);
mutt_sleep (2);
return -1;
}
server[0] = '\0';
mutt_error (_("%s is an invalid newsgroup specification!"), ctx->path);
mutt_sleep (2);
return -1;
}
server[0] = '\0';
- nntp_expand_path (server, sizeof (server), &ac
c
t);
+ nntp_expand_path (server, sizeof (server), &act);
if (!(serv = mutt_select_newsserver (server)) || serv->status != NNTP_OK)
return -1;
if (!(serv = mutt_select_newsserver (server)) || serv->status != NNTP_OK)
return -1;
@@
-885,14
+848,11
@@
int nntp_open_mailbox (CONTEXT * ctx)
buf[0] = 0;
if (mutt_nntp_query (nntp_data, buf, sizeof (buf)) < 0) {
buf[0] = 0;
if (mutt_nntp_query (nntp_data, buf, sizeof (buf)) < 0) {
-#ifdef DEBUG
- nntp_error ("nntp_open_mailbox()", buf);
-#endif
return -1;
}
if (m_strncmp("211", buf, 3)) {
return -1;
}
if (m_strncmp("211", buf, 3)) {
-
LIST
*l = serv->list;
+
string_list_t
*l = serv->list;
/* GROUP command failed */
if (!m_strncmp("411", buf, 3)) {
/* GROUP command failed */
if (!m_strncmp("411", buf, 3)) {
@@
-979,7
+939,6
@@
int nntp_fetch_message (MESSAGE * msg, CONTEXT * ctx, int msgno)
if (ret == 1) {
mutt_error (_("Article %d not found on server"),
ctx->hdrs[msgno]->article_num);
if (ret == 1) {
mutt_error (_("Article %d not found on server"),
ctx->hdrs[msgno]->article_num);
- debug_print (1, ("%s\n", buf));
}
if (ret) {
}
if (ret) {
@@
-989,7
+948,7
@@
int nntp_fetch_message (MESSAGE * msg, CONTEXT * ctx, int msgno)
return -1;
}
return -1;
}
-
mutt_free_envelope
(&ctx->hdrs[msgno]->env);
+
envelope_delete
(&ctx->hdrs[msgno]->env);
ctx->hdrs[msgno]->env =
mutt_read_rfc822_header (msg->fp, ctx->hdrs[msgno], 0, 0);
/* fix content length */
ctx->hdrs[msgno]->env =
mutt_read_rfc822_header (msg->fp, ctx->hdrs[msgno], 0, 0);
/* fix content length */
@@
-1061,15
+1020,15
@@
int nntp_post (const char *msg)
buf[len] = '\0';
}
if (buf[1] == '.')
buf[len] = '\0';
}
if (buf[1] == '.')
- mutt_socket_write
_d (nntp_data->nserv->conn, buf, M_SOCK_LOG_HDR
);
+ mutt_socket_write
(nntp_data->nserv->conn, buf
);
else
else
- mutt_socket_write
_d (nntp_data->nserv->conn, buf + 1, M_SOCK_LOG_HDR
);
+ mutt_socket_write
(nntp_data->nserv->conn, buf + 1
);
}
fclose (f);
if (buf[m_strlen(buf) - 1] != '\n')
}
fclose (f);
if (buf[m_strlen(buf) - 1] != '\n')
- mutt_socket_write
_d (nntp_data->nserv->conn, "\r\n", M_SOCK_LOG_HDR
);
- mutt_socket_write
_d (nntp_data->nserv->conn, ".\r\n", M_SOCK_LOG_HDR
);
+ mutt_socket_write
(nntp_data->nserv->conn, "\r\n"
);
+ mutt_socket_write
(nntp_data->nserv->conn, ".\r\n"
);
if (mutt_socket_readln (buf, sizeof (buf), nntp_data->nserv->conn) < 0) {
mutt_error (_("Can't post article. Connection to %s lost."),
nntp_data->nserv->conn->account.host);
if (mutt_socket_readln (buf, sizeof (buf), nntp_data->nserv->conn) < 0) {
mutt_error (_("Can't post article. Connection to %s lost."),
nntp_data->nserv->conn->account.host);
@@
-1203,17
+1162,11
@@
static int _nntp_check_mailbox (CONTEXT * ctx, NNTP_DATA * nntp_data)
buf[0] = 0;
if (mutt_nntp_query (nntp_data, buf, sizeof (buf)) < 0) {
buf[0] = 0;
if (mutt_nntp_query (nntp_data, buf, sizeof (buf)) < 0) {
-#ifdef DEBUG
- nntp_error ("nntp_check_mailbox()", buf);
-#endif
return -1;
}
if (m_strncmp("211", buf, 3)) {
buf[0] = 0;
if (mutt_nntp_query (nntp_data, buf, sizeof (buf)) < 0) {
return -1;
}
if (m_strncmp("211", buf, 3)) {
buf[0] = 0;
if (mutt_nntp_query (nntp_data, buf, sizeof (buf)) < 0) {
-#ifdef DEBUG
- nntp_error ("nntp_check_mailbox()", buf);
-#endif
return -1;
}
}
return -1;
}
}
@@
-1313,8
+1266,8
@@
int nntp_check_newgroups (NNTP_SERVER * serv, int force)
{
char buf[LONG_STRING];
NNTP_DATA nntp_data;
{
char buf[LONG_STRING];
NNTP_DATA nntp_data;
-
LIST
*l;
-
LIST
emp;
+
string_list_t
*l;
+
string_list_t
emp;
time_t now;
struct tm *t;
time_t now;
struct tm *t;
@@
-1333,7
+1286,7
@@
int nntp_check_newgroups (NNTP_SERVER * serv, int force)
if (l->data && ((NNTP_DATA *) l->data)->subscribed)
_nntp_check_mailbox (NULL, (NNTP_DATA *) l->data);
}
if (l->data && ((NNTP_DATA *) l->data)->subscribed)
_nntp_check_mailbox (NULL, (NNTP_DATA *) l->data);
}
- sidebar_draw (
CurrentMenu
);
+ sidebar_draw ();
}
else if (!force)
return 0;
}
else if (!force)
return 0;
@@
-1354,9
+1307,6
@@
int nntp_check_newgroups (NNTP_SERVER * serv, int force)
l = serv->tail;
if (mutt_nntp_fetch (&nntp_data, buf, _("Adding new newsgroups..."), NULL,
add_group, serv, 0) != 0) {
l = serv->tail;
if (mutt_nntp_fetch (&nntp_data, buf, _("Adding new newsgroups..."), NULL,
add_group, serv, 0) != 0) {
-#ifdef DEBUG
- nntp_error ("nntp_check_newgroups()", buf);
-#endif
return -1;
}
return -1;
}
@@
-1411,7
+1361,7
@@
int nntp_get_active (NNTP_SERVER * serv)
{
char msg[SHORT_STRING];
NNTP_DATA nntp_data;
{
char msg[SHORT_STRING];
NNTP_DATA nntp_data;
-
LIST
*tmp;
+
string_list_t
*tmp;
if (nntp_open_connection (serv) < 0)
return -1;
if (nntp_open_connection (serv) < 0)
return -1;
@@
-1424,10
+1374,7
@@
int nntp_get_active (NNTP_SERVER * serv)
nntp_data.nserv = serv;
nntp_data.group = NULL;
nntp_data.nserv = serv;
nntp_data.group = NULL;
- if (mutt_nntp_fetch (&nntp_data, "LIST\r\n", msg, NULL, add_group, serv, 0) < 0) {
-#ifdef DEBUG
- nntp_error ("nntp_get_active()", "LIST\r\n");
-#endif
+ if (mutt_nntp_fetch (&nntp_data, "string_list_t\r\n", msg, NULL, add_group, serv, 0) < 0) {
return -1;
}
return -1;
}
@@
-1463,7
+1410,7
@@
int nntp_check_msgid (CONTEXT * ctx, const char *msgid)
return 1;
if (ctx->msgcount == ctx->hdrmax)
mx_alloc_memory (ctx);
return 1;
if (ctx->msgcount == ctx->hdrmax)
mx_alloc_memory (ctx);
- ctx->hdrs[ctx->msgcount] =
mutt_new_header
();
+ ctx->hdrs[ctx->msgcount] =
header_new
();
ctx->hdrs[ctx->msgcount]->index = ctx->msgcount;
mutt_message (_("Fetching %s from server..."), msgid);
ctx->hdrs[ctx->msgcount]->index = ctx->msgcount;
mutt_message (_("Fetching %s from server..."), msgid);
@@
-1471,7
+1418,7
@@
int nntp_check_msgid (CONTEXT * ctx, const char *msgid)
/* since nntp_read_header() may set read flag, we must reset it */
ctx->hdrs[ctx->msgcount]->read = 0;
if (ret != 0)
/* since nntp_read_header() may set read flag, we must reset it */
ctx->hdrs[ctx->msgcount]->read = 0;
if (ret != 0)
-
mutt_free_header
(&ctx->hdrs[ctx->msgcount]);
+
header_delete
(&ctx->hdrs[ctx->msgcount]);
else {
ctx->msgcount++;
mx_update_context (ctx, 1);
else {
ctx->msgcount++;
mx_update_context (ctx, 1);