X-Git-Url: http://git.maemo.org/git/?p=python-purple;a=blobdiff_plain;f=proxy.pyx;h=7deb3ac270b05a3c37746016420206815d90ad39;hp=453922c1a3fad072142ca9726473a8782b2a5dec;hb=fd928128ba52b05aa5c17f9481c5e70461984c51;hpb=ac12b59ff91e972e8f34209ed58a1f7dfa4cb6f5 diff --git a/proxy.pyx b/proxy.pyx index 453922c..7deb3ac 100644 --- a/proxy.pyx +++ b/proxy.pyx @@ -92,3 +92,44 @@ cdef class ProxyInfo: def get_types(self): return self.types.keys() + def set_info(self, acc, info): + ''' @param acc Tuple (username, protocol id) ''' + ''' @param info Dictionary {'type': "HTTP", 'port': "1234", ''' + ''' 'host': "1.2.3.4", 'username': "foo", 'passworld': "foo123"} ''' + + cdef account.PurpleAccount *c_account + cdef proxy.PurpleProxyInfo *c_proxyinfo + c_account = account.purple_accounts_find(acc[0], acc[1]) + + if c_account == NULL: + #FIXME: Message error or call a callback handle to error + return False + + c_proxyinfo = account.purple_account_get_proxy_info(c_account) + if c_proxyinfo == NULL: + c_proxyinfo = proxy.c_purple_proxy_info_new() + account.purple_account_set_proxy_info(c_account, c_proxyinfo) + + if info.has_key('type') and info['type']: + type = info['type'] + if not type in self.types.keys(): + type = 'HTTP' + proxy.c_purple_proxy_info_set_type(c_proxyinfo, self.types[type]) + + if info.has_key('host') and info['host']: + host = info['host'] + proxy.c_purple_proxy_info_set_host(c_proxyinfo, host) + + if info.has_key('port') and info['port']: + port = int(info['port']) + proxy.c_purple_proxy_info_set_port(c_proxyinfo, port) + + if info.has_key('username') and info['username']: + username = info['username'] + proxy.c_purple_proxy_info_set_username(c_proxyinfo, username) + + if info.has_key('password') and info['password']: + password = info['password'] + proxy.c_purple_proxy_info_set_password(c_proxyinfo, password) + + return True