* sync with 0.9.3cvs20
see ChangeLog 2003-07-25
+2003-07-27 [christoph] 0.9.3claws61
+
+ * sync with 0.9.3cvs20
+ see ChangeLog 2003-07-25
+
2003-07-27 [paul] 0.9.3claws60
* src/procmsg.c
2003-07-27 [paul] 0.9.3claws60
* src/procmsg.c
MICRO_VERSION=3
INTERFACE_AGE=0
BINARY_AGE=0
MICRO_VERSION=3
INTERFACE_AGE=0
BINARY_AGE=0
if test $EXTRA_VERSION -eq 0; then
VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}claws
else
if test $EXTRA_VERSION -eq 0; then
VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}claws
else
static void imap_gen_send (IMAPSession *sock,
const gchar *format, ...);
static gint imap_gen_recv (IMAPSession *sock,
static void imap_gen_send (IMAPSession *sock,
const gchar *format, ...);
static gint imap_gen_recv (IMAPSession *sock,
/* misc utility functions */
static gchar *strchr_cpy (const gchar *src,
/* misc utility functions */
static gchar *strchr_cpy (const gchar *src,
{
gchar *auth_type;
gint ok;
{
gchar *auth_type;
gint ok;
gchar *challenge;
gint challenge_len;
gchar hexdigest[33];
gchar *challenge;
gint challenge_len;
gchar hexdigest[33];
challenge = g_malloc(strlen(buf + 2) + 1);
challenge_len = base64_decode(challenge, buf + 2, -1);
challenge[challenge_len] = '\0';
challenge = g_malloc(strlen(buf + 2) + 1);
challenge_len = base64_decode(challenge, buf + 2, -1);
challenge[challenge_len] = '\0';
- log_print("IMAP< [Decoded: %s]\n", challenge);
+ log_print("IMAP< [Decoded: %s]\n", challenge);
md5_hex_hmac(hexdigest, challenge, challenge_len, pass, strlen(pass));
g_free(challenge);
md5_hex_hmac(hexdigest, challenge, challenge_len, pass, strlen(pass));
g_free(challenge);
static gint imap_cmd_fetch(IMAPSession *session, guint32 uid, const gchar *filename)
{
gint ok;
static gint imap_cmd_fetch(IMAPSession *session, guint32 uid, const gchar *filename)
{
gint ok;
gchar *cur_pos;
gchar size_str[32];
glong size_num;
gchar *cur_pos;
gchar size_str[32];
glong size_num;
imap_gen_send(session, "UID FETCH %d BODY.PEEK[]", uid);
imap_gen_send(session, "UID FETCH %d BODY.PEEK[]", uid);
- while ((ok = imap_gen_recv(session, &buf))
- == IMAP_SUCCESS) {
+ while ((ok = imap_gen_recv(session, &buf)) == IMAP_SUCCESS) {
if (buf[0] != '*' || buf[1] != ' ') {
g_free(buf);
return IMAP_ERROR;
}
if (buf[0] != '*' || buf[1] != ' ') {
g_free(buf);
return IMAP_ERROR;
}
- if (strstr(buf, "FETCH") != NULL)
- break;
+ if (strstr(buf, "FETCH") != NULL) break;
g_free(buf);
}
if (ok != IMAP_SUCCESS) {
g_free(buf);
}
if (ok != IMAP_SUCCESS) {
- cur_pos = strchr(buf, '{');
- if (cur_pos == NULL) {
- g_free(buf);
- return IMAP_ERROR;
+#define RETURN_ERROR_IF_FAIL(cond) \
+ if (!(cond)) { \
+ g_free(buf); \
+ return IMAP_ERROR; \
+ cur_pos = strchr(buf, '{');
+ RETURN_ERROR_IF_FAIL(cur_pos != NULL);
cur_pos = strchr_cpy(cur_pos + 1, '}', size_str, sizeof(size_str));
cur_pos = strchr_cpy(cur_pos + 1, '}', size_str, sizeof(size_str));
- if (cur_pos == NULL) {
- g_free(buf);
- return IMAP_ERROR;
- }
+ RETURN_ERROR_IF_FAIL(cur_pos != NULL);
size_num = atol(size_str);
size_num = atol(size_str);
- g_return_val_if_fail(size_num > 0, IMAP_ERROR);
+ RETURN_ERROR_IF_FAIL(size_num > 0);
- if (*cur_pos != '\0') {
- g_free(buf);
- return IMAP_ERROR;
- }
+ RETURN_ERROR_IF_FAIL(*cur_pos == '\0');
- if (recv_bytes_write_to_file(SESSION(session)->sock, size_num, filename) != 0) {
- g_free(buf);
+#undef RETURN_ERROR_IF_FAIL
+
+ g_free(buf);
+
+ if (recv_bytes_write_to_file(SESSION(session)->sock, size_num, filename) != 0)
if (imap_gen_recv(session, &buf) != IMAP_SUCCESS) {
g_free(buf);
if (imap_gen_recv(session, &buf) != IMAP_SUCCESS) {
g_free(buf);
g_free(buf);
return IMAP_ERROR;
}
g_free(buf);
return IMAP_ERROR;
}
ok = imap_cmd_ok(session, NULL);
return ok;
ok = imap_cmd_ok(session, NULL);
return ok;
gint size, newuid;
gchar *destfolder_;
gchar *flag_str;
gint size, newuid;
gchar *destfolder_;
gchar *flag_str;
- gchar buf[BUFFSIZE], *imapbuf;
+ gchar *ret = NULL;
+ gchar buf[BUFFSIZE];
FILE *fp;
GPtrArray *reply;
gchar *okmsginfo;
FILE *fp;
GPtrArray *reply;
gchar *okmsginfo;
destfolder_, flag_str, size);
g_free(flag_str);
destfolder_, flag_str, size);
g_free(flag_str);
- ok = imap_gen_recv(session, &imapbuf);
- if (ok != IMAP_SUCCESS || imapbuf[0] != '+' || imapbuf[1] != ' ') {
+ ok = imap_gen_recv(session, &ret);
+ if (ok != IMAP_SUCCESS || ret[0] != '+' || ret[1] != ' ') {
log_warning(_("can't append %s to %s\n"), file, destfolder_);
log_warning(_("can't append %s to %s\n"), file, destfolder_);
fclose(fp);
return IMAP_ERROR;
}
fclose(fp);
return IMAP_ERROR;
}
log_print("IMAP4> %s\n", _("(sending file...)"));
log_print("IMAP4> %s\n", _("(sending file...)"));
-static gint imap_gen_recv(IMAPSession *session, gchar **buf)
+static gint imap_gen_recv(IMAPSession *session, gchar **ret)
- if ((*buf = sock_getline(SESSION(session)->sock)) == NULL)
+ if ((*ret = sock_getline(SESSION(session)->sock)) == NULL)
- log_print("IMAP4< %s\n", *buf);
+ log_print("IMAP4< %s\n", *ret);