mirror of
https://github.com/Mikaela/Limnoria.git
synced 2025-02-17 06:00:42 +01:00
src/conf, plugins/Owner, plugins/Network: Add support for specifying an ssl connection via Network.connect.
This commit is contained in:
parent
97fdd164ae
commit
0af83d2e24
@ -49,13 +49,14 @@ class Network(callbacks.Plugin):
|
|||||||
raise callbacks.Error, \
|
raise callbacks.Error, \
|
||||||
'I\'m not currently connected to %s.' % network
|
'I\'m not currently connected to %s.' % network
|
||||||
|
|
||||||
def connect(self, irc, msg, args, network, server, password):
|
def connect(self, irc, msg, args, opts, network, server, password):
|
||||||
"""<network> [<host[:port]>] [<password>]
|
"""[--ssl] <network> [<host[:port]>] [<password>]
|
||||||
|
|
||||||
Connects to another network (which will be represented by the name
|
Connects to another network (which will be represented by the name
|
||||||
provided in <network>) at <host:port>. If port is not provided, it
|
provided in <network>) at <host:port>. If port is not provided, it
|
||||||
defaults to 6667, the default port for IRC. If password is
|
defaults to 6667, the default port for IRC. If password is
|
||||||
provided, it will be sent to the server in a PASS command.
|
provided, it will be sent to the server in a PASS command. If --ssl is
|
||||||
|
provided, an SSL connection will be attempted.
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
otherIrc = self._getIrc(network)
|
otherIrc = self._getIrc(network)
|
||||||
@ -80,11 +81,12 @@ class Network(callbacks.Plugin):
|
|||||||
return
|
return
|
||||||
Owner = irc.getCallback('Owner')
|
Owner = irc.getCallback('Owner')
|
||||||
newIrc = Owner._connect(network, serverPort=serverPort,
|
newIrc = Owner._connect(network, serverPort=serverPort,
|
||||||
password=password)
|
password=password, ssl=ssl)
|
||||||
conf.supybot.networks().add(network)
|
conf.supybot.networks().add(network)
|
||||||
assert newIrc.callbacks is irc.callbacks, 'callbacks list is different'
|
assert newIrc.callbacks is irc.callbacks, 'callbacks list is different'
|
||||||
irc.replySuccess('Connection to %s initiated.' % network)
|
irc.replySuccess('Connection to %s initiated.' % network)
|
||||||
connect = wrap(connect, ['owner', 'something', additional('something'),
|
connect = wrap(connect, ['owner', getopts({'ssl': ''}), 'something',
|
||||||
|
additional('something'),
|
||||||
additional('something', '')])
|
additional('something', '')])
|
||||||
|
|
||||||
def disconnect(self, irc, msg, args, otherIrc, quitMsg):
|
def disconnect(self, irc, msg, args, otherIrc, quitMsg):
|
||||||
|
@ -188,7 +188,7 @@ class Owner(callbacks.Plugin):
|
|||||||
callbacks.IrcObjectProxy._mores.clear()
|
callbacks.IrcObjectProxy._mores.clear()
|
||||||
self.__parent.reset()
|
self.__parent.reset()
|
||||||
|
|
||||||
def _connect(self, network, serverPort=None, password=''):
|
def _connect(self, network, serverPort=None, password='', ssl=False):
|
||||||
try:
|
try:
|
||||||
group = conf.supybot.networks.get(network)
|
group = conf.supybot.networks.get(network)
|
||||||
(server, port) = group.servers()[0]
|
(server, port) = group.servers()[0]
|
||||||
@ -196,7 +196,7 @@ class Owner(callbacks.Plugin):
|
|||||||
if serverPort is None:
|
if serverPort is None:
|
||||||
raise ValueError, 'connect requires a (server, port) ' \
|
raise ValueError, 'connect requires a (server, port) ' \
|
||||||
'if the network is not registered.'
|
'if the network is not registered.'
|
||||||
conf.registerNetwork(network, password)
|
conf.registerNetwork(network, password, ssl)
|
||||||
serverS = '%s:%s' % serverPort
|
serverS = '%s:%s' % serverPort
|
||||||
conf.supybot.networks.get(network).servers.append(serverS)
|
conf.supybot.networks.get(network).servers.append(serverS)
|
||||||
assert conf.supybot.networks.get(network).servers(), \
|
assert conf.supybot.networks.get(network).servers(), \
|
||||||
|
@ -259,7 +259,7 @@ class SpaceSeparatedSetOfChannels(registry.SpaceSeparatedListOf):
|
|||||||
else:
|
else:
|
||||||
return ircmsgs.join(channel)
|
return ircmsgs.join(channel)
|
||||||
|
|
||||||
def registerNetwork(name, password=''):
|
def registerNetwork(name, password='', ssl=False):
|
||||||
network = registerGroup(supybot.networks, name)
|
network = registerGroup(supybot.networks, name)
|
||||||
registerGlobalValue(network, 'password', registry.String(password,
|
registerGlobalValue(network, 'password', registry.String(password,
|
||||||
"""Determines what password will be used on %s. Yes, we know that
|
"""Determines what password will be used on %s. Yes, we know that
|
||||||
@ -271,7 +271,7 @@ def registerNetwork(name, password=''):
|
|||||||
completed.""" % name))
|
completed.""" % name))
|
||||||
registerGlobalValue(network, 'channels', SpaceSeparatedSetOfChannels([],
|
registerGlobalValue(network, 'channels', SpaceSeparatedSetOfChannels([],
|
||||||
"""Determines what channels the bot will join only on %s.""" % name))
|
"""Determines what channels the bot will join only on %s.""" % name))
|
||||||
registerGlobalValue(network, 'ssl', registry.Boolean(False,
|
registerGlobalValue(network, 'ssl', registry.Boolean(ssl,
|
||||||
"""Determines whether the bot will attempt to connect with SSL sockets
|
"""Determines whether the bot will attempt to connect with SSL sockets
|
||||||
to %s.""" % name))
|
to %s.""" % name))
|
||||||
registerChannelValue(network.channels, 'key', registry.String('',
|
registerChannelValue(network.channels, 'key', registry.String('',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user