sync from original

sync from fastos/fastsocket