annotate MIGRATING.md @ 780:560b62f6b0a7

Core: rework socket layer, closes #939 @6h Rework the ip_connector and ip_acceptor to be more easy to use. Also, ip_connector will now use a resolver to find appropriate endpoints. Bring back full support for IPv6/IPv4 with all possible combinations. The tls_stream class now owns a shared ssl::context that is copied from the acceptor or the connector. The tls_connector and tls_acceptor wraps basic ones for convenience and simplicity. Irccd and irccdctl now support local SSL sockets.
author David Demelier <markand@malikania.fr>
date Sun, 04 Nov 2018 17:26:05 +0100
parents 317c66a131be
children 7145a3df4cb7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
486
0b156b82b8c1 Irccd: rework of paths, closes #611
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 IRC Client Daemon MIGRATING
0b156b82b8c1 Irccd: rework of paths, closes #611
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 ===========================
0b156b82b8c1 Irccd: rework of paths, closes #611
David Demelier <markand@malikania.fr>
parents:
diff changeset
3
0b156b82b8c1 Irccd: rework of paths, closes #611
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 This document is a small guide to help you migrating to a next major version.
0b156b82b8c1 Irccd: rework of paths, closes #611
David Demelier <markand@malikania.fr>
parents:
diff changeset
5
0b156b82b8c1 Irccd: rework of paths, closes #611
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 Migrating from 2.x to 3.x
0b156b82b8c1 Irccd: rework of paths, closes #611
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 -------------------------
0b156b82b8c1 Irccd: rework of paths, closes #611
David Demelier <markand@malikania.fr>
parents:
diff changeset
8
574
18e80ec38ac7 Irccd: get rid of user/channel separation, closes #734
David Demelier <markand@malikania.fr>
parents: 514
diff changeset
9 ### Irccdctl
18e80ec38ac7 Irccd: get rid of user/channel separation, closes #734
David Demelier <markand@malikania.fr>
parents: 514
diff changeset
10
18e80ec38ac7 Irccd: get rid of user/channel separation, closes #734
David Demelier <markand@malikania.fr>
parents: 514
diff changeset
11 - The functions `server-cnotice` and `server-cmode` have been removed, use
780
560b62f6b0a7 Core: rework socket layer, closes #939 @6h
David Demelier <markand@malikania.fr>
parents: 779
diff changeset
12 `server-notice` and `server-mode` instead,
560b62f6b0a7 Core: rework socket layer, closes #939 @6h
David Demelier <markand@malikania.fr>
parents: 779
diff changeset
13 - The option `connect.host` has been renamed to `connect.hostname` (#941).
574
18e80ec38ac7 Irccd: get rid of user/channel separation, closes #734
David Demelier <markand@malikania.fr>
parents: 514
diff changeset
14
577
3d0dbc0bee7d Irccd: update references to onChannel(Mode|Notice), onMode
David Demelier <markand@malikania.fr>
parents: 574
diff changeset
15 ### Plugins
3d0dbc0bee7d Irccd: update references to onChannel(Mode|Notice), onMode
David Demelier <markand@malikania.fr>
parents: 574
diff changeset
16
3d0dbc0bee7d Irccd: update references to onChannel(Mode|Notice), onMode
David Demelier <markand@malikania.fr>
parents: 574
diff changeset
17 #### Logger
3d0dbc0bee7d Irccd: update references to onChannel(Mode|Notice), onMode
David Demelier <markand@malikania.fr>
parents: 574
diff changeset
18
3d0dbc0bee7d Irccd: update references to onChannel(Mode|Notice), onMode
David Demelier <markand@malikania.fr>
parents: 574
diff changeset
19 - The keyword `source` has been removed and replaced by `channel`,
3d0dbc0bee7d Irccd: update references to onChannel(Mode|Notice), onMode
David Demelier <markand@malikania.fr>
parents: 574
diff changeset
20 - The keyword `origin` has been added,
3d0dbc0bee7d Irccd: update references to onChannel(Mode|Notice), onMode
David Demelier <markand@malikania.fr>
parents: 574
diff changeset
21 - Formats `cnotice`, `cmode`, `query` have been removed.
3d0dbc0bee7d Irccd: update references to onChannel(Mode|Notice), onMode
David Demelier <markand@malikania.fr>
parents: 574
diff changeset
22
574
18e80ec38ac7 Irccd: get rid of user/channel separation, closes #734
David Demelier <markand@malikania.fr>
parents: 514
diff changeset
23 ### Network API
18e80ec38ac7 Irccd: get rid of user/channel separation, closes #734
David Demelier <markand@malikania.fr>
parents: 514
diff changeset
24
18e80ec38ac7 Irccd: get rid of user/channel separation, closes #734
David Demelier <markand@malikania.fr>
parents: 514
diff changeset
25 - The requests `server-cnotice` and `server-cmode` have been removed, use
18e80ec38ac7 Irccd: get rid of user/channel separation, closes #734
David Demelier <markand@malikania.fr>
parents: 514
diff changeset
26 `server-notice` and `server-mode` instead,
18e80ec38ac7 Irccd: get rid of user/channel separation, closes #734
David Demelier <markand@malikania.fr>
parents: 514
diff changeset
27 - The request `server-mode` command requires a new argument `channel`.
18e80ec38ac7 Irccd: get rid of user/channel separation, closes #734
David Demelier <markand@malikania.fr>
parents: 514
diff changeset
28
486
0b156b82b8c1 Irccd: rework of paths, closes #611
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 ### CMake options
0b156b82b8c1 Irccd: rework of paths, closes #611
David Demelier <markand@malikania.fr>
parents:
diff changeset
30
701
2007a37d7e1a CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents: 700
diff changeset
31 - All options are now starting with `IRCCD_` for better compatibility with
2007a37d7e1a CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents: 700
diff changeset
32 external projects,
709
1b04ffb2b35e CMake: switch to GNUInstallDirs, closes #873 @1h
David Demelier <markand@malikania.fr>
parents: 701
diff changeset
33 - CMake now use GNUInstallDirs module to specify installation paths, all
1b04ffb2b35e CMake: switch to GNUInstallDirs, closes #873 @1h
David Demelier <markand@malikania.fr>
parents: 701
diff changeset
34 IRCCD_WITH_ options have been replaced by CMAKE_INSTALL_ equivalents.
486
0b156b82b8c1 Irccd: rework of paths, closes #611
David Demelier <markand@malikania.fr>
parents:
diff changeset
35
0b156b82b8c1 Irccd: rework of paths, closes #611
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 ### Paths
0b156b82b8c1 Irccd: rework of paths, closes #611
David Demelier <markand@malikania.fr>
parents:
diff changeset
37
0b156b82b8c1 Irccd: rework of paths, closes #611
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 - The default plugins path has been changed from **share/irccd/plugins** to
709
1b04ffb2b35e CMake: switch to GNUInstallDirs, closes #873 @1h
David Demelier <markand@malikania.fr>
parents: 701
diff changeset
39 **lib64/irccd**.
486
0b156b82b8c1 Irccd: rework of paths, closes #611
David Demelier <markand@malikania.fr>
parents:
diff changeset
40
574
18e80ec38ac7 Irccd: get rid of user/channel separation, closes #734
David Demelier <markand@malikania.fr>
parents: 514
diff changeset
41 ### Javascript API
486
0b156b82b8c1 Irccd: rework of paths, closes #611
David Demelier <markand@malikania.fr>
parents:
diff changeset
42
574
18e80ec38ac7 Irccd: get rid of user/channel separation, closes #734
David Demelier <markand@malikania.fr>
parents: 514
diff changeset
43 #### Events
486
0b156b82b8c1 Irccd: rework of paths, closes #611
David Demelier <markand@malikania.fr>
parents:
diff changeset
44
574
18e80ec38ac7 Irccd: get rid of user/channel separation, closes #734
David Demelier <markand@malikania.fr>
parents: 514
diff changeset
45 - The events `onChannelMode` and `onChannelNotice` have been removed, plugins
577
3d0dbc0bee7d Irccd: update references to onChannel(Mode|Notice), onMode
David Demelier <markand@malikania.fr>
parents: 574
diff changeset
46 must use `Server.isSelf(target)` to determine a channel/private message,
3d0dbc0bee7d Irccd: update references to onChannel(Mode|Notice), onMode
David Demelier <markand@malikania.fr>
parents: 574
diff changeset
47 - The event `onNotice` takes a new `channel` argument,
3d0dbc0bee7d Irccd: update references to onChannel(Mode|Notice), onMode
David Demelier <markand@malikania.fr>
parents: 574
diff changeset
48 - The event `onMode` takes new `channel`, `limit`, `user`, `mask` arguments.
486
0b156b82b8c1 Irccd: rework of paths, closes #611
David Demelier <markand@malikania.fr>
parents:
diff changeset
49
574
18e80ec38ac7 Irccd: get rid of user/channel separation, closes #734
David Demelier <markand@malikania.fr>
parents: 514
diff changeset
50 #### Module Server
489
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
51
574
18e80ec38ac7 Irccd: get rid of user/channel separation, closes #734
David Demelier <markand@malikania.fr>
parents: 514
diff changeset
52 - The methods `Server.cmode` and `Server.cnotice` have been removed, use
18e80ec38ac7 Irccd: get rid of user/channel separation, closes #734
David Demelier <markand@malikania.fr>
parents: 514
diff changeset
53 `Server.mode` and `Server.notice` instead,
18e80ec38ac7 Irccd: get rid of user/channel separation, closes #734
David Demelier <markand@malikania.fr>
parents: 514
diff changeset
54 - The method `Server.mode` requires a new argument `channel`.
489
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
55
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
56 #### Module ElapsedTimer
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
57
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
58 - The method ElapsedTimer.reset has been removed, just use `start` instead
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
59 when you want to accumulate time.
514
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 489
diff changeset
60
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 489
diff changeset
61 #### Module Directory
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 489
diff changeset
62
16b9ebfd3f08 Irccd: get rid of fs.hpp, closes #594
David Demelier <markand@malikania.fr>
parents: 489
diff changeset
63 - The property `Directory.count` has been removed.
574
18e80ec38ac7 Irccd: get rid of user/channel separation, closes #734
David Demelier <markand@malikania.fr>
parents: 514
diff changeset
64
700
91bc29e87399 Irccd: use Boost.Predef, closes #805 @1h
David Demelier <markand@malikania.fr>
parents: 696
diff changeset
65 #### Module Plugin
574
18e80ec38ac7 Irccd: get rid of user/channel separation, closes #734
David Demelier <markand@malikania.fr>
parents: 514
diff changeset
66
18e80ec38ac7 Irccd: get rid of user/channel separation, closes #734
David Demelier <markand@malikania.fr>
parents: 514
diff changeset
67 The following properties in `Irccd.Plugin` has been renamed:
18e80ec38ac7 Irccd: get rid of user/channel separation, closes #734
David Demelier <markand@malikania.fr>
parents: 514
diff changeset
68
18e80ec38ac7 Irccd: get rid of user/channel separation, closes #734
David Demelier <markand@malikania.fr>
parents: 514
diff changeset
69 - **cachePath** renamed to **paths.cache**,
18e80ec38ac7 Irccd: get rid of user/channel separation, closes #734
David Demelier <markand@malikania.fr>
parents: 514
diff changeset
70 - **configPath** renamed to **paths.config**,
18e80ec38ac7 Irccd: get rid of user/channel separation, closes #734
David Demelier <markand@malikania.fr>
parents: 514
diff changeset
71 - **dataPath renamed** to **paths.data**.
18e80ec38ac7 Irccd: get rid of user/channel separation, closes #734
David Demelier <markand@malikania.fr>
parents: 514
diff changeset
72
18e80ec38ac7 Irccd: get rid of user/channel separation, closes #734
David Demelier <markand@malikania.fr>
parents: 514
diff changeset
73 Note: these paths are no more automatically detected and set with the new
18e80ec38ac7 Irccd: get rid of user/channel separation, closes #734
David Demelier <markand@malikania.fr>
parents: 514
diff changeset
74 `[paths]` and `[paths.<name>]` sections.
18e80ec38ac7 Irccd: get rid of user/channel separation, closes #734
David Demelier <markand@malikania.fr>
parents: 514
diff changeset
75
700
91bc29e87399 Irccd: use Boost.Predef, closes #805 @1h
David Demelier <markand@malikania.fr>
parents: 696
diff changeset
76 #### Module System
91bc29e87399 Irccd: use Boost.Predef, closes #805 @1h
David Demelier <markand@malikania.fr>
parents: 696
diff changeset
77
91bc29e87399 Irccd: use Boost.Predef, closes #805 @1h
David Demelier <markand@malikania.fr>
parents: 696
diff changeset
78 - The function `Irccd.System.name` has now well defined return value.
733
bd12709b1975 Irccd: rework server to be simpler
David Demelier <markand@malikania.fr>
parents: 709
diff changeset
79
bd12709b1975 Irccd: rework server to be simpler
David Demelier <markand@malikania.fr>
parents: 709
diff changeset
80 ### Irccd
bd12709b1975 Irccd: rework server to be simpler
David Demelier <markand@malikania.fr>
parents: 709
diff changeset
81
bd12709b1975 Irccd: rework server to be simpler
David Demelier <markand@malikania.fr>
parents: 709
diff changeset
82 #### Configuration
bd12709b1975 Irccd: rework server to be simpler
David Demelier <markand@malikania.fr>
parents: 709
diff changeset
83
bd12709b1975 Irccd: rework server to be simpler
David Demelier <markand@malikania.fr>
parents: 709
diff changeset
84 - The option `reconnect-tries` has been removed from `[server]` section, use
bd12709b1975 Irccd: rework server to be simpler
David Demelier <markand@malikania.fr>
parents: 709
diff changeset
85 `auto-reconnect` boolean option instead.
bd12709b1975 Irccd: rework server to be simpler
David Demelier <markand@malikania.fr>
parents: 709
diff changeset
86 - The option `reconnect-timeout` has been renamed to `auto-reconnect-delay`.
779
317c66a131be Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents: 733
diff changeset
87 - The section `[identity]` has been removed, instead move those values inside
317c66a131be Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents: 733
diff changeset
88 each server in their `[server]` section.