Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
John McEleney
/
mailutils
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
Commit
567a68fd
...
567a68fd897da7ad69bc05b5ca1b62c371d52761
authored
2001-05-22 04:11:09 +0000
by
Alain Magloire
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
doc fixes.
1 parent
750120a9
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
145 additions
and
6 deletions
ChangeLog
doc/Makefile.am
doc/auth.texi
doc/ex-address.texi
ChangeLog
View file @
567a68f
...
...
@@ -25,6 +25,10 @@
a long AC_CHECK_LIB, break it in two.
Check for strsignal()
* doc/auth.texi: Bug fixes in texinfo.
* doc/Makefile.am: Commented the ex-address.texi generation.
* doc/ex-address.texi: New file.
2001-05-21 Alain Magloire
* configure.in, imap4d/signal.c, pop3d/signal.c:
...
...
doc/Makefile.am
View file @
567a68f
info_TEXINFOS
=
\
mailutils.texi
info_TEXINFOS
=
mailutils.texi
EXTRA_DIST
=
\
rfc1734.txt
\
...
...
@@ -13,6 +12,7 @@ EXTRA_DIST = \
auth.texi
\
body.texi
\
encoding.texi
\
ex-address.texi
\
headers.texi
\
locker.texi
\
mailbox.texi
\
...
...
@@ -23,6 +23,11 @@ EXTRA_DIST = \
url.texi
\
version.texi
ex-address.texi
:
${top_srdir}/examples/addr.c
sed -es/
{
/@
{
/g -e s/
}
/@
}
/g <
$<
>
$@
## Sam, the examples dir is not part of the distribution so this will not work
## but we should probably have a "addrmsg" program and reenable this.
## Alain.
#ex-address.texi: ${top_srcdir}/examples/addr.c
# sed -es/{/@{/g -e s/}/@}/g < $< > $@
#mailutils.info: mailutils.texi version.texi ex-address.texi
#mailutils.dvi: mailutils.texi version.texi ex-address.texi
...
...
doc/auth.texi
View file @
567a68f
There
are
many
ways
to
authenticate
to
a
server
,
to
be
flexible
the
authentication
process
is
provided
by
two
objects
@code
{
auth_t
}
and
@
{
ticket_t
}.
The
@
{
auth_t
}
can
implement
different
protocol
like
@
code
{
ticket_t
}.
The
@code
{
auth_t
}
can
implement
different
protocol
like
APOP
,
MD5
-
AUTH
,
One
Time
Passwd
etc
..
By
default
if
a
mailbox
does
not
understand
or
know
how
to
authenticate
it
falls
back
to
user
/
passwd
authentication
.
The
@{
ticket_t
}
is
away
to
user
/
passwd
authentication
.
The
@
code
{
ticket_t
}
is
away
to
Mailboxes
and
Mailers
provide
a
way
to
authenticate
when
the
URL
does
not
contain
enough
information
.
The
default
action
is
to
call
function
@code
{
auth_authenticate
}
who
will
get
the
@emph
{
user
}
and
@emph
{
passwd
}
...
...
doc/ex-address.texi
0 → 100644
View file @
567a68f
#include <stdio.h>
#include <errno.h>
#include <mailutils/address.h>
#define EPARSE ENOENT
static const char* err_name(int e)
@{
struct @{
int e;
const char* s;
@} map[] = @{
#define E(e) @{ e, #e @},
E(ENOENT)
E(EINVAL)
E(ENOMEM)
#undef E
@{ 0, NULL @}
@};
static char s[sizeof(int) * 8 + 3];
int i;
for(i = 0; map[i].s; i++) @{
if(map[i].e == e)
return map[i].s;
@}
sprintf(s, "[%d]", e);
return s;
@}
static int parse(const char* str)
@{
size_t no = 0;
size_t pcount = 0;
int status;
char buf[BUFSIZ];
address_t address = NULL;
status = address_create(&address, str);
address_get_count(address, &pcount);
if(status) @{
printf("%s=> error %s\n\n", str, err_name(status));
return 0;
@} else @{
printf("%s=> pcount %d\n", str, pcount);
@}
for(no = 1; no <= pcount; no++) @{
size_t got = 0;
int isgroup;
address_is_group(address, no, &isgroup);
printf("%d ", no);
if(isgroup) @{
address_get_personal(address, no, buf, sizeof(buf), &got);
printf("group <%s>\n", buf);
@} else @{
address_get_email(address, no, buf, sizeof(buf), 0);
printf("email <%s>\n", buf);
@}
address_get_personal(address, no, buf, sizeof(buf), &got);
if(got && !isgroup) printf(" personal <%s>\n", buf);
address_get_comments(address, no, buf, sizeof(buf), &got);
if(got) printf(" comments <%s>\n", buf);
address_get_local_part(address, no, buf, sizeof(buf), &got);
if(got) @{
printf(" local-part <%s>", buf);
address_get_domain(address, no, buf, sizeof(buf), &got);
if(got) printf(" domain <%s>", buf);
printf("\n");
@}
address_get_route(address, no, buf, sizeof(buf), &got);
if(got) printf(" route <%s>\n", buf);
@}
address_destroy(&address);
printf("\n");
return 0;
@}
static int parseinput(void)
@{
char buf[BUFSIZ];
while(fgets(buf, sizeof(buf), stdin) != 0) @{
buf[strlen(buf) - 1] = 0;
parse(buf);
@}
return 0;
@}
int main(int argc, const char *argv[])
@{
argc = 1;
if(!argv[argc]) @{
return parseinput();
@}
for(; argv[argc]; argc++) @{
if(strcmp(argv[argc], "-") == 0) @{
parseinput();
@} else @{
parse(argv[argc]);
@}
@}
return 0;
@}
Please
register
or
sign in
to post a comment