NeoMutt
2025-12-11-1009-ga75d9e
Teaching an old dog new tricks
DOXYGEN
Toggle main menu visibility
Loading...
Searching...
No Matches
mutt_account.c
Go to the documentation of this file.
1
23
29
30
#include "config.h"
31
#include <stdio.h>
32
#include "
mutt/lib.h
"
33
#include "
email/lib.h
"
34
#include "
mutt_account.h
"
35
#include "
connaccount.h
"
36
44
int
account_from_url
(
struct
ConnAccount
*cac,
const
struct
Url
*url)
45
{
46
/* must be present */
47
if
(url->
host
)
48
mutt_str_copy
(cac->
host
, url->
host
,
sizeof
(cac->
host
));
49
else
50
return
-1;
51
52
if
(url->
user
)
53
{
54
mutt_str_copy
(cac->
user
, url->
user
,
sizeof
(cac->
user
));
55
cac->
flags
|=
MUTT_ACCT_USER
;
56
}
57
if
(url->
pass
)
58
{
59
mutt_str_copy
(cac->
pass
, url->
pass
,
sizeof
(cac->
pass
));
60
cac->
flags
|=
MUTT_ACCT_PASS
;
61
}
62
if
(url->
port
)
63
{
64
cac->
port
= url->
port
;
65
cac->
flags
|=
MUTT_ACCT_PORT
;
66
}
67
68
return
0;
69
}
70
80
void
account_to_url
(
struct
ConnAccount
*cac,
struct
Url
*url)
81
{
82
url->
scheme
=
U_UNKNOWN
;
83
url->
user
= NULL;
84
url->
pass
= NULL;
85
url->
port
= 0;
86
url->
path
= NULL;
87
88
if
(cac->
type
==
MUTT_ACCT_TYPE_IMAP
)
89
{
90
if
(cac->
flags
&
MUTT_ACCT_SSL
)
91
url->
scheme
=
U_IMAPS
;
92
else
93
url->
scheme
=
U_IMAP
;
94
}
95
96
if
(cac->
type
==
MUTT_ACCT_TYPE_POP
)
97
{
98
if
(cac->
flags
&
MUTT_ACCT_SSL
)
99
url->
scheme
=
U_POPS
;
100
else
101
url->
scheme
=
U_POP
;
102
}
103
104
if
(cac->
type
==
MUTT_ACCT_TYPE_SMTP
)
105
{
106
if
(cac->
flags
&
MUTT_ACCT_SSL
)
107
url->
scheme
=
U_SMTPS
;
108
else
109
url->
scheme
=
U_SMTP
;
110
}
111
112
if
(cac->
type
==
MUTT_ACCT_TYPE_NNTP
)
113
{
114
if
(cac->
flags
&
MUTT_ACCT_SSL
)
115
url->
scheme
=
U_NNTPS
;
116
else
117
url->
scheme
=
U_NNTP
;
118
}
119
120
url->
host
= cac->
host
;
121
if
(cac->
flags
&
MUTT_ACCT_PORT
)
122
url->
port
= cac->
port
;
123
if
(cac->
flags
&
MUTT_ACCT_USER
)
124
url->
user
= cac->
user
;
125
if
(cac->
flags
&
MUTT_ACCT_PASS
)
126
url->
pass
= cac->
pass
;
127
}
connaccount.h
Connection Credentials.
MUTT_ACCT_PORT
@ MUTT_ACCT_PORT
Port field has been set.
Definition
connaccount.h:47
MUTT_ACCT_SSL
@ MUTT_ACCT_SSL
Account uses SSL/TLS.
Definition
connaccount.h:51
MUTT_ACCT_PASS
@ MUTT_ACCT_PASS
Password field has been set.
Definition
connaccount.h:50
MUTT_ACCT_USER
@ MUTT_ACCT_USER
User field has been set.
Definition
connaccount.h:48
lib.h
Structs that make up an email.
lib.h
Convenience wrapper for the library headers.
mutt_str_copy
size_t mutt_str_copy(char *dest, const char *src, size_t dsize)
Copy a string into a buffer (guaranteeing NUL-termination).
Definition
string.c:587
account_to_url
void account_to_url(struct ConnAccount *cac, struct Url *url)
Fill URL with info from account.
Definition
mutt_account.c:80
account_from_url
int account_from_url(struct ConnAccount *cac, const struct Url *url)
Fill ConnAccount with information from url.
Definition
mutt_account.c:44
mutt_account.h
ConnAccount object used by POP and IMAP.
MUTT_ACCT_TYPE_SMTP
@ MUTT_ACCT_TYPE_SMTP
Smtp Account.
Definition
mutt_account.h:38
MUTT_ACCT_TYPE_POP
@ MUTT_ACCT_TYPE_POP
Pop Account.
Definition
mutt_account.h:37
MUTT_ACCT_TYPE_NNTP
@ MUTT_ACCT_TYPE_NNTP
Nntp (Usenet) Account.
Definition
mutt_account.h:39
MUTT_ACCT_TYPE_IMAP
@ MUTT_ACCT_TYPE_IMAP
Imap Account.
Definition
mutt_account.h:36
ConnAccount
Login details for a remote server.
Definition
connaccount.h:59
ConnAccount::user
char user[128]
Username.
Definition
connaccount.h:62
ConnAccount::pass
char pass[256]
Password.
Definition
connaccount.h:63
ConnAccount::host
char host[128]
Server to login to.
Definition
connaccount.h:60
ConnAccount::type
unsigned char type
Connection type, e.g. MUTT_ACCT_TYPE_IMAP.
Definition
connaccount.h:65
ConnAccount::flags
MuttAccountFlags flags
Which fields are initialised, e.g. MUTT_ACCT_USER.
Definition
connaccount.h:66
ConnAccount::port
unsigned short port
Port to connect to.
Definition
connaccount.h:64
Url
A parsed URL proto://user:password@host:port/path?a=1&b=2.
Definition
url.h:69
Url::user
char * user
Username.
Definition
url.h:71
Url::port
unsigned short port
Port.
Definition
url.h:74
Url::host
char * host
Host.
Definition
url.h:73
Url::pass
char * pass
Password.
Definition
url.h:72
Url::path
char * path
Path.
Definition
url.h:75
Url::scheme
enum UrlScheme scheme
Scheme, e.g. U_SMTPS.
Definition
url.h:70
U_UNKNOWN
@ U_UNKNOWN
Url wasn't recognised.
Definition
url.h:35
U_NNTPS
@ U_NNTPS
Url is nntps://.
Definition
url.h:42
U_SMTPS
@ U_SMTPS
Url is smtps://.
Definition
url.h:44
U_SMTP
@ U_SMTP
Url is smtp://.
Definition
url.h:43
U_NNTP
@ U_NNTP
Url is nntp://.
Definition
url.h:41
U_IMAP
@ U_IMAP
Url is imap://.
Definition
url.h:39
U_POPS
@ U_POPS
Url is pops://.
Definition
url.h:38
U_IMAPS
@ U_IMAPS
Url is imaps://.
Definition
url.h:40
U_POP
@ U_POP
Url is pop://.
Definition
url.h:37