LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: gradetwo

linux 下的飞信2010年8月2日更新 Fedora000特供V4版本。 解决飞信协议升级问题

[复制链接]
发表于 2008-6-19 20:08:47 | 显示全部楼层
就差飞信不能用了
回复 支持 反对

使用道具 举报

发表于 2008-6-20 15:25:41 | 显示全部楼层
报告
1、在对话框里输入超过两行,程序就挂了……
2、有的分组和好友昵称没有正确的显示出来
3、在启动时提示“好友列表没有装入……"
回复 支持 反对

使用道具 举报

发表于 2008-6-20 18:13:00 | 显示全部楼层
源代码:

cvs -z3 -d:pserver:anonymous@fetion.cvs.sourceforge.net:/cvsroot/fetion co -P fetion
回复 支持 反对

使用道具 举报

发表于 2008-6-21 13:32:48 | 显示全部楼层
python版的飞信可以用了吗? 源代码在什么地方?
回复 支持 反对

使用道具 举报

发表于 2008-6-23 10:54:46 | 显示全部楼层
cvs -z3 -d:pserver:anonymous@fetion.cvs.sourceforge.net:/cvsroot/fetion co -P fetion
回复 支持 反对

使用道具 举报

发表于 2008-6-24 19:55:16 | 显示全部楼层
最近怎么没有进展了?

还是不稳定,时不时地会崩溃掉了。

另外它如果掉线了好像自己并不知道。。。。
回复 支持 反对

使用道具 举报

发表于 2008-6-24 19:58:34 | 显示全部楼层
最近怎么没有进展了?

还是不稳定,时不时地会崩溃掉了。

另外它如果掉线了好像自己并不知道。。。。
回复 支持 反对

使用道具 举报

发表于 2008-6-25 08:11:49 | 显示全部楼层
以下是我gdb的输出,请楼主帮忙看看。

我用的fetion源码打了 http://linuxfire.com.cn/~moo/log/left/pidgin-2.5.0-fetion-fixes 补丁


  1. lijt@lijt-buptnu:~$ gdb --args pidgin -d
  2. GNU gdb 6.8-debian
  3. Copyright (C) 2008 Free Software Foundation, Inc.
  4. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
  5. This is free software: you are free to change and redistribute it.
  6. There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
  7. and "show warranty" for details.
  8. This GDB was configured as "x86_64-linux-gnu"...
  9. (no debugging symbols found)
  10. (gdb) run
  11. Starting program: /usr/bin/pidgin -d
  12. (no debugging symbols found)
  13. (no debugging symbols found)
  14. (no debugging symbols found)
  15. (no debugging symbols found)
  16. (no debugging symbols found)
  17. (no debugging symbols found)
  18. (no debugging symbols found)
  19. (no debugging symbols found)
  20. (no debugging symbols found)
  21. (no debugging symbols found)
  22. (no debugging symbols found)
  23. (no debugging symbols found)
  24. (no debugging symbols found)
  25. (no debugging symbols found)
  26. (no debugging symbols found)
  27. (no debugging symbols found)
  28. (no debugging symbols found)
  29. (no debugging symbols found)
  30. (no debugging symbols found)
  31. (no debugging symbols found)
  32. (no debugging symbols found)
  33. [Thread debugging using libthread_db enabled]
  34. (no debugging symbols found)
  35. (no debugging symbols found)
  36. (no debugging symbols found)
  37. (no debugging symbols found)
  38. (no debugging symbols found)
  39. (no debugging symbols found)
  40. (no debugging symbols found)
  41. (no debugging symbols found)
  42. (no debugging symbols found)
  43. (no debugging symbols found)
  44. (no debugging symbols found)
  45. (no debugging symbols found)
  46. (no debugging symbols found)
  47. (no debugging symbols found)
  48. (no debugging symbols found)
  49. (no debugging symbols found)
  50. (no debugging symbols found)
  51. (no debugging symbols found)
  52. (no debugging symbols found)
  53. (no debugging symbols found)
  54. (no debugging symbols found)
  55. (no debugging symbols found)
  56. (no debugging symbols found)
  57. (no debugging symbols found)
  58. (no debugging symbols found)
  59. (no debugging symbols found)
  60. (no debugging symbols found)
  61. (no debugging symbols found)
  62. ---Type <return> to continue, or q <return> to quit---
  63. (no debugging symbols found)
  64. (no debugging symbols found)
  65. (no debugging symbols found)
  66. (no debugging symbols found)
  67. (no debugging symbols found)
  68. (no debugging symbols found)
  69. (no debugging symbols found)
  70. (no debugging symbols found)
  71. (no debugging symbols found)
  72. [New Thread 0x7f4209e667a0 (LWP 13130)]
  73. (no debugging symbols found)
  74. (no debugging symbols found)
  75. (no debugging symbols found)
  76. (12:38:24) prefs: Reading /home/lijt/.purple/prefs.xml
  77. (12:38:24) prefs: Finished reading /home/lijt/.purple/prefs.xml
  78. (12:38:24) prefs: purple_prefs_get_string: /pidgin/browsers/command not a string pref
  79. (12:38:24) dbus: okkk
  80. (12:38:24) plugins: probing /usr/lib/pidgin/nautilus.so
  81. (no debugging symbols found)
  82. (12:38:24) plugins: probing /usr/lib/pidgin/cap.so
  83. (no debugging symbols found)
  84. (no debugging symbols found)
  85. (12:38:24) plugins: probing /usr/lib/pidgin/gestures.so
  86. (no debugging symbols found)
  87. (12:38:24) plugins: probing /usr/lib/pidgin/gevolution.so
  88. (no debugging symbols found)
  89. (no debugging symbols found)
  90. (no debugging symbols found)
  91. (no debugging symbols found)
  92. (no debugging symbols found)
  93. (no debugging symbols found)
  94. (no debugging symbols found)
  95. (no debugging symbols found)
  96. (no debugging symbols found)
  97. (no debugging symbols found)
  98. (no debugging symbols found)
  99. (no debugging symbols found)
  100. (no debugging symbols found)
  101. (no debugging symbols found)
  102. (no debugging symbols found)
  103. (no debugging symbols found)
  104. (no debugging symbols found)
  105. (no debugging symbols found)
  106. (no debugging symbols found)
  107. (no debugging symbols found)
  108. (no debugging symbols found)
  109. (no debugging symbols found)
  110. (no debugging symbols found)
  111. (no debugging symbols found)
  112. (no debugging symbols found)
  113. (no debugging symbols found)
  114. (no debugging symbols found)
  115. (no debugging symbols found)
  116. (no debugging symbols found)
  117. (no debugging symbols found)
  118. (no debugging symbols found)
  119. (no debugging symbols found)
  120. (no debugging symbols found)
  121. (no debugging symbols found)
  122. ---Type <return> to continue, or q <return> to quit---
  123. (no debugging symbols found)
  124. (no debugging symbols found)
  125. (no debugging symbols found)
  126. (no debugging symbols found)
  127. (12:38:25) plugins: probing /usr/lib/pidgin/musicmessaging.so
  128. (no debugging symbols found)
  129. (12:38:25) plugins: probing /usr/lib/pidgin/ticker.so
  130. (no debugging symbols found)
  131. (12:38:25) plugins: probing /usr/lib/pidgin/convcolors.so
  132. (no debugging symbols found)
  133. (12:38:25) plugins: probing /usr/lib/pidgin/extplacement.so
  134. (no debugging symbols found)
  135. (12:38:25) plugins: probing /usr/lib/pidgin/gtkbuddynote.so
  136. (no debugging symbols found)
  137. (12:38:25) plugins: probing /usr/lib/pidgin/history.so
  138. (no debugging symbols found)
  139. (12:38:25) plugins: probing /usr/lib/pidgin/iconaway.so
  140. (no debugging symbols found)
  141. (12:38:25) plugins: probing /usr/lib/pidgin/markerline.so
  142. (no debugging symbols found)
  143. (12:38:25) plugins: probing /usr/lib/pidgin/notify.so
  144. (no debugging symbols found)
  145. (12:38:25) plugins: probing /usr/lib/pidgin/pidginrc.so
  146. (no debugging symbols found)
  147. (12:38:25) plugins: probing /usr/lib/pidgin/spellchk.so
  148. (no debugging symbols found)
  149. (12:38:25) plugins: probing /usr/lib/pidgin/timestamp.so
  150. (no debugging symbols found)
  151. (12:38:25) plugins: probing /usr/lib/pidgin/timestamp_format.so
  152. (no debugging symbols found)
  153. (12:38:25) plugins: probing /usr/lib/pidgin/xmppconsole.so
  154. (no debugging symbols found)
  155. (12:38:25) plugins: probing /usr/lib/purple-2/libicq.so
  156. (no debugging symbols found)
  157. (no debugging symbols found)
  158. (12:38:25) plugins: probing /usr/lib/purple-2/libqq.so
  159. (no debugging symbols found)
  160. (12:38:25) plugins: probing /usr/lib/purple-2/libsametime.so
  161. (no debugging symbols found)
  162. (no debugging symbols found)
  163. (12:38:25) plugins: /usr/lib/purple-2/libsametime.so has a prefs_info, but is a prpl. This is no longer supported.
  164. (12:38:25) plugins: probing /usr/lib/purple-2/libzephyr.so
  165. (no debugging symbols found)
  166. (no debugging symbols found)
  167. (no debugging symbols found)
  168. (no debugging symbols found)
  169. (no debugging symbols found)
  170. (12:38:25) plugins: probing /usr/lib/purple-2/libjabber.so
  171. (no debugging symbols found)
  172. (no debugging symbols found)
  173. (12:38:25) plugins: /usr/lib/purple-2/libjabber.so is not usable because the 'purple_init_plugin' symbol could not be found.  Does the plugin call the PURPLE_INIT_PLUGIN() macro?
  174. (12:38:25) plugins: probing /usr/lib/purple-2/liboscar.so
  175. (12:38:25) plugins: /usr/lib/purple-2/liboscar.so is not usable because the 'purple_init_plugin' symbol could not be found.  Does the plugin call the PURPLE_INIT_PLUGIN() macro?
  176. (12:38:25) plugins: probing /usr/lib/purple-2/libfetion.so
  177. (12:38:25) plugins: probing /usr/lib/purple-2/perl.so
  178. (12:38:25) plugins: probing /usr/lib/purple-2/ssl.so
  179. (12:38:25) plugins: probing /usr/lib/purple-2/ssl-gnutls.so
  180. (12:38:25) plugins: probing /usr/lib/purple-2/ssl-nss.so
  181. (12:38:25) plugins: probing /usr/lib/purple-2/tcl.so
  182. [New Thread 0x4104d950 (LWP 13134)]
  183. (12:38:25) plugins: probing /usr/lib/purple-2/autoaccept.so
  184. (12:38:25) plugins: probing /usr/lib/purple-2/buddynote.so
  185. (12:38:25) plugins: probing /usr/lib/purple-2/idle.so
  186. (12:38:25) plugins: probing /usr/lib/purple-2/joinpart.so
  187. (12:38:25) plugins: probing /usr/lib/purple-2/log_reader.so
  188. (12:38:25) plugins: probing /usr/lib/purple-2/newline.so
  189. (12:38:25) plugins: probing /usr/lib/purple-2/offlinemsg.so
  190. (12:38:25) plugins: probing /usr/lib/purple-2/psychic.so
  191. (12:38:25) plugins: probing /usr/lib/purple-2/statenotify.so
  192. (12:38:25) plugins: probing /usr/lib/purple-2/dbus-example.so
  193. (12:38:25) plugins: probing /usr/lib/purple-2/libbonjour.so
  194. (12:38:25) plugins: probing /usr/lib/purple-2/libgg.so
  195. (12:38:25) plugins: probing /usr/lib/purple-2/libirc.so
  196. (12:38:25) plugins: probing /usr/lib/purple-2/libxmpp.so
  197. (12:38:25) util: Reading file xmpp-caps.xml from directory /home/lijt/.purple
  198. (12:38:25) plugins: probing /usr/lib/purple-2/libmsn.so
  199. (12:38:25) plugins: probing /usr/lib/purple-2/libmyspace.so
  200. (12:38:25) plugins: probing /usr/lib/purple-2/libnovell.so
  201. (12:38:25) plugins: probing /usr/lib/purple-2/libaim.so
  202. (12:38:25) plugins: probing /usr/lib/purple-2/libsimple.so
  203. (12:38:25) plugins: probing /usr/lib/purple-2/libyahoo.so
  204. (12:38:25) prefs: /purple/status/scores/offline changed, scheduling save.
  205. (12:38:25) prefs: /purple/status/scores/available changed, scheduling save.
  206. (12:38:25) prefs: /purple/status/scores/invisible changed, scheduling save.
  207. (12:38:25) prefs: /purple/status/scores/away changed, scheduling save.
  208. (12:38:25) prefs: /purple/status/scores/extended_away changed, scheduling save.
  209. (12:38:25) prefs: /purple/status/scores/idle changed, scheduling save.
  210. (12:38:25) prefs: /purple/status/scores/offline_msg changed, scheduling save.
  211. (12:38:25) util: Reading file accounts.xml from directory /home/lijt/.purple
  212. (12:38:25) myspace: returning status types
  213. (12:38:25) g_log: purple_find_buddies: assertion `purplebuddylist != NULL' failed
  214. (12:38:25) msim: msim_uid2username_from_blist: no buddies?
  215. (12:38:25) g_log: purple_find_buddies: assertion `purplebuddylist != NULL' failed
  216. (12:38:25) msim: msim_uid2username_from_blist: no buddies?
  217. (12:38:25) g_log: purple_find_buddies: assertion `purplebuddylist != NULL' failed
  218. (12:38:25) msim: msim_uid2username_from_blist: no buddies?
  219. (12:38:25) g_log: purple_find_buddies: assertion `purplebuddylist != NULL' failed
  220. (12:38:25) msim: msim_uid2username_from_blist: no buddies?
  221. (12:38:25) util: Reading file status.xml from directory /home/lijt/.purple
  222. (12:38:25) g_log: purple_find_buddies: assertion `purplebuddylist != NULL' failed
  223. (12:38:25) msim: msim_uid2username_from_blist: no buddies?
  224. (12:38:25) g_log: purple_find_buddies: assertion `purplebuddylist != NULL' failed
  225. (12:38:25) msim: msim_uid2username_from_blist: no buddies?
  226. (12:38:25) g_log: purple_find_buddies: assertion `purplebuddylist != NULL' failed
  227. (12:38:25) msim: msim_uid2username_from_blist: no buddies?
  228. (12:38:25) g_log: purple_find_buddies: assertion `purplebuddylist != NULL' failed
  229. (12:38:25) msim: msim_uid2username_from_blist: no buddies?
  230. (12:38:25) certificate: CertificateVerifier x509, singleuse requested but not found.
  231. (12:38:25) certificate: CertificateVerifier singleuse registered
  232. (12:38:25) certificate: CertificatePool x509, ca requested but not found.
  233. (12:38:25) certificate: CertificateScheme x509 requested but not found.
  234. (12:38:25) certificate/x509/ca: Lazy init failed because an X.509 Scheme is not yet registered. Maybe it will be better later.
  235. (12:38:25) certificate/x509/ca: Init failed, probably because a dependency is not yet registered. It has been deferred to later.
  236. (12:38:25) certificate: CertificatePool ca registered
  237. (12:38:25) certificate: CertificatePool x509, tls_peers requested but not found.
  238. (12:38:25) certificate: CertificatePool tls_peers registered
  239. (12:38:25) certificate: CertificateVerifier x509, tls_cached requested but not found.
  240. (12:38:25) certificate: CertificateVerifier tls_cached registered
  241. (12:38:25) prefs: /purple/logging/format changed, scheduling save.
  242. (12:38:25) prefs: /purple/logging/format changed, scheduling save.
  243. [New Thread 0x41a5c950 (LWP 13135)]
  244. (12:38:25) prefs: /purple/proxy/type changed, scheduling save.
  245. (12:38:25) prefs: /purple/proxy/host changed, scheduling save.
  246. (12:38:25) prefs: /purple/proxy/port changed, scheduling save.
  247. (12:38:25) prefs: /purple/proxy/username changed, scheduling save.
  248. (12:38:25) prefs: /purple/proxy/password changed, scheduling save.
  249. (12:38:25) certificate: CertificateScheme x509 requested but not found.
  250. (12:38:25) certificate: CertificateScheme x509 registered
  251. (12:38:25) stun: using server
  252. (12:38:25) sound: Initializing sound output drivers.
  253. (12:38:25) prefs: /pidgin/conversations/placement changed, scheduling save.
  254. (12:38:25) prefs: purple_prefs_connect_callback: Unknown pref /pidgin/conversations/im/show_protocol_icons
  255. (12:38:25) gtkblist: added visibility manager: 1
  256. (12:38:25) docklet: created
  257. (12:38:25) util: Reading file blist.xml from directory /home/lijt/.purple
  258. (12:38:26) msim: msim_uid2username_from_blist: no buddies?
  259. (12:38:26) msim: msim_uid2username_from_blist: no buddies?
  260. (12:38:26) msim: msim_uid2username_from_blist: no buddies?
  261. (12:38:26) plugins: probing /usr/lib/gaim/docklet.so
  262. (12:38:26) plugins: Unable to find saved plugin /usr/lib/gaim/docklet.so
  263. (12:38:26) plugins: Loading saved plugin /usr/lib/pidgin/notify.so
  264. (12:38:26) pounce: Error reading pounces: 打开文件“/home/lijt/.purple/pounces.xml”失败:没有该文件或目录
  265. (12:38:26) ui_main: Failed to load the default window icon (scalablepx version)!
  266. (12:38:26) Session Management: ICE initialized.
  267. (12:38:26) Session Management: Connecting with no previous ID
  268. (12:38:26) Session Management: Handling new ICE connection...
  269. (12:38:26) done.
  270. (12:38:26) Session Management: Connected to manager (GnomeSM) with client ID 11c0a8648c000121436870600000063400026
  271. (12:38:26) Session Management: Using /usr/bin/pidgin as command
  272. (12:38:26) gtkspell: Failed to setup GtkSpell: aspell: No word lists can be found for the language "zh_CN".
  273. (12:38:26) dbus: Need to register an object with the dbus subsystem. (If you are not a developer, please ignore this message.)
  274. (12:38:26) dbus: The signal "gtkblist-hiding" caused some dbus error. (If you are not a developer, please ignore this message.)
  275. (12:38:26) util: Writing file /home/lijt/.purple/icons/c4e0fb5a029d14c244d2862ad9653e4fa80cbc2f.png
  276. (12:38:26) util: Writing file /home/lijt/.purple/icons/c4e0fb5a029d14c244d2862ad9653e4fa80cbc2f.png
  277. (12:38:26) util: Writing file /home/lijt/.purple/icons/c4e0fb5a029d14c244d2862ad9653e4fa80cbc2f.png
  278. (12:38:26) util: Writing file /home/lijt/.purple/icons/e57c5121bd4ce975be31db3025dfc108fea9bf10.jpg
  279. (12:38:26) util: Writing file /home/lijt/.purple/icons/c4e0fb5a029d14c244d2862ad9653e4fa80cbc2f.png
  280. (12:38:26) util: Writing file /home/lijt/.purple/icons/c4e0fb5a029d14c244d2862ad9653e4fa80cbc2f.png
  281. (12:38:26) util: Writing file /home/lijt/.purple/icons/c4e0fb5a029d14c244d2862ad9653e4fa80cbc2f.png
  282. (12:38:26) util: Writing file /home/lijt/.purple/icons/c4e0fb5a029d14c244d2862ad9653e4fa80cbc2f.png
  283. (12:38:26) Session Management: Received first save_yourself
  284. (12:38:26) Session Management: Received save_complete
  285. (12:38:26) docklet: embedded
  286. (12:38:26) network: Entering nm_callback_func!
  287. (12:38:29) account: Connecting to account 138xxxxxxxx@
  288. (12:38:29) connection: Connecting. gc = 0xe80ce0
  289. (12:38:29) fetion:: IsCMccNo:[1381132]
  290. (12:38:29) util: Reading file 138xxxxxxxx-SysCfg.xml from directory /home/lijt/.purple
  291. (12:38:29) fetion: systemconfig:cfg_ver[(null)]
  292. (12:38:29) dns: DNS query for 'nav.fetion.com.cn' queued
  293. (12:38:29) dns: Debugger detected, performing useless query...
  294. (12:38:29) dns: Created new DNS child 13138, there are now 1 children.
  295. (12:38:29) dns: Successfully sent DNS request to child 13138
  296. (12:38:29) dns: Got response for 'nav.fetion.com.cn'
  297. (12:38:29) dnsquery: IP resolved for nav.fetion.com.cn
  298. (12:38:29) proxy: Attempting connection to 221.130.45.201
  299. (12:38:29) proxy: Connecting to nav.fetion.com.cn:80 with no proxy
  300. (12:38:29) proxy: Connection in progress
  301. (12:38:29) proxy: Connected to nav.fetion.com.cn:80.
  302. (12:38:29) Fetion:: send:POST /nav/getsystemconfig.aspx HTTP/1.1
  303. User-Agent: IIC2.0/pc 2.3.0230
  304. Host: nav.fetion.com.cn
  305. Content-Length: 272
  306. Connection: Close

  307. <config><user mobile-no="138xxxxxxxx" /><client type="PC" version="2.3.0230" platform="W5.1" /><servers version="63" /><service-no version="27" /><parameters version="34" /><hints version="28" /><http-applications version="31" /><client-config version="35" /></config>

  308. B
  309. (12:38:29) account: Disconnecting account 0x867d60
  310. (12:38:29) connection: Disconnecting connection 0xe80ce0
  311. (12:38:29) connection: Destroying connection 0xe80ce0

  312. Program received signal SIGSEGV, Segmentation fault.
  313. [Switching to Thread 0x7f4209e667a0 (LWP 13130)]
  314. 0x00007f42069ff060 in strlen () from /lib/libc.so.6
  315. (gdb) bt
  316. #0  0x00007f42069ff060 in strlen () from /lib/libc.so.6
  317. #1  0x00007f42069cbe1a in vfprintf () from /lib/libc.so.6
  318. #2  0x00007f42069ef6ed in vasprintf () from /lib/libc.so.6
  319. #3  0x00007f42071eb470 in g_vasprintf () from /usr/lib/libglib-2.0.so.0
  320. #4  0x00007f42071d94d0 in g_strdup_vprintf () from /usr/lib/libglib-2.0.so.0
  321. #5  0x00007f42071d956d in g_strdup_printf () from /usr/lib/libglib-2.0.so.0
  322. #6  0x00007f41f839b248 in RetriveSysCfg_cb (sodata=0xe7a2b0, source=21, error_message=0x1 <Address 0x1 out of bounds>) at f_login.c:366
  323. #7  0x000000000046be51 in ?? ()
  324. #8  0x00007f42071ba262 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
  325. #9  0x00007f42071bd516 in ?? () from /usr/lib/libglib-2.0.so.0
  326. #10 0x00007f42071bd7d7 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
  327. #11 0x00007f4208900f03 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
  328. #12 0x0000000000486c0a in main ()
  329. (gdb) bt full
  330. #0  0x00007f42069ff060 in strlen () from /lib/libc.so.6
  331. No symbol table info available.
  332. #1  0x00007f42069cbe1a in vfprintf () from /lib/libc.so.6
  333. No symbol table info available.
  334. #2  0x00007f42069ef6ed in vasprintf () from /lib/libc.so.6
  335. No symbol table info available.
  336. #3  0x00007f42071eb470 in g_vasprintf () from /usr/lib/libglib-2.0.so.0
  337. No symbol table info available.
  338. #4  0x00007f42071d94d0 in g_strdup_vprintf () from /usr/lib/libglib-2.0.so.0
  339. No symbol table info available.
  340. #5  0x00007f42071d956d in g_strdup_printf () from /usr/lib/libglib-2.0.so.0
  341. No symbol table info available.
  342. #6  0x00007f41f839b248 in RetriveSysCfg_cb (sodata=0xe7a2b0, source=21, error_message=0x1 <Address 0x1 out of bounds>) at f_login.c:366
  343.         buf = '\0' <repeats 10239 times>
  344.         cur = (
  345.     gchar *) 0x1483c1d "\217�\235�添�\212�好�\217\213�\200\202" /><item key="online-garden-desc" value="" /><item key="mobile-no-dist" value="&lt;r&gt;&lt;c v=&quot;cmcc&quot;&gt;&lt;d s=&quot;13500000000&quot; e=&quot;13999999999&quot;/&gt;&l"...
  346.         msg_server = (gchar *) 0x8 <Address 0x8 out of bounds>
  347.         ssic_server = (gchar *) 0xda7910 "\200\223\201"
  348.         por_server = (gchar *) 0x145ef20 ""
  349.         upload_server = (gchar *) 0x3ff0000000000000 <Address 0x3ff0000000000000 out of bounds>
  350.         cfg_size = (gchar *) 0x0
  351.         cfg_filename = (gchar *) 0x0
  352.         sip = (struct fetion_account_data *) 0xe7a2b0
  353.         len = 0
  354.         rcv_len = 0
  355.         root = (xmlnode *) 0xd97680
  356.         son_node = (xmlnode *) 0x7f4208b050d3
  357.         item = (xmlnode *) 0x7fff11e94970
  358.         __PRETTY_FUNCTION__ = "RetriveSysCfg_cb"
  359. #7  0x000000000046be51 in ?? ()
  360. No symbol table info available.
  361. #8  0x00007f42071ba262 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
  362. No symbol table info available.
  363. #9  0x00007f42071bd516 in ?? () from /usr/lib/libglib-2.0.so.0
  364. No symbol table info available.
  365. #10 0x00007f42071bd7d7 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
  366. No symbol table info available.
  367. #11 0x00007f4208900f03 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
  368. No symbol table info available.
  369. #12 0x0000000000486c0a in main ()
  370. No symbol table info available.
  371. (gdb) quit
  372. The program is running.  Exit anyway? (y or n) y
  373. lijt@lijt-buptnu:~$
复制代码


f_login.c:

  1. #include "internal.h"

  2. #include "accountopt.h"
  3. #include "blist.h"
  4. #include "conversation.h"
  5. #include "dnsquery.h"
  6. #include "debug.h"
  7. #include "notify.h"
  8. #include "privacy.h"
  9. #include "prpl.h"
  10. #include "plugin.h"
  11. #include "util.h"
  12. #include "version.h"
  13. #include "network.h"
  14. #include "xmlnode.h"
  15. #include "request.h"
  16. #include "imgstore.h"
  17. #include "sslconn.h"

  18. #include "sipmsg.h"
  19. #include "dnssrv.h"
  20. #include "ntlm.h"

  21. #include "sipmsg.h"
  22. #include "f_login.h"


  23. void fetion_subscribe_exp(struct fetion_account_data *sip, struct fetion_buddy *buddy)
  24. {
  25.         GSList *buddy_list;
  26.         gchar body[10240],*hdr;

  27.         memset(body,0,sizeof(body));
  28.         g_strlcat(body,"<args><subscription><contacts>",10240);
  29.         hdr = g_strdup_printf("N: presence\r\n");
  30.         if(buddy==NULL)
  31.         {
  32.                 buddy_list = purple_find_buddies(sip->account,NULL);
  33.                 for(;buddy_list;buddy_list = g_slist_next(buddy_list))
  34.                 {
  35.                         if((strncmp( ((PurpleBuddy *) buddy_list->data)->name,"sip",3)==0) &&(strcmp( ((PurpleBuddy *) buddy_list->data)->name,sip->uri)!=0))               
  36.                         {
  37.                                 g_strlcat(body,"<contact uri="",10240);
  38.                                 purple_debug_info("fetion:sub","name=[%s]\n",((PurpleBuddy *) buddy_list->data)->name);
  39.                                 g_strlcat(body,((PurpleBuddy *) buddy_list->data)->name,10240);       
  40.                                 g_strlcat(body,"" />",10240);
  41.                         }
  42.                         else
  43.                                 continue;
  44.                 }

  45.         }
  46.         else
  47.         {
  48.                 g_strlcat(body,"<contact uri="",10240);
  49.                 g_strlcat(body,buddy->name,10240);
  50.                 g_strlcat(body,"" />",10240);
  51.         }
  52.         g_strlcat(body,"</contacts>",10240);
  53.         g_strlcat(body,"<presence><basic attributes="all" /><personal attributes="all" /><extended types="sms;location;listening;ring-back-tone" /></presence></subscription><subscription><contacts><contact uri="",10240);
  54.         g_strlcat(body,sip->uri,10240);
  55.         g_strlcat(body,"" /></contacts><presence><extended types="sms;location;listening;ring-back-tone" /></presence></subscription></args>",10240);


  56.         purple_debug_info("fetion:sub","name=[%s]\n",body);

  57.         send_sip_request(sip->gc, "SUB", "", "",hdr, body,NULL,
  58.                         process_subscribe_response );


  59. }

  60. void do_register_exp(struct fetion_account_data *sip, gint expire)
  61. {
  62.         gchar *body=NULL;
  63.         gchar *hdr=NULL;

  64.         sip->reregister = time(NULL) + expire - 100;
  65.         body = g_strdup_printf(" <args><device type="PC" version="0" client-version="2.3.0230" /><caps value="fetion-im;im-session;temp-group" /><events value="contact;permission;system-message" /><user-info attributes="all" /><presence><basic value="400" desc="" /></presence></args>");
  66.         if(sip->registerstatus == FETION_REGISTER_RETRY)
  67.         {
  68.                 hdr = g_strdup_printf("A: Digest response="%s",cnonce="%s"\r\n",
  69.                                 sip->registrar.digest_session_key,sip->registrar.cnonce );
  70.         }
  71.         else if(sip->registerstatus == FETION_REGISTER_COMPLETE)
  72.         {
  73.                 if(expire==0)
  74.                         hdr = g_strdup_printf("X: 0\r\n");
  75.                 g_free(body);
  76.                 body=NULL;
  77.         }
  78.         else
  79.         {
  80.                 sip->registerstatus = FETION_REGISTER_SENT;
  81.                 hdr=NULL;
  82.         }


  83.         send_sip_request(sip->gc, "R", "", "", hdr, body, NULL,
  84.                         process_register_response);
  85.         if(body!=NULL)
  86.                 g_free(body);
  87.         if(hdr!=NULL)
  88.                 g_free(hdr);
  89. }

  90. void do_register(struct fetion_account_data *sip)
  91. {
  92.         do_register_exp(sip, sip->registerexpire);
  93. }
  94. gboolean read_cookie(gpointer sodata, PurpleSslConnection * source, gint con)
  95. {
  96.         gchar buf[10240];
  97.         gchar *cur=NULL;
  98.         gchar *end=NULL;
  99.         const gchar *uri=NULL;
  100.         xmlnode *isc,*item;
  101.         gint len,rcv_len;
  102.         PurpleSslConnection* gsc;
  103.         struct fetion_account_data *sip;
  104.         sip=sodata;
  105.         purple_debug_info("fetion:","read cookie\n");
  106.         gsc=(PurpleSslConnection*) source;
  107.         rcv_len=purple_ssl_read(gsc,buf,10240);
  108.         if(rcv_len>0)
  109.         {
  110.                 buf[rcv_len]='\0';
  111.                 purple_debug_info("fetion:","read_cookie:%s\n",buf);
  112.                 cur=strstr(buf,"Cookie: ssic=");
  113.                 if(cur!=NULL)
  114.                 {
  115.                         cur+=13;
  116.                         end=strstr(cur,";");
  117.                         sip->ssic = g_strndup(cur,end-cur);
  118.                         purple_debug_info("fetion:","read_cookie:[%s]\n",sip->ssic);
  119.                         //        end=purple_url_encode(sip->ssic);
  120.                         //        purple_debug_info("fetion:","read_cookie:[%s]\n",end);
  121.                 }

  122.                 if( (cur = strstr(buf,"\r\n\r\n")))
  123.                 {
  124.                         if (((strncmp(buf, "HTTP/1.1 200 OK\r\n", 17) != 0) &&
  125.                                                 (strncmp(buf, "HTTP/1.1 100 Continue\r\n", 23) != 0)))
  126.                         {
  127.                                 purple_connection_error_reason(sip->gc,
  128.                                                 PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED,

  129.                                                 _("Invalid Password or Mobileno"));

  130.                                 return FALSE;
  131.                         }

  132.                         cur+=4;
  133.                         len = strlen(cur);
  134.                         isc = xmlnode_from_str(cur, len);
  135.                         g_return_val_if_fail(isc!=NULL,FALSE);
  136.                         item = xmlnode_get_child(isc,"user");
  137.                         g_return_val_if_fail(item!=NULL,FALSE);
  138.                         uri = xmlnode_get_attrib(item,"uri");
  139.                         g_return_val_if_fail(uri!=NULL,FALSE);
  140.                         sip->uri = g_strdup(uri);
  141.                         cur = strstr(uri,"@");
  142.                         g_return_val_if_fail(cur!=NULL,FALSE);
  143.                         *cur='\0';
  144.                         sip->username = g_strdup_printf("%s",uri+4);
  145.                         purple_debug_info("fetion:","cookie[%s]\n",sip->username);
  146.                         purple_timeout_remove(sip->registertimeout);
  147.                         srvresolved(sip);

  148.                         xmlnode_free(isc);
  149.                         purple_ssl_close(gsc);

  150.                         return TRUE;

  151.                 }


  152.         }
  153.         purple_ssl_close(gsc);
  154.         return FALSE;
  155. }



  156. gboolean Ssi_cb(gpointer sodata, PurpleSslConnection * gsc, gint con)
  157. {
  158.         gchar *head;
  159.         struct fetion_account_data *sip;
  160.         sip=sodata;
  161.         purple_debug_info("Fetion:","Ssi_cb\n");
  162.         if(sip->mobileno!=NULL)
  163.         {
  164.                 head = g_strdup_printf(
  165.                                 "GET /ssiportal/SSIAppSignIn.aspx?mobileno=%s&pwd=%s  HTTP/1.1\r\n"
  166.                                 "User-Agent: IIC2.0/pc 2.3.0230\r\n"
  167.                                 "Host: %s\r\n"
  168.                                 "Connection: Keep-Alive\r\n\r\n",
  169.                                 sip->mobileno,sip->password,sip->SsicServer
  170.                                 );
  171.         }
  172.         else
  173.         {
  174.                 head = g_strdup_printf(
  175.                                 "GET /ssiportal/SSIAppSignIn.aspx?sid=%s&pwd=%s  HTTP/1.1\r\n"
  176.                                 "User-Agent: IIC2.0/pc 2.3.0230\r\n"
  177.                                 "Host: %s\r\n"
  178.                                 "Connection: Keep-Alive\r\n\r\n",
  179.                                 sip->username,sip->password,sip->SsicServer
  180.                                 );
  181.         }
  182.         purple_ssl_write(gsc,head,strlen(head));

  183.         purple_ssl_input_add(gsc,(PurpleSslInputFunction) read_cookie, sip);
  184.         return TRUE;
  185. }

  186. void LoginToSsiPortal(gpointer sodata)
  187. {
  188.         PurpleSslConnection *gsc;
  189.         struct fetion_account_data *sip;
  190.         sip=sodata;
  191.         purple_debug_info("Fetion:","LoginToSsiPortal\n");

  192.         gsc = purple_ssl_connect(sip->account,sip->SsicServer,
  193.                         PURPLE_SSL_DEFAULT_PORT,(PurpleSslInputFunction) Ssi_cb,NULL,sip);
  194.         g_return_if_fail(gsc != NULL);

  195.         purple_debug_info("Fetion:","SSL connected\n");


  196. }
  197. /* ret:  0  ok
  198. *         -1  no file
  199. *        -2  error in parse node
  200. *        -3  NULL mobile && NULL sid
  201. */
  202. gint  ParseCfg(struct fetion_account_data *sip)
  203. {
  204.         xmlnode *root,*son_node,*item;
  205.         gchar *cur;
  206.         gchar *msg_server,*ssic_server,*por_server,*upload_server;
  207.         gchar *server_ver;
  208.         gchar *cfg_filename;
  209.         if(sip->mobileno!=NULL)
  210.                 cfg_filename = g_strdup_printf("%s-SysCfg.xml",sip->mobileno);
  211.         else if(sip->username!=NULL)
  212.                 cfg_filename = g_strdup_printf("%s-SysCfg.xml",sip->username);
  213.         else
  214.                 return -3;


  215.         root = purple_util_read_xml_from_file(cfg_filename,"SysCfg.xml");
  216.         if(root==NULL)
  217.                 return -1;
  218.         son_node = xmlnode_get_child(root,"servers");
  219.         g_return_val_if_fail(son_node!=NULL,-2);
  220.         server_ver = xmlnode_get_attrib(son_node,"version");
  221.         sip->ServerVersion = g_strdup(server_ver);
  222.         purple_debug_info("fetion","systemconfig:cfg_ver[%s]\n",sip->CfgVersion);
  223.         item = xmlnode_get_child(son_node,"sipc-proxy");
  224.         g_return_val_if_fail(item!=NULL,-2);
  225.         msg_server = g_strdup(xmlnode_get_data(item));
  226.         item = xmlnode_get_child(son_node,"ssi-app-sign-in");
  227.         g_return_val_if_fail(item!=NULL,-2);
  228.         ssic_server = g_strdup(xmlnode_get_data(item));

  229.         item = xmlnode_get_child(root,"http-applications/get-portrait");
  230.         g_return_val_if_fail(item!=NULL,-2);
  231.         por_server = g_strdup(xmlnode_get_data(item));

  232.         item = xmlnode_get_child(root,"http-applications/set-portrait");
  233.         g_return_val_if_fail(item!=NULL,-2);
  234.         upload_server = g_strdup(xmlnode_get_data(item));

  235.         cur = strstr(msg_server,":");
  236.         *cur='\0';
  237.         cur++;
  238.         sip->MsgServer = g_strdup(msg_server);
  239.         sip->MsgPort = atoi(cur);

  240.         cur = strstr(ssic_server,"/ssiportal");       
  241.         *cur='\0';
  242.         cur = ssic_server+8;
  243.         sip->SsicServer=g_strdup(cur);

  244.         cur = strstr(por_server,"/hds");
  245.         *cur = '\0';
  246.         cur = por_server+7;
  247.         sip->PortraitServer = g_strdup(cur);

  248.         cur = strstr(upload_server,"/hds");
  249.         *cur = '\0';
  250.         cur = upload_server+7;
  251.         sip->UploadServer = g_strdup(cur);

  252.         son_node = xmlnode_get_child(root,"service-no");
  253.         g_return_val_if_fail(son_node!=NULL,-2);
  254.         sip->ServiceNoVersion = g_strdup(xmlnode_get_attrib(son_node,"version"));
  255.         son_node = xmlnode_get_child(root,"parameters");
  256.         g_return_val_if_fail(son_node!=NULL,-2);
  257.         sip->ParaVersion = g_strdup(xmlnode_get_attrib(son_node,"version"));
  258.         son_node = xmlnode_get_child(root,"hints");
  259.         g_return_val_if_fail(son_node!=NULL,-2);
  260.         sip->HintsVersion = g_strdup(xmlnode_get_attrib(son_node,"version"));
  261.         son_node = xmlnode_get_child(root,"http-applications");
  262.         g_return_val_if_fail(son_node!=NULL,-2);
  263.         sip->HttpAppVersion = g_strdup(xmlnode_get_attrib(son_node,"version"));
  264.         son_node = xmlnode_get_child(root,"client-config");
  265.         g_return_val_if_fail(son_node!=NULL,-2);
  266.         sip->ClientCfgVersion = g_strdup(xmlnode_get_attrib(son_node,"version"));

  267.         //LoginToSsiPortal(sip);
  268.         xmlnode_free(root);
  269.         g_free(msg_server);
  270.         g_free(ssic_server);
  271.         g_free(por_server);
  272.         g_free(cfg_filename);

  273.         return 0;
  274. }

  275. void RetriveSysCfg_cb(gpointer sodata, gint source, const gchar *error_message)
  276. {
  277.         gchar buf[10240];
  278.         gchar *cur;
  279.         gchar *msg_server,*ssic_server,*por_server,*upload_server;
  280.         gchar *cfg_size=NULL;
  281.         gchar *cfg_filename=NULL;
  282.         struct fetion_account_data *sip=sodata;
  283.         gint len,rcv_len;
  284.         xmlnode *root,*son_node, *item;
  285.         memset(buf,0,10240);
  286.         rcv_len = read(source,buf,10240);
  287.         if(rcv_len>0)
  288.         {
  289.                 if( (cur = strstr(buf,"\r\n\r\n")) )
  290.                 {
  291.                         if (strncmp(buf, "HTTP/1.1 200 OK\r\n", 17) != 0)
  292.                                 purple_connection_error_reason(sip->gc,
  293.                                                 PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED,
  294.                                                 _("Invalid Password or Mobileno"));
  295.                         cfg_size = get_token(buf, "Content-Length: ", "\r\n");
  296.                         if(cfg_size==NULL)
  297.                                 return;
  298.                         cur+=4;
  299.                         sip->SysCfg.size=atoi(cfg_size);
  300.                         sip->SysCfg.buf = g_malloc(sip->SysCfg.size);
  301.                         len=rcv_len-(cur-buf);
  302.                         sip->SysCfg.rcv_len=len;
  303.                         memcpy((sip->SysCfg.buf),cur,len);

  304.                 }
  305.                 else
  306.                 {
  307.                         cur = sip->SysCfg.buf + sip->SysCfg.rcv_len;
  308.                         if((sip->SysCfg.rcv_len)+rcv_len>(sip->SysCfg.size))
  309.                                 memcpy(cur,buf,(sip->SysCfg.size)-(sip->SysCfg.rcv_len));
  310.                         else
  311.                                 memcpy(cur,buf,rcv_len);
  312.                         sip->SysCfg.rcv_len+=rcv_len;
  313.                 }
  314.         }
  315.         else {
  316.                 purple_input_remove( sip->SysCfg.inpa );
  317.                 if(sip->mobileno!=NULL)
  318.                         cfg_filename = g_strdup_printf("%s-SysCfg.xml",sip->mobileno);
  319.                 else if(sip->username!=NULL)
  320.                         cfg_filename = g_strdup_printf("%s-SysCfg.xml",sip->username);
  321.                 else
  322.                         cfg_filename = g_strdup_printf("SysCfg.xml");


  323.                 root = xmlnode_from_str(sip->SysCfg.buf,sip->SysCfg.size);
  324.                 g_return_if_fail(root!=NULL);
  325.                 son_node = xmlnode_get_child(root,"servers");
  326.                 if(son_node==NULL)
  327.                 {
  328.                         LoginToSsiPortal(sip);
  329.                         return ;
  330.                 }
  331.                 purple_debug_info("fetion","systemconfig:after servers");
  332.                 item = xmlnode_get_child(son_node,"sipc-proxy");
  333.                 g_return_if_fail(item!=NULL);
  334.                 msg_server = g_strdup(xmlnode_get_data(item));
  335.                 item = xmlnode_get_child(son_node,"ssi-app-sign-in");
  336.                 g_return_if_fail(item!=NULL);
  337.                 ssic_server = g_strdup(xmlnode_get_data(item));

  338.                 item = xmlnode_get_child(root,"http-applications/get-portrait");
  339.                 g_return_if_fail(item!=NULL);
  340.                 por_server = g_strdup(xmlnode_get_data(item));

  341.                 item = xmlnode_get_child(root,"http-applications/set-portrait");
  342.                 g_return_if_fail(item!=NULL);
  343.                 upload_server = g_strdup(xmlnode_get_data(item));

  344.                 cur = strstr(msg_server,":");
  345.                 *cur='\0';
  346.                 cur++;
  347.                 sip->MsgServer = g_strdup(msg_server);
  348.                 sip->MsgPort = atoi(cur);

  349.                 cur = strstr(ssic_server,"/ssiportal");       
  350.                 *cur='\0';
  351.                 cur = ssic_server+8;
  352.                 sip->SsicServer=g_strdup(cur);

  353.                 cur = strstr(por_server,"/hds");
  354.                 *cur = '\0';
  355.                 cur = por_server+7;
  356.                 sip->PortraitServer = g_strdup(cur);

  357.                 cur = strstr(upload_server,"/hds");
  358.                 *cur = '\0';
  359.                 cur = upload_server+7;
  360.                 sip->UploadServer = g_strdup(cur);

  361.                 LoginToSsiPortal(sip);

  362.                 purple_util_write_data_to_file(cfg_filename, sip->SysCfg.buf,sip->SysCfg.size);

  363.                 g_free(msg_server);
  364.                 g_free(ssic_server);
  365.                 g_free(por_server);
  366.                 g_free(upload_server);



  367.         }


  368. }
  369. gint RetriveSysCfg(gpointer sodata, gint source, const gchar *error_message)
  370. {
  371.         gchar *data,*body;
  372.         gint body_len,header_len,writed_len;
  373.         gint fd;
  374.         struct fetion_account_data *sip=sodata;

  375.         if(sip->ServerVersion==NULL)
  376.                 sip->ServerVersion = g_strdup("0");
  377.         if(sip->ServiceNoVersion==NULL)
  378.                 sip->ServiceNoVersion = g_strdup("0");
  379.         if(sip->ParaVersion==NULL)
  380.                 sip->ParaVersion = g_strdup("0");
  381.         if(sip->HintsVersion==NULL)
  382.                 sip->HintsVersion = g_strdup("0");
  383.         if(sip->HttpAppVersion==NULL)
  384.                 sip->HttpAppVersion = g_strdup("0");
  385.         if(sip->ClientCfgVersion==NULL)
  386.                 sip->ClientCfgVersion = g_strdup("0");

  387.         fd=source;
  388.         body_len = 75;
  389.         if(sip->mobileno!=NULL)
  390.         {
  391.                 body = g_strdup_printf("<config><user mobile-no="%s" /><client type="PC" version="2.3.0230" platform="W5.1" /><servers version="%s" /><service-no version="%s" /><parameters version="%s" /><hints version="%s" /><http-applications version="%s" /><client-config version="%s" /></config>\r\n\r\n",sip->mobileno,sip->ServerVersion,sip->ServiceNoVersion,sip->ParaVersion,sip->HintsVersion,sip->HttpAppVersion,sip->ClientCfgVersion);
  392.         }
  393.         else
  394.         {
  395.                 body = g_strdup_printf("<config><user sid="%s" /><client type="PC" version="2.3.0230" platform="W5.1" /><servers version="%s" /><service-no version="%s" /><parameters version="%s" /><hints version="%s" /><http-applications version="%s" /><client-config version="%s" /></config>\r\n\r\n",sip->username,sip->ServerVersion,sip->ServiceNoVersion,sip->ParaVersion,sip->HintsVersion,sip->HttpAppVersion,sip->ClientCfgVersion);
  396.         }
  397.         body_len = strlen(body);
  398.         data = g_strdup_printf("POST /nav/getsystemconfig.aspx HTTP/1.1\r\n"
  399.                         "User-Agent: IIC2.0/pc 2.3.0230\r\n"
  400.                         "Host: %s\r\n"
  401.                         "Content-Length: %d\r\n"
  402.                         "Connection: Close\r\n\r\n",
  403.                         sip->SysCfgServer,
  404.                         (int) body_len);
  405.         header_len = strlen(data);
  406.         data = g_realloc(data, header_len + body_len);
  407.         memcpy(data + header_len, body, body_len);

  408.         (sip->SysCfg).inpa = purple_input_add(fd, PURPLE_INPUT_READ,(PurpleInputFunction) RetriveSysCfg_cb, sip);
  409.         writed_len = write(fd,data, header_len+body_len);


  410.         purple_debug_info("Fetion:","send:%s\n",data);

  411.         g_free(data);
  412.         g_free(body);

  413.         return 0;
  414. }

  415. void fetion_login(PurpleAccount *account)
  416. {
  417.         PurpleConnection *gc;
  418.         struct fetion_account_data *sip;
  419.         gchar **userserver;
  420.         gint ret;

  421.         const char *username = purple_account_get_username(account);
  422.         gc = purple_account_get_connection(account);
  423.         gc->proto_data = sip = g_new0(struct fetion_account_data, 1);
  424.         sip->gc = gc;
  425.         sip->tg = 0; //temp group chat id
  426.         sip->account = account;
  427.         sip->registerexpire = 400;
  428.         sip->txbuf = purple_circ_buffer_new(0);
  429.         sip->impresa=NULL;
  430.         sip->icon_buf = purple_circ_buffer_new(0);
  431.         sip->GetContactFlag = 0;

  432.         userserver = g_strsplit(username, "@", 2);
  433.         purple_connection_set_display_name(gc, userserver[0]);
  434.         if(IsCMccNo(userserver[0]))
  435.         {
  436.                 sip->username = NULL;
  437.                 sip->mobileno = g_strdup(userserver[0]);
  438.         }
  439.         else
  440.         {
  441.                 sip->mobileno = NULL;
  442.                 sip->username = g_strdup(userserver[0]);
  443.         }
  444.         //        sip->servername = g_strdup(userserver[1]);
  445.         sip->SysCfgServer = g_strdup("nav.fetion.com.cn");
  446.         sip->password = g_strdup(purple_connection_get_password(gc));
  447.         g_strfreev(userserver);

  448.         sip->buddies = g_hash_table_new((GHashFunc)fetion_ht_hash_nick, (GEqualFunc)fetion_ht_equals_nick);
  449.         sip->tempgroup = g_hash_table_new((GHashFunc)fetion_ht_hash_nick, (GEqualFunc)fetion_ht_equals_nick);
  450.         sip->group = g_hash_table_new((GHashFunc)fetion_ht_hash_nick, (GEqualFunc)fetion_ht_equals_nick);
  451.         sip->group2id = g_hash_table_new((GHashFunc)fetion_ht_hash_nick, (GEqualFunc)fetion_ht_equals_nick);

  452.         purple_connection_update_progress(gc, _("Connecting"), 1, 2);

  453.         /* TODO: Set the status correctly. */
  454.         sip->status = g_strdup("available");
  455.         sip->registertimeout = purple_timeout_add(12000,(GSourceFunc) LoginToSsiPortal,sip);
  456.         //Try to get systemconfig
  457.         sip->ServerVersion = NULL;
  458.         sip->ServiceNoVersion = NULL;
  459.         sip->ParaVersion = NULL;
  460.         sip->HttpAppVersion = NULL;
  461.         sip->ClientCfgVersion = NULL;
  462.         sip->HintsVersion = NULL;
  463.         ret = ParseCfg(sip);
  464.         //if(ret!=0)
  465.         sip->SysCfg.conn = purple_proxy_connect(NULL,sip->account,sip->SysCfgServer,80,(PurpleProxyConnectFunction) RetriveSysCfg,sip);


  466. }
复制代码
回复 支持 反对

使用道具 举报

发表于 2008-7-3 14:14:26 | 显示全部楼层
最近好像登录不上去了。用官方的feition倒是没有问题。大家也是同样的情况吗?
(08:09:54) fetion: fetion_input_cb: read error
===============
现在好像可以了,我什么也没有修改阿。
回复 支持 反对

使用道具 举报

发表于 2008-7-6 09:55:31 | 显示全部楼层
Post by guess25;1848604
我用的是ubuntu 8.04 AMD64  pidgin2.4.1
HOME/.purple/plugins/ 这个目录没有,创建后加入文件,在协议里没有fetion
/usr/lib/purple-2/这个目录有,加入文件后,协议里还是没有
/usr/local/lib/purple-2/这个目录也没有,创建目录后加入文件,在协议里还是没有

请问我该怎么办???


我的也是这种情况,pidgin都不知道被我卸了有重装了多少次,数都数不清楚了!唉!help me please!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表