<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pakakeh.go, branch v0.4.0</title>
<subtitle>Collections of packages and tools for working with Go programming language.</subtitle>
<id>http://git.kilabit.info/pakakeh.go/atom?h=v0.4.0</id>
<link rel='self' href='http://git.kilabit.info/pakakeh.go/atom?h=v0.4.0'/>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/'/>
<updated>2019-03-01T04:39:29Z</updated>
<entry>
<title>Release share v0.4.0</title>
<updated>2019-03-01T04:39:29Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2019-03-01T04:39:29Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=bd8de0a789fb5f72f377beb2007d80a5f62c1c2f'/>
<id>urn:sha1:bd8de0a789fb5f72f377beb2007d80a5f62c1c2f</id>
<content type='text'>
===  New Features

*  `email`: new package for working with Internet Message Format (RFC 5322)
*  `email/dkim`: new package for parsing and creating DKIM signature
   (RFC 6376)
*  `email/maildir`: new package to manage email using maildir format

===  Enhancements

*  `bytes`
**  add function to copy slice
**  add function to convert hexadecimal into byte

*  `dns`
**  add mapping of connection types and its names
**  print the section question type by string
**  add method to filter Message.Answer by specific query type
**  add pool for UDP client
**  add function to get list of system name servers
**  make UDPClient Query routine safe
**  increase the internal debug level from 2 to 3

*  `http`
**  add the charset type to content-type "text/plain"
**  listen and serve using TLS if TLSConfig is defined
**  add method to temporary redirect request to other location

*  `ini`
**  unexport the reader
**  add method to get all variable values with the same key

*  `io`
**  rename Reader SkipSpace to SkipSpaces
**  refactoring, export all fields for easy access on Reader
**  add method read one line with line feed
**  add method to unread N characters on Reader
**  optimize ReadUntil without append
**  add method to return the rest of unreaded buffer on Reader
**  return the character separator that found on SkipUntil

*  `memfs`
**  add method to dump files as Go generated source
**  add variable for allowing bypass file in memory

*  `smtp` (work in progress)
**  rename StorageFile to LocalStorage
**  implement server with local handler
**  add prefix Mail to methods in Storage interface
**  use different port between normal listener and TLS listener

*  `time`:  add function to get micro seconds

===  Fixes

*  all: fix the usage of "iota"
*  `dns`: fix creating new UDP/TCP client without port number
*  `memfs`: check for empty directory on Mount
</content>
</entry>
<entry>
<title>dns: prevent data race when retrieving new client</title>
<updated>2019-03-01T04:33:05Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2019-03-01T04:33:05Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=0fb894f376db8ef67d9c71acc15a12852ae3015b'/>
<id>urn:sha1:0fb894f376db8ef67d9c71acc15a12852ae3015b</id>
<content type='text'>
In case of pool Get is called by multiple Go routines, the new client
method will cause data race due to multiple write on sequence and
sequence fields.
</content>
</entry>
<entry>
<title>all: fix warnings from linter</title>
<updated>2019-03-01T04:30:40Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2019-03-01T04:30:40Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=a948627494943fbb08b626e5f2686030cb56f1fb'/>
<id>urn:sha1:a948627494943fbb08b626e5f2686030cb56f1fb</id>
<content type='text'>
Most of the warnings caused by update to linter which cause global
variables declared with grouping "( ... )" and that has been suppressed,
are become false-positive again.
</content>
</entry>
<entry>
<title>email/maildir: a library to manage email using maildir format</title>
<updated>2019-03-01T03:26:33Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2019-03-01T02:39:31Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=db96ed72b1dbebaaa856c0a2d627df33da6827f2'/>
<id>urn:sha1:db96ed72b1dbebaaa856c0a2d627df33da6827f2</id>
<content type='text'>
Currently it support the following functions,

* OutQueue(): creating temporary email before sending,
* DeleteOutQueue(): deleting sent email,
* Delete(): deleting email in "cur" directory,
* Incoming(): saving incoming email in "new" directory, and
* Get():  moving emails from "new" to "cur".
</content>
</entry>
<entry>
<title>time: add function to get micro seconds</title>
<updated>2019-02-28T16:53:37Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2019-02-28T16:53:37Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=85a7b727af871676c47373caff4806ac898e697d'/>
<id>urn:sha1:85a7b727af871676c47373caff4806ac898e697d</id>
<content type='text'>
Micro seconds is the first six digits after seconds in output of
UnixNano().
</content>
</entry>
<entry>
<title>dns: add mapping of connection types and its names</title>
<updated>2019-02-28T16:48:14Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2019-02-28T16:48:14Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=4534cea29b26afeba6ffe255934fa3893df7a801'/>
<id>urn:sha1:4534cea29b26afeba6ffe255934fa3893df7a801</id>
<content type='text'>
This mapping can be used to print connection type for logging.
</content>
</entry>
<entry>
<title>smtp: rename StorageFile to LocalStorage</title>
<updated>2019-02-26T14:17:54Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2019-02-26T14:01:34Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=5422cada3d1a67c34ee28ca2417140b5e1d62796'/>
<id>urn:sha1:5422cada3d1a67c34ee28ca2417140b5e1d62796</id>
<content type='text'>
This is consistency of type name for local implementation.  We have
LocalHandler for handling mail transaction using local system, so the
right and consistent name for handling storage with file should be
LocalStorage.
</content>
</entry>
<entry>
<title>smtp: implement server with local handler</title>
<updated>2019-02-26T14:17:54Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2019-02-26T13:59:48Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=8b32f3298e332e75ec156bd78ad6264a48572a81'/>
<id>urn:sha1:8b32f3298e332e75ec156bd78ad6264a48572a81</id>
<content type='text'>
LocalHandler is SMTP server that contains domain and user's accounts
in server environment.

The LocalHandler replace the HandlerPosix and remove unused Storage
interface and field in server.
</content>
</entry>
<entry>
<title>smtp: remove unused return value error on parseParams</title>
<updated>2019-02-26T08:23:43Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2019-02-26T08:23:43Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=0c8304098d941d675551c81733b8292b1d7f42f9'/>
<id>urn:sha1:0c8304098d941d675551c81733b8292b1d7f42f9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>smtp: remove environment types</title>
<updated>2019-02-26T08:22:56Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2019-02-26T08:22:56Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/pakakeh.go/commit/?id=a2afc2e0ef00c7461150ff425db25390b742d698'/>
<id>urn:sha1:a2afc2e0ef00c7461150ff425db25390b742d698</id>
<content type='text'>
The original purpose of environment is to allow bootstraping SMTP server
using user defined methods (e.g. from file or database), but since
primary or virtual domains is only set once, its setting can be acquired
and set before server started using any methods.

As replacement of environment, the primary domain (previously Hostname)
and virtual domains (previously Domains) are embedded directly as fields
of server.
</content>
</entry>
</feed>
