projects
/
apps
/
madmutt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ctors/dtors for BODY's
[apps/madmutt.git]
/
nntp
/
nntp.c
diff --git
a/nntp/nntp.c
b/nntp/nntp.c
index
d5b7991
..
f576fc0
100644
(file)
--- a/
nntp/nntp.c
+++ b/
nntp/nntp.c
@@
-20,20
+20,18
@@
#include <lib-mime/mime.h>
#include <lib-mime/mime.h>
+#include <lib-ui/curses.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 "rfc2047.h"
#include "nntp.h"
#include "sidebar.h"
#include "buffy.h"
#include "nntp.h"
#include "sidebar.h"
#include "buffy.h"
-#include
"mutt_crypt.h"
+#include
<lib-crypt/crypt.h>
-#include "lib/debug.h"
#include <unistd.h>
#include <string.h>
#include <unistd.h>
#include <string.h>
@@
-83,10
+81,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;
@@
-108,13
+102,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;
@@
-160,9
+149,9
@@
static int nntp_connect_and_auth (NNTP_SERVER * serv)
else if (!m_strncmp("201", buf, 3))
mutt_message (_("Connected to %s. Posting NOT ok."), conn->account.host);
else {
else if (!m_strncmp("201", buf, 3))
mutt_message (_("Connected to %s. Posting NOT ok."), conn->account.host);
else {
- mutt_socket_close
(conn);
-
str_skip_trailws
(buf);
- mutt_error
("%s", buf);
+ mutt_socket_close(conn);
+
m_strrtrim
(buf);
+ mutt_error("%s", buf);
sleep (2);
return -1;
}
sleep (2);
return -1;
}
@@
-352,8
+341,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;
@@
-370,7
+358,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 {
@@
-475,8
+463,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);
@@
-512,7
+498,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);
@@
-533,12
+518,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
}
}
}
}
@@
-556,9
+538,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;
@@
-584,7
+566,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:
-
rfc822_free_address
(&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
@@
-592,7
+574,7
@@
static int nntp_parse_xover (CONTEXT * ctx, char *buf, HEADER * hdr)
* and mark mail/(esp.) news article as your own. aaargh! this
* bothered me for _years_ */
if (!hdr->env->from) {
* and mark mail/(esp.) news article as your own. aaargh! this
* bothered me for _years_ */
if (!hdr->env->from) {
- hdr->env->from =
rfc822_new_address
();
+ hdr->env->from =
address_new
();
hdr->env->from->personal = m_strdup(b);
}
break;
hdr->env->from->personal = m_strdup(b);
}
break;
@@
-605,7
+587,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:
@@
-621,7
+603,7
@@
static int nntp_parse_xover (CONTEXT * ctx, char *buf, HEADER * hdr)
hdr->env->xref = m_strdup(b);
nntp_parse_xref (ctx, nntp_data->group, b, hdr);
}
hdr->env->xref = m_strdup(b);
nntp_parse_xref (ctx, nntp_data->group, b, hdr);
}
- rfc2047_decode_envelope
(hdr->env);
+ rfc2047_decode_envelope(hdr->env);
if (!*p)
return -1;
b = p;
if (!*p)
return -1;
b = p;
@@
-667,7
+649,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]);
@@
-683,7
+665,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;
}
@@
-722,9
+704,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;
}
@@
-792,9
+771,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;
}
@@
-812,7
+788,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);
@@
-822,7
+798,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;
@@
-848,18
+824,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;
@@
-886,14
+862,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)) {
@@
-980,7
+953,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) {
@@
-990,7
+962,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 */
@@
-1062,15
+1034,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);
@@
-1204,17
+1176,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;
}
}
@@
-1314,8
+1280,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;
@@
-1355,9
+1321,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;
}
@@
-1412,7
+1375,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;
@@
-1425,10
+1388,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;
}
@@
-1464,7
+1424,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);
@@
-1472,7
+1432,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);