aboutsummaryrefslogtreecommitdiff
path: root/plugins/ice/src/plugin.vala
blob: f1c41a27bae022ce0f795180c53e3030a51173ef (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
using Gee;
using Nice;
using Xmpp;

namespace Dino.Plugins.Ice {

public class Plugin : RootInterface, Object {
    public Dino.Application app;

    public void registered(Dino.Application app) {
        this.app = app;
        app.stream_interactor.stream_attached_modules.connect((account, stream) => {
            stream.get_module(Xmpp.Xep.Socks5Bytestreams.Module.IDENTITY).set_local_ip_address_handler(get_local_ip_addresses);
        });
    }

    private Gee.List<string> get_local_ip_addresses() {
        Gee.List<string> result = new ArrayList<string>();
        foreach (string ip_address in Nice.interfaces_get_local_ips(false)) {
            result.add(ip_address);
        }
        return result;
    }

    public void shutdown() {
        // Nothing to do
    }
}

}