Browse Source

More debugging, add weird networking info to README

tags/v0.3.0
Chris Smith 5 years ago
parent
commit
ca4397505b
3 changed files with 19 additions and 0 deletions
  1. 1
    0
      CHANGELOG
  2. 17
    0
      README.md
  3. 1
    0
      src/main/kotlin/com/dmdirc/ktirc/io/MessageHandler.kt

+ 1
- 0
CHANGELOG View File

@@ -8,6 +8,7 @@ vNEXT (in development)
8 8
     * Added status field to ServerState
9 9
     * ServerConnected event is emitted as soon as the socket is connected
10 10
     * ServerReady event is emitted after logging in, negotiating, etc
11
+  * Added extra debugging to show what type of events are being dispatched
11 12
   * (Internal) Event handlers can now return more events to emit
12 13
 
13 14
 v0.2.1

+ 17
- 0
README.md View File

@@ -41,6 +41,23 @@ with(IrcClientImpl(Server("my.server.com", 6667), Profile("nick", "realName", "u
41 41
 }
42 42
 ```
43 43
 
44
+## Known issues / FAQ
45
+
46
+### `java.lang.IllegalStateException: Check failed` when connecting to some servers
47
+
48
+This happens when the IRC server requests an optional client certificate (for use
49
+in SASL auth, usually). At present there is no support for client certificates in
50
+the networking library used by KtIrc. This is tracked upstream in
51
+[ktor#641](https://github.com/ktorio/ktor/issues/641). There is no workaround
52
+other than using an insecure connection.
53
+
54
+### KtIrc connects over IPv4 even when host has IPv6
55
+
56
+This is an issue with the Java standard library. You can change its behaviour by
57
+defining the system property `java.net.preferIPv6Addresses` to `true`, e.g. by
58
+running Java with `-Djava.net.preferIPv6Addresses=true` or calling
59
+`System.setProperty("java.net.preferIPv6Addresses","true");` in code. 
60
+
44 61
 ## Contributing
45 62
 
46 63
 Contributing is welcomed and encouraged! Please try to add unit tests for new features,

+ 1
- 0
src/main/kotlin/com/dmdirc/ktirc/io/MessageHandler.kt View File

@@ -19,6 +19,7 @@ internal class MessageHandler(private val processors: List<MessageProcessor>, va
19 19
     }
20 20
 
21 21
     fun emitEvent(ircClient: IrcClient, ircEvent: IrcEvent) {
22
+        log.fine { "Dispatching event of type ${ircEvent::class}" }
22 23
         handlers.forEach { handler ->
23 24
             handler.processEvent(ircClient, ircEvent).forEach {
24 25
                 emitEvent(ircClient, it)

Loading…
Cancel
Save