You can subscribe to this list here.
2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(65) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
(61) |
Feb
(111) |
Mar
(98) |
Apr
(33) |
May
(31) |
Jun
(64) |
Jul
(35) |
Aug
(50) |
Sep
(170) |
Oct
(89) |
Nov
(72) |
Dec
(214) |
2002 |
Jan
(74) |
Feb
(21) |
Mar
(5) |
Apr
(4) |
May
(61) |
Jun
(13) |
Jul
(3) |
Aug
(39) |
Sep
(14) |
Oct
(80) |
Nov
(22) |
Dec
(76) |
2003 |
Jan
(14) |
Feb
(59) |
Mar
(7) |
Apr
(5) |
May
|
Jun
(4) |
Jul
(6) |
Aug
(78) |
Sep
(68) |
Oct
(23) |
Nov
(25) |
Dec
(107) |
2004 |
Jan
(82) |
Feb
(75) |
Mar
(13) |
Apr
(9) |
May
(21) |
Jun
(2) |
Jul
(1) |
Aug
(52) |
Sep
(23) |
Oct
(15) |
Nov
(6) |
Dec
(60) |
2005 |
Jan
(125) |
Feb
(94) |
Mar
(32) |
Apr
(68) |
May
|
Jun
|
Jul
(11) |
Aug
(3) |
Sep
(15) |
Oct
(3) |
Nov
|
Dec
(58) |
2006 |
Jan
(46) |
Feb
(29) |
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(9) |
Dec
(9) |
2007 |
Jan
(62) |
Feb
(60) |
Mar
|
Apr
|
May
|
Jun
(2) |
Jul
(6) |
Aug
(3) |
Sep
(4) |
Oct
(2) |
Nov
(4) |
Dec
(46) |
2008 |
Jan
(3) |
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(2) |
Sep
|
Oct
|
Nov
(10) |
Dec
(49) |
2009 |
Jan
(14) |
Feb
(12) |
Mar
(37) |
Apr
(8) |
May
|
Jun
|
Jul
|
Aug
(6) |
Sep
(25) |
Oct
(48) |
Nov
(7) |
Dec
(45) |
2010 |
Jan
(15) |
Feb
(14) |
Mar
(7) |
Apr
|
May
|
Jun
(1) |
Jul
(1) |
Aug
(1) |
Sep
|
Oct
(28) |
Nov
|
Dec
(44) |
2011 |
Jan
(22) |
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
(70) |
2012 |
Jan
(6) |
Feb
|
Mar
|
Apr
|
May
(2) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(128) |
2013 |
Jan
(8) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(2) |
Nov
(2) |
Dec
(150) |
2014 |
Jan
(70) |
Feb
(44) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Sebastian B. <sb...@us...> - 2013-12-24 09:08:26
|
Update of /cvsroot/simplemail/simplemail/tests In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv30324/tests Modified Files: makefile Log Message: Also provide a userdb for dovecot. Index: makefile =================================================================== RCS file: /cvsroot/simplemail/simplemail/tests/makefile,v retrieving revision 1.30 retrieving revision 1.31 diff -u -d -r1.30 -r1.31 --- makefile 24 Dec 2013 09:08:07 -0000 1.30 +++ makefile 24 Dec 2013 09:08:24 -0000 1.31 @@ -117,6 +117,7 @@ DOVECOT_URL=http://www.dovecot.org/releases/2.2/dovecot-2.2.9.tar.gz DOVECOT_TGZ=$(notdir $(DOVECOT_URL)) DOVECOT_DIR=$(DOVECOT_TGZ:%.tar.gz=%) +DOVECOT_ABSDIR=$(shell pwd)/$(DOVECOT_DIR) $(DOVECOT_TGZ): wget -N $(DOVECOT_URL) @@ -131,6 +132,7 @@ .PHONY: dovecot dovecot: dovecot-bin + mkdir -p $(DOVECOT_DIR)-root/home/test rm -Rf $(DOVECOT_DIR)-root/etc/dovecot cp -R dovecot-conf -Rf $(DOVECOT_DIR)-root/etc/dovecot echo 'default_internal_user = $(USER)' >>$(DOVECOT_DIR)-root/etc/dovecot/conf.d/00-default-user.conf @@ -139,6 +141,11 @@ echo ' driver = passwd-file' >>$(DOVECOT_DIR)-root/etc/dovecot/conf.d/00-passwd.conf echo ' args = $(shell readlink -f $(DOVECOT_DIR)-root/etc/dovecot/passwd)' >>$(DOVECOT_DIR)-root/etc/dovecot/conf.d/00-passwd.conf echo '}' >>$(DOVECOT_DIR)-root/etc/dovecot/conf.d/00-passwd.conf + echo 'userdb {' >>$(DOVECOT_DIR)-root/etc/dovecot/conf.d/00-passwd.conf + echo ' driver = passwd-file' >>$(DOVECOT_DIR)-root/etc/dovecot/conf.d/00-passwd.conf + echo ' args = $(shell readlink -f $(DOVECOT_DIR)-root/etc/dovecot/passwd)' >>$(DOVECOT_DIR)-root/etc/dovecot/conf.d/00-passwd.conf + echo '}' >>$(DOVECOT_DIR)-root/etc/dovecot/conf.d/00-passwd.conf + echo 'test:{plain}test::::$(DOVECOT_ABSDIR)-root/home/test::userdb_mail=maildir:~/Maildir' >$(DOVECOT_DIR)-root/etc/dovecot/passwd dovecot-conf: dovecot-bin cp -R $(DOVECOT_DIR)-root/share/doc/dovecot/example-config $(DOVECOT_DIR)-root/etc/dovecot |
From: Sebastian B. <sb...@us...> - 2013-12-24 09:08:10
|
Update of /cvsroot/simplemail/simplemail/tests/dovecot-conf In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv30290/tests/dovecot-conf Added Files: passwd Log Message: Added passwd file and adjust the dovecot settings accordingly. --- NEW FILE: passwd --- test:{PLAIN}test |
From: Sebastian B. <sb...@us...> - 2013-12-24 09:07:44
|
Update of /cvsroot/simplemail/simplemail/tests In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv30215/tests Added Files: .gitignore Log Message: Link from .cvsignore to .gitignore. --- NEW FILE: .gitignore --- .DAV a.out error *stubs.c test-objs *_unittest *.o *_table.c written.eml libsimplemail.a written2.eml memleaks-*.xml test-profile imap-profile |
From: Sebastian B. <sb...@us...> - 2013-12-24 09:07:18
|
Update of /cvsroot/simplemail/simplemail/tests/dovecot-conf/conf.d In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv30166/tests/dovecot-conf/conf.d Added Files: 10-chroot.conf Log Message: Added chroot config to use no chroot. --- NEW FILE: 10-chroot.conf --- service anvil { chroot = } service imap-login { chroot = } service pop3-login { chroot = } |
From: Sebastian B. <sb...@us...> - 2013-12-24 09:06:42
|
Update of /cvsroot/simplemail/simplemail/tests/dovecot-conf/conf.d In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv30077/tests/dovecot-conf/conf.d Modified Files: 10-auth.conf Log Message: Omit the auth-system.conf.ext file. Index: 10-auth.conf =================================================================== RCS file: /cvsroot/simplemail/simplemail/tests/dovecot-conf/conf.d/10-auth.conf,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- 10-auth.conf 24 Dec 2013 09:04:58 -0000 1.1 +++ 10-auth.conf 24 Dec 2013 09:06:40 -0000 1.2 @@ -119,7 +119,7 @@ #!include auth-deny.conf.ext #!include auth-master.conf.ext -!include auth-system.conf.ext +#!include auth-system.conf.ext #!include auth-sql.conf.ext #!include auth-ldap.conf.ext #!include auth-passwdfile.conf.ext |
From: Sebastian B. <sb...@us...> - 2013-12-24 09:06:12
|
Update of /cvsroot/simplemail/simplemail/tests/dovecot-conf/conf.d In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv30034/tests/dovecot-conf/conf.d Modified Files: 10-master.conf Log Message: Use non-root-privileged ports. Index: 10-master.conf =================================================================== RCS file: /cvsroot/simplemail/simplemail/tests/dovecot-conf/conf.d/10-master.conf,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- 10-master.conf 24 Dec 2013 09:04:59 -0000 1.1 +++ 10-master.conf 24 Dec 2013 09:06:10 -0000 1.2 @@ -17,6 +17,7 @@ service imap-login { inet_listener imap { #port = 143 + port = 10143 } inet_listener imaps { #port = 993 @@ -38,6 +39,7 @@ service pop3-login { inet_listener pop3 { #port = 110 + port = 10110 } inet_listener pop3s { #port = 995 |
From: Sebastian B. <sb...@us...> - 2013-12-24 09:05:57
|
Update of /cvsroot/simplemail/simplemail/tests/dovecot-conf/conf.d In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv29931/tests/dovecot-conf/conf.d Modified Files: 10-ssl.conf Log Message: Disabled ssl for the first attempt. Index: 10-ssl.conf =================================================================== RCS file: /cvsroot/simplemail/simplemail/tests/dovecot-conf/conf.d/10-ssl.conf,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- 10-ssl.conf 24 Dec 2013 09:04:59 -0000 1.1 +++ 10-ssl.conf 24 Dec 2013 09:05:54 -0000 1.2 @@ -4,13 +4,14 @@ # SSL/TLS support: yes, no, required. <doc/wiki/SSL.txt> #ssl = yes +ssl = no # PEM encoded X.509 SSL/TLS certificate and private key. They're opened before # dropping root privileges, so keep the key file unreadable by anyone but # root. Included doc/mkcert.sh can be used to easily generate self-signed # certificate, just make sure to update the domains in dovecot-openssl.cnf -ssl_cert = </etc/ssl/certs/dovecot.pem -ssl_key = </etc/ssl/private/dovecot.pem +#ssl_cert = </etc/ssl/certs/dovecot.pem +#ssl_key = </etc/ssl/private/dovecot.pem # If key file is password protected, give the password here. Alternatively # give it when starting dovecot with -p parameter. Since this file is often |
From: Sebastian B. <sb...@us...> - 2013-12-24 09:05:41
|
Update of /cvsroot/simplemail/simplemail/tests/dovecot-conf In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv29899/tests/dovecot-conf Modified Files: dovecot.conf Log Message: Enable IMAP and POP3 protocols. Index: dovecot.conf =================================================================== RCS file: /cvsroot/simplemail/simplemail/tests/dovecot-conf/dovecot.conf,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- dovecot.conf 24 Dec 2013 09:05:00 -0000 1.1 +++ dovecot.conf 24 Dec 2013 09:05:39 -0000 1.2 @@ -22,6 +22,7 @@ # Protocols we want to be serving. #protocols = imap pop3 lmtp +protocols = imap pop3 # A comma separated list of IPs or hosts where to listen in for connections. # "*" listens in all IPv4 interfaces, "::" listens in all IPv6 interfaces. |
From: Sebastian B. <sb...@us...> - 2013-12-24 09:05:26
|
Update of /cvsroot/simplemail/simplemail/tests In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv29857/tests Modified Files: makefile Log Message: Added some more targets to copy (and generate) the dovecot config. We set the default users as recommened by https://github.com/bdraco/dovecot/blob/master/doc/wiki/HowTo.Rootless.txt Index: makefile =================================================================== RCS file: /cvsroot/simplemail/simplemail/tests/makefile,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- makefile 24 Dec 2013 08:59:52 -0000 1.28 +++ makefile 24 Dec 2013 09:05:24 -0000 1.29 @@ -126,5 +126,15 @@ tar -xzf $(DOVECOT_TGZ) cd $(DOVECOT_DIR); ./configure --prefix=$(shell pwd)/$(DOVECOT_DIR)-root; $(MAKE) ; $(MAKE) install +.PHONY: dovecot-bin +dovecot-bin: $(DOVECOT_DIR)-root + .PHONY: dovecot -dovecot: $(DOVECOT_DIR)-root +dovecot: dovecot-bin + rm -Rf $(DOVECOT_DIR)-root/etc/dovecot + cp -R dovecot-conf -Rf $(DOVECOT_DIR)-root/etc/dovecot + echo 'default_internal_user = $(USER)' >>$(DOVECOT_DIR)-root/etc/dovecot/conf.d/00-default-user.conf + echo 'default_login_user = $(USER)' >>$(DOVECOT_DIR)-root/etc/dovecot/conf.d/00-default-user.conf + +dovecot-conf: dovecot-bin + cp -R $(DOVECOT_DIR)-root/share/doc/dovecot/example-config $(DOVECOT_DIR)-root/etc/dovecot |
From: Sebastian B. <sb...@us...> - 2013-12-24 09:05:02
|
Update of /cvsroot/simplemail/simplemail/tests/dovecot-conf In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv29795/tests/dovecot-conf Added Files: dovecot-dict-auth.conf.ext dovecot-dict-sql.conf.ext dovecot-ldap.conf.ext dovecot-sql.conf.ext dovecot.conf Log Message: Added initial dovecot config. --- NEW FILE: dovecot.conf --- ## Dovecot configuration file # If you're in a hurry, see http://wiki2.dovecot.org/QuickConfiguration # "doveconf -n" command gives a clean output of the changed settings. Use it # instead of copy&pasting files when posting to the Dovecot mailing list. # '#' character and everything after it is treated as comments. Extra spaces # and tabs are ignored. If you want to use either of these explicitly, put the # value inside quotes, eg.: key = "# char and trailing whitespace " # Most (but not all) settings can be overridden by different protocols and/or # source/destination IPs by placing the settings inside sections, for example: # protocol imap { }, local 127.0.0.1 { }, remote 10.0.0.0/8 { } # Default values are shown for each setting, it's not required to uncomment # those. These are exceptions to this though: No sections (e.g. namespace {}) # or plugin settings are added by default, they're listed only as examples. # Paths are also just examples with the real defaults being based on configure # options. The paths listed here are for configure --prefix=/usr # --sysconfdir=/etc --localstatedir=/var # Protocols we want to be serving. #protocols = imap pop3 lmtp # A comma separated list of IPs or hosts where to listen in for connections. # "*" listens in all IPv4 interfaces, "::" listens in all IPv6 interfaces. # If you want to specify non-default ports or anything more complex, # edit conf.d/master.conf. #listen = *, :: # Base directory where to store runtime data. #base_dir = /var/run/dovecot/ # Name of this instance. In multi-instance setup doveadm and other commands # can use -i <instance_name> to select which instance is used (an alternative # to -c <config_path>). The instance name is also added to Dovecot processes # in ps output. #instance_name = dovecot # Greeting message for clients. #login_greeting = Dovecot ready. # Space separated list of trusted network ranges. Connections from these # IPs are allowed to override their IP addresses and ports (for logging and # for authentication checks). disable_plaintext_auth is also ignored for # these networks. Typically you'd specify your IMAP proxy servers here. #login_trusted_networks = # Space separated list of login access check sockets (e.g. tcpwrap) #login_access_sockets = # With proxy_maybe=yes if proxy destination matches any of these IPs, don't do # proxying. This isn't necessary normally, but may be useful if the destination # IP is e.g. a load balancer's IP. #auth_proxy_self = # Show more verbose process titles (in ps). Currently shows user name and # IP address. Useful for seeing who are actually using the IMAP processes # (eg. shared mailboxes or if same uid is used for multiple accounts). #verbose_proctitle = no # Should all processes be killed when Dovecot master process shuts down. # Setting this to "no" means that Dovecot can be upgraded without # forcing existing client connections to close (although that could also be # a problem if the upgrade is e.g. because of a security fix). #shutdown_clients = yes # If non-zero, run mail commands via this many connections to doveadm server, # instead of running them directly in the same process. #doveadm_worker_count = 0 # UNIX socket or host:port used for connecting to doveadm server #doveadm_socket_path = doveadm-server # Space separated list of environment variables that are preserved on Dovecot # startup and passed down to all of its child processes. You can also give # key=value pairs to always set specific settings. #import_environment = TZ ## ## Dictionary server settings ## # Dictionary can be used to store key=value lists. This is used by several # plugins. The dictionary can be accessed either directly or though a # dictionary server. The following dict block maps dictionary names to URIs # when the server is used. These can then be referenced using URIs in format # "proxy::<name>". dict { #quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext #expire = sqlite:/etc/dovecot/dovecot-dict-sql.conf.ext } # Most of the actual configuration gets included below. The filenames are # first sorted by their ASCII value and parsed in that order. The 00-prefixes # in filenames are intended to make it easier to understand the ordering. !include conf.d/*.conf # A config file can also tried to be included without giving an error if # it's not found: !include_try local.conf --- NEW FILE: dovecot-dict-sql.conf.ext --- # This file is commonly accessed via dict {} section in dovecot.conf #connect = host=localhost dbname=mails user=testuser password=pass # CREATE TABLE quota ( # username varchar(100) not null, # bytes bigint not null default 0, # messages integer not null default 0, # primary key (username) # ); map { pattern = priv/quota/storage table = quota username_field = username value_field = bytes } map { pattern = priv/quota/messages table = quota username_field = username value_field = messages } # CREATE TABLE expires ( # username varchar(100) not null, # mailbox varchar(255) not null, # expire_stamp integer not null, # primary key (username, mailbox) # ); map { pattern = shared/expire/$user/$mailbox table = expires value_field = expire_stamp fields { username = $user mailbox = $mailbox } } --- NEW FILE: dovecot-sql.conf.ext --- # This file is commonly accessed via passdb {} or userdb {} section in # conf.d/auth-sql.conf.ext # This file is opened as root, so it should be owned by root and mode 0600. # # http://wiki2.dovecot.org/AuthDatabase/SQL # # For the sql passdb module, you'll need a database with a table that # contains fields for at least the username and password. If you want to # use the user@domain syntax, you might want to have a separate domain # field as well. # # If your users all have the same uig/gid, and have predictable home # directories, you can use the static userdb module to generate the home # dir based on the username and domain. In this case, you won't need fields # for home, uid, or gid in the database. # # If you prefer to use the sql userdb module, you'll want to add fields # for home, uid, and gid. Here is an example table: # # CREATE TABLE users ( # username VARCHAR(128) NOT NULL, # domain VARCHAR(128) NOT NULL, # password VARCHAR(64) NOT NULL, # home VARCHAR(255) NOT NULL, # uid INTEGER NOT NULL, # gid INTEGER NOT NULL, # active CHAR(1) DEFAULT 'Y' NOT NULL # ); # Database driver: mysql, pgsql, sqlite #driver = # Database connection string. This is driver-specific setting. # # HA / round-robin load-balancing is supported by giving multiple host # settings, like: host=sql1.host.org host=sql2.host.org # # pgsql: # For available options, see the PostgreSQL documention for the # PQconnectdb function of libpq. # Use maxconns=n (default 5) to change how many connections Dovecot can # create to pgsql. # # mysql: # Basic options emulate PostgreSQL option names: # host, port, user, password, dbname # # But also adds some new settings: # client_flags - See MySQL manual # ssl_ca, ssl_ca_path - Set either one or both to enable SSL # ssl_cert, ssl_key - For sending client-side certificates to server # ssl_cipher - Set minimum allowed cipher security (default: HIGH) # option_file - Read options from the given file instead of # the default my.cnf location # option_group - Read options from the given group (default: client) # # You can connect to UNIX sockets by using host: host=/var/run/mysql.sock # Note that currently you can't use spaces in parameters. # # sqlite: # The path to the database file. # # Examples: # connect = host=192.168.1.1 dbname=users # connect = host=sql.example.com dbname=virtual user=virtual password=blarg # connect = /etc/dovecot/authdb.sqlite # #connect = # Default password scheme. # # List of supported schemes is in # http://wiki2.dovecot.org/Authentication/PasswordSchemes # #default_pass_scheme = MD5 # passdb query to retrieve the password. It can return fields: # password - The user's password. This field must be returned. # user - user@domain from the database. Needed with case-insensitive lookups. # username and domain - An alternative way to represent the "user" field. # # The "user" field is often necessary with case-insensitive lookups to avoid # e.g. "name" and "nAme" logins creating two different mail directories. If # your user and domain names are in separate fields, you can return "username" # and "domain" fields instead of "user". # # The query can also return other fields which have a special meaning, see # http://wiki2.dovecot.org/PasswordDatabase/ExtraFields # # Commonly used available substitutions (see http://wiki2.dovecot.org/Variables # for full list): # %u = entire user@domain # %n = user part of user@domain # %d = domain part of user@domain # # Note that these can be used only as input to SQL query. If the query outputs # any of these substitutions, they're not touched. Otherwise it would be # difficult to have eg. usernames containing '%' characters. # # Example: # password_query = SELECT userid AS user, pw AS password \ # FROM users WHERE userid = '%u' AND active = 'Y' # #password_query = \ # SELECT username, domain, password \ # FROM users WHERE username = '%n' AND domain = '%d' # userdb query to retrieve the user information. It can return fields: # uid - System UID (overrides mail_uid setting) # gid - System GID (overrides mail_gid setting) # home - Home directory # mail - Mail location (overrides mail_location setting) # # None of these are strictly required. If you use a single UID and GID, and # home or mail directory fits to a template string, you could use userdb static # instead. For a list of all fields that can be returned, see # http://wiki2.dovecot.org/UserDatabase/ExtraFields # # Examples: # user_query = SELECT home, uid, gid FROM users WHERE userid = '%u' # user_query = SELECT dir AS home, user AS uid, group AS gid FROM users where userid = '%u' # user_query = SELECT home, 501 AS uid, 501 AS gid FROM users WHERE userid = '%u' # #user_query = \ # SELECT home, uid, gid \ # FROM users WHERE username = '%n' AND domain = '%d' # If you wish to avoid two SQL lookups (passdb + userdb), you can use # userdb prefetch instead of userdb sql in dovecot.conf. In that case you'll # also have to return userdb fields in password_query prefixed with "userdb_" # string. For example: #password_query = \ # SELECT userid AS user, password, \ # home AS userdb_home, uid AS userdb_uid, gid AS userdb_gid \ # FROM users WHERE userid = '%u' # Query to get a list of all usernames. #iterate_query = SELECT username AS user FROM users --- NEW FILE: dovecot-ldap.conf.ext --- # This file is commonly accessed via passdb {} or userdb {} section in # conf.d/auth-ldap.conf.ext # This file is opened as root, so it should be owned by root and mode 0600. # # http://wiki2.dovecot.org/AuthDatabase/LDAP # # NOTE: If you're not using authentication binds, you'll need to give # dovecot-auth read access to userPassword field in the LDAP server. # With OpenLDAP this is done by modifying /etc/ldap/slapd.conf. There should # already be something like this: # access to attribute=userPassword # by dn="<dovecot's dn>" read # add this # by anonymous auth # by self write # by * none # Space separated list of LDAP hosts to use. host:port is allowed too. #hosts = # LDAP URIs to use. You can use this instead of hosts list. Note that this # setting isn't supported by all LDAP libraries. #uris = # Distinguished Name - the username used to login to the LDAP server. # Leave it commented out to bind anonymously (useful with auth_bind=yes). #dn = # Password for LDAP server, if dn is specified. #dnpass = # Use SASL binding instead of the simple binding. Note that this changes # ldap_version automatically to be 3 if it's lower. Also note that SASL binds # and auth_bind=yes don't work together. #sasl_bind = no # SASL mechanism name to use. #sasl_mech = # SASL realm to use. #sasl_realm = # SASL authorization ID, ie. the dnpass is for this "master user", but the # dn is still the logged in user. Normally you want to keep this empty. #sasl_authz_id = # Use TLS to connect to the LDAP server. #tls = no # TLS options, currently supported only with OpenLDAP: #tls_ca_cert_file = #tls_ca_cert_dir = #tls_cipher_suite = # TLS cert/key is used only if LDAP server requires a client certificate. #tls_cert_file = #tls_key_file = # Valid values: never, hard, demand, allow, try #tls_require_cert = # Use the given ldaprc path. #ldaprc_path = # LDAP library debug level as specified by LDAP_DEBUG_* in ldap_log.h. # -1 = everything. You may need to recompile OpenLDAP with debugging enabled # to get enough output. #debug_level = 0 # Use authentication binding for verifying password's validity. This works by # logging into LDAP server using the username and password given by client. # The pass_filter is used to find the DN for the user. Note that the pass_attrs # is still used, only the password field is ignored in it. Before doing any # search, the binding is switched back to the default DN. #auth_bind = no # If authentication binding is used, you can save one LDAP request per login # if users' DN can be specified with a common template. The template can use # the standard %variables (see user_filter). Note that you can't # use any pass_attrs if you use this setting. # # If you use this setting, it's a good idea to use a different # dovecot-ldap.conf.ext for userdb (it can even be a symlink, just as long as # the filename is different in userdb's args). That way one connection is used # only for LDAP binds and another connection is used for user lookups. # Otherwise the binding is changed to the default DN before each user lookup. # # For example: # auth_bind_userdn = cn=%u,ou=people,o=org # #auth_bind_userdn = # LDAP protocol version to use. Likely 2 or 3. #ldap_version = 3 # LDAP base. %variables can be used here. # For example: dc=mail, dc=example, dc=org base = # Dereference: never, searching, finding, always #deref = never # Search scope: base, onelevel, subtree #scope = subtree # User attributes are given in LDAP-name=dovecot-internal-name list. The # internal names are: # uid - System UID # gid - System GID # home - Home directory # mail - Mail location # # There are also other special fields which can be returned, see # http://wiki2.dovecot.org/UserDatabase/ExtraFields #user_attrs = homeDirectory=home,uidNumber=uid,gidNumber=gid # Filter for user lookup. Some variables can be used (see # http://wiki2.dovecot.org/Variables for full list): # %u - username # %n - user part in user@domain, same as %u if there's no domain # %d - domain part in user@domain, empty if user there's no domain #user_filter = (&(objectClass=posixAccount)(uid=%u)) # Password checking attributes: # user: Virtual user name (user@domain), if you wish to change the # user-given username to something else # password: Password, may optionally start with {type}, eg. {crypt} # There are also other special fields which can be returned, see # http://wiki2.dovecot.org/PasswordDatabase/ExtraFields #pass_attrs = uid=user,userPassword=password # If you wish to avoid two LDAP lookups (passdb + userdb), you can use # userdb prefetch instead of userdb ldap in dovecot.conf. In that case you'll # also have to include user_attrs in pass_attrs field prefixed with "userdb_" # string. For example: #pass_attrs = uid=user,userPassword=password,\ # homeDirectory=userdb_home,uidNumber=userdb_uid,gidNumber=userdb_gid # Filter for password lookups #pass_filter = (&(objectClass=posixAccount)(uid=%u)) # Attributes and filter to get a list of all users #iterate_attrs = uid=user #iterate_filter = (objectClass=posixAccount) # Default password scheme. "{scheme}" before password overrides this. # List of supported schemes is in: http://wiki2.dovecot.org/Authentication #default_pass_scheme = CRYPT --- NEW FILE: dovecot-dict-auth.conf.ext --- # This file is commonly accessed via dict {} section in dovecot.conf # Dictionary URI #uri = # Key for passdb lookups password_key = dovecot/passdb/%u # Key for userdb lookups user_key = dovecot/userdb/%u # How to parse the value for key=value pairs. Currently we support only JSON # format with { "key": "value", ... } object. #value_format = json # Username iteration prefix. Keys under this are assumed to contain usernames. iterate_prefix = dovecot/userdb/ # Should iteration be disabled for this userdb? If this userdb acts only as a # cache there's no reason to try to iterate the (partial & duplicate) users. #iterate_disable = no # Default password scheme default_pass_scheme = MD5 |
From: Sebastian B. <sb...@us...> - 2013-12-24 09:00:41
|
Update of /cvsroot/simplemail/simplemail/tests/dovecot-conf/conf.d In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv29177/tests/dovecot-conf/conf.d Log Message: Directory /cvsroot/simplemail/simplemail/tests/dovecot-conf/conf.d added to the repository |
From: Sebastian B. <sb...@us...> - 2013-12-24 09:00:13
|
Update of /cvsroot/simplemail/simplemail/tests/dovecot-conf In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv29140/tests/dovecot-conf Log Message: Directory /cvsroot/simplemail/simplemail/tests/dovecot-conf added to the repository |
From: Sebastian B. <sb...@us...> - 2013-12-24 08:59:54
|
Update of /cvsroot/simplemail/simplemail/tests In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv29046/tests Modified Files: makefile Log Message: Made a further temp target. Index: makefile =================================================================== RCS file: /cvsroot/simplemail/simplemail/tests/makefile,v retrieving revision 1.27 retrieving revision 1.28 diff -u -d -r1.27 -r1.28 --- makefile 24 Dec 2013 08:59:37 -0000 1.27 +++ makefile 24 Dec 2013 08:59:52 -0000 1.28 @@ -121,8 +121,10 @@ $(DOVECOT_TGZ): wget -N $(DOVECOT_URL) -.PHONY: dovecot -dovecot: $(DOVECOT_TGZ) +$(DOVECOT_DIR)-root: $(DOVECOT_TGZ) rm -Rf $(DOVECOT_DIR) tar -xzf $(DOVECOT_TGZ) - cd $(DOVECOT_DIR); ./configure --prefix=$(shell pwd)/$(DOVECOT_DIR)-root; $(MAKE) ; $(MAKE) install \ No newline at end of file + cd $(DOVECOT_DIR); ./configure --prefix=$(shell pwd)/$(DOVECOT_DIR)-root; $(MAKE) ; $(MAKE) install + +.PHONY: dovecot +dovecot: $(DOVECOT_DIR)-root |
From: Sebastian B. <sb...@us...> - 2013-12-24 08:59:39
|
Update of /cvsroot/simplemail/simplemail/tests In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv29011/tests Modified Files: makefile Log Message: Configure, make, and instal dovecot. Index: makefile =================================================================== RCS file: /cvsroot/simplemail/simplemail/tests/makefile,v retrieving revision 1.26 retrieving revision 1.27 diff -u -d -r1.26 -r1.27 --- makefile 24 Dec 2013 08:59:19 -0000 1.26 +++ makefile 24 Dec 2013 08:59:37 -0000 1.27 @@ -125,3 +125,4 @@ dovecot: $(DOVECOT_TGZ) rm -Rf $(DOVECOT_DIR) tar -xzf $(DOVECOT_TGZ) + cd $(DOVECOT_DIR); ./configure --prefix=$(shell pwd)/$(DOVECOT_DIR)-root; $(MAKE) ; $(MAKE) install \ No newline at end of file |
From: Sebastian B. <sb...@us...> - 2013-12-24 08:59:21
|
Update of /cvsroot/simplemail/simplemail/tests In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv28987/tests Modified Files: makefile Log Message: Begin work on dovecot part. Index: makefile =================================================================== RCS file: /cvsroot/simplemail/simplemail/tests/makefile,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- makefile 24 Dec 2013 08:56:21 -0000 1.25 +++ makefile 24 Dec 2013 08:59:19 -0000 1.26 @@ -111,3 +111,17 @@ .PHONY: clean clean: -rm -Rf test-objs $(TESTEXES) $(addsuffix .o,$(TESTEXES)) + + +# Dovecot support +DOVECOT_URL=http://www.dovecot.org/releases/2.2/dovecot-2.2.9.tar.gz +DOVECOT_TGZ=$(notdir $(DOVECOT_URL)) +DOVECOT_DIR=$(DOVECOT_TGZ:%.tar.gz=%) + +$(DOVECOT_TGZ): + wget -N $(DOVECOT_URL) + +.PHONY: dovecot +dovecot: $(DOVECOT_TGZ) + rm -Rf $(DOVECOT_DIR) + tar -xzf $(DOVECOT_TGZ) |
From: Sebastian B. <sb...@us...> - 2013-12-24 08:59:01
|
Update of /cvsroot/simplemail/simplemail In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv28744 Modified Files: print.c Log Message: Do not use a string as format string. Index: print.c =================================================================== RCS file: /cvsroot/simplemail/simplemail/print.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- print.c 19 Mar 2009 22:10:49 -0000 1.13 +++ print.c 24 Dec 2013 08:58:59 -0000 1.14 @@ -58,7 +58,7 @@ fprintf(fp,"%s <%s>",mb.phrase,mb.addr_spec); } else { - fprintf(fp, mb.addr_spec); + fprintf(fp, "%s", mb.addr_spec); } fprintf(fp, "\n"); |
From: Sebastian B. <sb...@us...> - 2013-12-24 08:58:43
|
Update of /cvsroot/simplemail/simplemail/tests In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv28720/tests Modified Files: imap2_unittest.c Log Message: Implemented some other functions to allow the unit test to be run. Index: imap2_unittest.c =================================================================== RCS file: /cvsroot/simplemail/simplemail/tests/imap2_unittest.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- imap2_unittest.c 24 Dec 2013 08:58:02 -0000 1.9 +++ imap2_unittest.c 24 Dec 2013 08:58:41 -0000 1.10 @@ -57,10 +57,20 @@ { } +void main_set_status_text(char *txt) +{ + printf("%s\n", txt); +} + void progmonwnd_update(void) { } +void statuswnd_set_status(char *text) +{ + printf("%s\n", text); +} + /*************************************************************/ void *test_imap_timer_callback(void *data) |
From: Sebastian B. <sb...@us...> - 2013-12-24 08:58:27
|
Update of /cvsroot/simplemail/simplemail/gtk In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv28684/gtk Modified Files: subthreads.c Log Message: Improved implementation of thread_call_parent_function_async_string(). Index: subthreads.c =================================================================== RCS file: /cvsroot/simplemail/simplemail/gtk/subthreads.c,v retrieving revision 1.30 retrieving revision 1.31 diff -u -d -r1.30 -r1.31 --- subthreads.c 24 Dec 2013 08:57:37 -0000 1.30 +++ subthreads.c 24 Dec 2013 08:58:25 -0000 1.31 @@ -570,24 +570,61 @@ /***************************************************************************************/ +/* FIXME: Note that if the args are not passed in a register, but e.g., on the stack this doesn't need to + * work depending on the ABI + */ +static gboolean thread_call_function_async_string_entry(gpointer user_data) +{ + struct thread_call_function_sync_data *data = (struct thread_call_function_sync_data*)user_data; + + switch (data->argcount) + { + case 0: data->function(); break; + case 1: ((int (*)(void*))data->function)(data->arg[0]);break; + case 2: ((int (*)(void*,void*))data->function)(data->arg[0],data->arg[1]);break; + case 3: ((int (*)(void*,void*,void*))data->function)(data->arg[0],data->arg[1],data->arg[2]);break; + case 4: ((int (*)(void*,void*,void*,void*))data->function)(data->arg[0],data->arg[1],data->arg[2],data->arg[3]);break; + case 5: ((int (*)(void*,void*,void*,void*,void*))data->function)(data->arg[0],data->arg[1],data->arg[2],data->arg[3],data->arg[4]);break; + case 6: ((int (*)(void*,void*,void*,void*,void*,void*))data->function)(data->arg[0],data->arg[1],data->arg[2],data->arg[3],data->arg[4],data->arg[5]);break; + } + + if (data->argcount) + free(data->arg[0]); + + return 0; +} + int thread_call_parent_function_async_string(void *function, int argcount, ...) { - struct ipc_message msg; + struct thread_call_function_sync_data *data; + int i; + + struct thread_s *thread; + va_list argptr; + thread = &main_thread; + + assert(argcount < THREAD_CALL_FUNCTION_SYNC_DATA_NUM_ARGS); + + if (!(data = malloc(sizeof(*data)))) + return 0; + memset(data, 0, sizeof(*data)); + va_start(argptr,argcount); - memset(&msg,0,sizeof(msg)); - msg.async = 1; - msg.string = 1; - msg.function = function; - msg.argcount = argcount; - if (argcount--) msg.arg1 = mystrdup(va_arg(argptr, char *)); - if (argcount--) msg.arg2 = va_arg(argptr, void *); - if (argcount--) msg.arg3 = va_arg(argptr, void *); - if (argcount--) msg.arg4 = va_arg(argptr, void *); - write(sockets[1],&msg,sizeof(msg)); - va_end(argptr); - return 0; + + data->function = (int (*)(void))function; + data->argcount = argcount; + + if (argcount) + data->arg[0] = strdup(va_arg(argptr, char *)); + + for (i=1; i < argcount; i++) + data->arg[i] = va_arg(argptr, void *); + + va_end (argptr); + + g_main_context_invoke(thread->context, thread_call_function_async_string_entry, data); } /***************************************************************************************/ |
From: Sebastian B. <sb...@us...> - 2013-12-24 08:58:05
|
Update of /cvsroot/simplemail/simplemail/tests In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv28645/tests Modified Files: imap2_unittest.c Log Message: More functions stubs added. Index: imap2_unittest.c =================================================================== RCS file: /cvsroot/simplemail/simplemail/tests/imap2_unittest.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- imap2_unittest.c 24 Dec 2013 08:57:19 -0000 1.8 +++ imap2_unittest.c 24 Dec 2013 08:58:02 -0000 1.9 @@ -39,6 +39,16 @@ { } +void myclosesocket(int fd) +{ + close(fd); +} + +long tcp_errno(void) +{ + return errno; +} + void main_set_progress(unsigned int max_work, unsigned int work) { } @@ -47,6 +57,9 @@ { } +void progmonwnd_update(void) +{ +} /*************************************************************/ |
From: Sebastian B. <sb...@us...> - 2013-12-24 08:57:39
|
Update of /cvsroot/simplemail/simplemail/gtk In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv28617/gtk Modified Files: subthreads.c Log Message: Implemented thread_push_function_delayed(). Mainly a copy'n'paste of thread_push_function(). Index: subthreads.c =================================================================== RCS file: /cvsroot/simplemail/simplemail/gtk/subthreads.c,v retrieving revision 1.29 retrieving revision 1.30 diff -u -d -r1.29 -r1.30 --- subthreads.c 24 Dec 2013 08:56:39 -0000 1.29 +++ subthreads.c 24 Dec 2013 08:57:37 -0000 1.30 @@ -487,6 +487,45 @@ /***************************************************************************************/ +int thread_push_function_delayed(int millis, void *function, int argcount, ...) +{ + struct thread_call_function_sync_data *data; + int i; + + va_list argptr; + + if (!(data = malloc(sizeof(*data)))) + return 0; + memset(data, 0, sizeof(*data)); + + assert(argcount < THREAD_CALL_FUNCTION_SYNC_DATA_NUM_ARGS); + + va_start(argptr,argcount); + + data->function = (int (*)(void))function; + data->argcount = argcount; + data->sync_cond = g_cond_new(); + data->sync_mutex = g_mutex_new(); + + assert(data->sync_cond); + assert(data->sync_mutex); + + for (i=0; i < argcount; i++) + data->arg[i] = va_arg(argptr, void *); + + va_end (argptr); + + + GSource *s = g_timeout_source_new(millis); + g_source_set_callback(s, thread_push_function_entry, data, NULL); + g_source_attach(s, thread_get()->context); + g_source_unref(s); + + return 1; +} + +/***************************************************************************************/ + int thread_call_parent_function_sync(int *success, void *function, int argcount, ...) { struct ipc_message msg; |
From: Sebastian B. <sb...@us...> - 2013-12-24 08:57:21
|
Update of /cvsroot/simplemail/simplemail/tests In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv28586/tests Modified Files: imap2_unittest.c Log Message: Provide some stubs of functions that are needed to compile the test. Index: imap2_unittest.c =================================================================== RCS file: /cvsroot/simplemail/simplemail/tests/imap2_unittest.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- imap2_unittest.c 24 Dec 2013 08:57:00 -0000 1.7 +++ imap2_unittest.c 24 Dec 2013 08:57:19 -0000 1.8 @@ -30,6 +30,26 @@ /*************************************************************/ +int open_socket_lib(void) +{ + return 1; +} + +void close_socket_lib(void) +{ +} + +void main_set_progress(unsigned int max_work, unsigned int work) +{ +} + +void main_hide_progress(void) +{ +} + + +/*************************************************************/ + void *test_imap_timer_callback(void *data) { thread_abort(thread_get_main()); |
From: Sebastian B. <sb...@us...> - 2013-12-24 08:57:02
|
Update of /cvsroot/simplemail/simplemail/tests In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv28538/tests Modified Files: imap2_unittest.c Log Message: Use thread_wait() rather than sleep(). Index: imap2_unittest.c =================================================================== RCS file: /cvsroot/simplemail/simplemail/tests/imap2_unittest.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- imap2_unittest.c 24 Dec 2013 08:53:07 -0000 1.6 +++ imap2_unittest.c 24 Dec 2013 08:57:00 -0000 1.7 @@ -30,6 +30,12 @@ /*************************************************************/ +void *test_imap_timer_callback(void *data) +{ + thread_abort(thread_get_main()); + return NULL; +} + /* @Test */ void test_imap(void) { @@ -80,7 +86,7 @@ imap_thread_connect(f); - sleep(2); + thread_wait(test_imap_timer_callback, NULL, 2000); del_folders(); free_config(); |
From: Sebastian B. <sb...@us...> - 2013-12-24 08:56:41
|
Update of /cvsroot/simplemail/simplemail/gtk In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv28514/gtk Modified Files: subthreads.c Log Message: Fixed problem that millis argument was not used. Index: subthreads.c =================================================================== RCS file: /cvsroot/simplemail/simplemail/gtk/subthreads.c,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- subthreads.c 24 Dec 2013 08:56:04 -0000 1.28 +++ subthreads.c 24 Dec 2013 08:56:39 -0000 1.29 @@ -417,7 +417,7 @@ if (timer_callback) { - GSource *s = g_timeout_source_new(1); + GSource *s = g_timeout_source_new(millis); g_source_set_callback(s, thread_wait_timer_entry, &data, NULL); g_source_attach(s, t->context); g_source_unref(s); |
From: Sebastian B. <sb...@us...> - 2013-12-24 08:56:23
|
Update of /cvsroot/simplemail/simplemail/tests In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv28489/tests Modified Files: makefile Log Message: Added helgrind template. Index: makefile =================================================================== RCS file: /cvsroot/simplemail/simplemail/tests/makefile,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- makefile 24 Dec 2013 08:48:34 -0000 1.24 +++ makefile 24 Dec 2013 08:56:21 -0000 1.25 @@ -91,6 +91,23 @@ .PHONY: memleaks memleaks: $(MEMLEAKS_TARGETS) + +# helgrind template +define helgrind.tmpl +helgrind-$(1): $(1) +ifdef USE_VALGRIND_XML + valgrind --tool=helgrind --xml=yes --xml-file=$$@.xml ./$$< +else + valgrind --tool=helgrind ./$$< +endif +endef + +# "instanciate" memleak targets +$(foreach testexe,$(TESTEXES), \ + $(eval $(call helgrind.tmpl,$(testexe))) \ +) + + .PHONY: clean clean: -rm -Rf test-objs $(TESTEXES) $(addsuffix .o,$(TESTEXES)) |
From: Sebastian B. <sb...@us...> - 2013-12-24 08:56:07
|
Update of /cvsroot/simplemail/simplemail/gtk In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv28453/gtk Modified Files: subthreads.c Log Message: Implemented thread_call_function_async(). Index: subthreads.c =================================================================== RCS file: /cvsroot/simplemail/simplemail/gtk/subthreads.c,v retrieving revision 1.27 retrieving revision 1.28 diff -u -d -r1.27 -r1.28 --- subthreads.c 24 Dec 2013 08:55:49 -0000 1.27 +++ subthreads.c 24 Dec 2013 08:56:04 -0000 1.28 @@ -310,6 +310,56 @@ /***************************************************************************************/ +/* FIXME: Note that if the args are not passed in a register, but e.g., on the stack this doesn't need to + * work depending on the ABI + */ +static gboolean thread_call_function_async_entry(gpointer user_data) +{ + struct thread_call_function_sync_data *data = (struct thread_call_function_sync_data*)user_data; + + switch (data->argcount) + { + case 0: data->function(); break; + case 1: ((int (*)(void*))data->function)(data->arg[0]);break; + case 2: ((int (*)(void*,void*))data->function)(data->arg[0],data->arg[1]);break; + case 3: ((int (*)(void*,void*,void*))data->function)(data->arg[0],data->arg[1],data->arg[2]);break; + case 4: ((int (*)(void*,void*,void*,void*))data->function)(data->arg[0],data->arg[1],data->arg[2],data->arg[3]);break; + case 5: ((int (*)(void*,void*,void*,void*,void*))data->function)(data->arg[0],data->arg[1],data->arg[2],data->arg[3],data->arg[4]);break; + case 6: ((int (*)(void*,void*,void*,void*,void*,void*))data->function)(data->arg[0],data->arg[1],data->arg[2],data->arg[3],data->arg[4],data->arg[5]);break; + } + return 0; +} + +int thread_call_function_async(thread_t thread, void *function, int argcount, ...) +{ + struct thread_call_function_sync_data *data; + int i; + + va_list argptr; + + assert(argcount < THREAD_CALL_FUNCTION_SYNC_DATA_NUM_ARGS); + + if (!(data = malloc(sizeof(*data)))) + return 0; + memset(data, 0, sizeof(*data)); + + va_start(argptr,argcount); + + data->function = (int (*)(void))function; + data->argcount = argcount; + + for (i=0; i < argcount; i++) + data->arg[i] = va_arg(argptr, void *); + + va_end (argptr); + + g_main_context_invoke(thread->context, thread_call_function_async_entry, data); + + return 1; +} + +/***************************************************************************************/ + thread_t thread_get_main(void) { return (thread_t)&main_thread; |