diff --git a/src/account/Makefile b/src/account/Makefile index 9c5f459..4195d32 100644 --- a/src/account/Makefile +++ b/src/account/Makefile @@ -1,4 +1,4 @@ -TARGETS = mbox.a mbox.so +TARGETS = mbox.a mbox.so pop3.a pop3.so imap4.a imap4.so PREFIX = /usr/local DESTDIR = LIBDIR = $(PREFIX)/lib @@ -20,11 +20,33 @@ mbox.a: $(mbox_OBJS) mbox.so: $(mbox_OBJS) $(LD) -o mbox.so $(mbox_OBJS) +pop3_OBJS = pop3.o +pop3_CFLAGS = $(CFLAGSF) $(CFLAGS) +pop3.a: $(pop3_OBJS) + $(AR) pop3.a $(pop3_OBJS) + $(RANLIB) pop3.a +pop3.so: $(pop3_OBJS) + $(LD) -o pop3.so $(pop3_OBJS) + +imap4_OBJS = imap4.o +imap4_CFLAGS = $(CFLAGSF) $(CFLAGS) +imap4.a: $(imap4_OBJS) + $(AR) imap4.a $(imap4_OBJS) + $(RANLIB) imap4.a +imap4.so: $(imap4_OBJS) + $(LD) -o imap4.so $(imap4_OBJS) + mbox.o: mbox.c $(CC) $(mbox_CFLAGS) -c mbox.c +pop3.o: pop3.c + $(CC) $(pop3_CFLAGS) -c pop3.c + +imap4.o: imap4.c + $(CC) $(imap4_CFLAGS) -c imap4.c + clean: - $(RM) $(mbox_OBJS) + $(RM) $(mbox_OBJS) $(pop3_OBJS) $(imap4_OBJS) distclean: clean $(RM) $(TARGETS) @@ -33,9 +55,17 @@ install: all $(MKDIR) $(DESTDIR)$(LIBDIR) $(INSTALL) -m 0644 mbox.a $(DESTDIR)$(LIBDIR)/mbox.a $(INSTALL) -m 0755 mbox.so $(DESTDIR)$(LIBDIR)/mbox.so + $(INSTALL) -m 0644 pop3.a $(DESTDIR)$(LIBDIR)/pop3.a + $(INSTALL) -m 0755 pop3.so $(DESTDIR)$(LIBDIR)/pop3.so + $(INSTALL) -m 0644 imap4.a $(DESTDIR)$(LIBDIR)/imap4.a + $(INSTALL) -m 0755 imap4.so $(DESTDIR)$(LIBDIR)/imap4.so uninstall: $(RM) $(DESTDIR)$(LIBDIR)/mbox.a $(RM) $(DESTDIR)$(LIBDIR)/mbox.so + $(RM) $(DESTDIR)$(LIBDIR)/pop3.a + $(RM) $(DESTDIR)$(LIBDIR)/pop3.so + $(RM) $(DESTDIR)$(LIBDIR)/imap4.a + $(RM) $(DESTDIR)$(LIBDIR)/imap4.so .PHONY: all clean distclean install uninstall diff --git a/src/account/account.h b/src/account/account.h index 497309a..c726c17 100644 --- a/src/account/account.h +++ b/src/account/account.h @@ -11,7 +11,10 @@ typedef enum _AccountConfigType { ACT_NONE = 0, - ACT_STRING + ACT_STRING, + ACT_PASSWORD, + ACT_UINT16, + ACT_BOOLEAN } AccountConfigType; typedef struct _AccountConfig { diff --git a/src/account/imap4.c b/src/account/imap4.c new file mode 100644 index 0000000..9aa20a9 --- /dev/null +++ b/src/account/imap4.c @@ -0,0 +1,48 @@ +/* $Id$ */ +/* Copyright (c) 2006 The DeforaOS Project */ + + + +#include +#include "account.h" + + +/* variables */ +char const imap4_name[] = "IMAP4 server"; + +AccountConfig imap4_config[] = +{ + { "username", "Username", ACT_STRING, NULL }, + { "password", "Password", ACT_PASSWORD, NULL }, + { "hostname", "Server hostname", ACT_STRING, NULL }, + { "port", "Server port", ACT_UINT16, NULL }, + { "ssl", "Use SSL", ACT_BOOLEAN, NULL }, + { "sent", "Sent mails folder", ACT_NONE, NULL }, + { "draft", "Draft mails folder", ACT_NONE, NULL }, + { NULL, NULL, ACT_NONE, NULL } +}; + + +/* functions */ +AccountFolder ** imap4_folders(void) +{ + /* FIXME implement */ + static AccountFolder inbox = { AF_INBOX, "Inbox" }; + static AccountFolder drafts = { AF_DRAFTS, "Drafts"}; + static AccountFolder sent = { AF_SENT, "Sent" }; + static AccountFolder trash = { AF_TRASH, "Trash" }; + static AccountFolder * folders[] = + { + &inbox, &drafts, &sent, &trash, NULL + }; + + return folders; +} + + +AccountPlugin account_plugin = +{ + imap4_name, + imap4_config, + imap4_folders +}; diff --git a/src/account/mbox.c b/src/account/mbox.c index 2fc3ff0..592eeb0 100644 --- a/src/account/mbox.c +++ b/src/account/mbox.c @@ -8,7 +8,7 @@ /* variables */ -char const mbox_name[] = "Local folders (MBOX)"; +char const mbox_name[] = "Local folder"; AccountConfig mbox_config[] = { diff --git a/src/account/pop3.c b/src/account/pop3.c new file mode 100644 index 0000000..92ae21d --- /dev/null +++ b/src/account/pop3.c @@ -0,0 +1,46 @@ +/* $Id$ */ +/* Copyright (c) 2006 The DeforaOS Project */ + + + +#include +#include "account.h" + + +/* variables */ +char const pop3_name[] = "POP3 server"; + +AccountConfig pop3_config[] = +{ + { "username", "Username", ACT_STRING, NULL }, + { "password", "Password", ACT_PASSWORD, NULL }, + { "hostname", "Server hostname", ACT_STRING, NULL }, + { "port", "Server port", ACT_UINT16, NULL }, + { "ssl", "Use SSL", ACT_BOOLEAN, NULL }, + { "delete", "Delete read mails on server", + ACT_BOOLEAN, NULL }, + { NULL, NULL, ACT_NONE, NULL } +}; + + +/* functions */ +AccountFolder ** pop3_folders(void) +{ + /* FIXME implement */ + static AccountFolder inbox = { AF_INBOX, "Inbox" }; + static AccountFolder trash = { AF_TRASH, "Trash" }; + static AccountFolder * folders[] = + { + &inbox, &trash, NULL + }; + + return folders; +} + + +AccountPlugin account_plugin = +{ + pop3_name, + pop3_config, + pop3_folders +}; diff --git a/src/account/project.conf b/src/account/project.conf index 0988973..69b8dc8 100644 --- a/src/account/project.conf +++ b/src/account/project.conf @@ -1,5 +1,13 @@ -targets=mbox +targets=mbox,pop3,imap4 [mbox] type=library sources=mbox.c + +[pop3] +type=library +sources=pop3.c + +[imap4] +type=library +sources=imap4.c