- case 'ADL':\r
- // randomly, we get ADL command, someone add us to their contact list for MSNP15\r
- // NS: <<< ADL 0 {size}\r
- @list(/* ADL */, /* 0 */, $size,) = @explode(' ', $data);\r
- if (is_numeric($size) && $size > 0) {\r
- $data = $this->ns_readdata($size);\r
- preg_match('#<ml><d n="([^"]+)"><c n="([^"]+)"(.*) t="(\d*)"(.*) /></d></ml>#', $data, $matches);\r
- if (is_array($matches) && count($matches) > 0) {\r
- $u_domain = $matches[1];\r
- $u_name = $matches[2];\r
- $network = $matches[4];\r
- if (isset($this->aContactList[$u_domain][$u_name][$network]))\r
- $this->debug_message("*** Someone (network: $network) added us to their list (but already in our list): $u_name@$u_domain");\r
- else {\r
- $re_login = false;\r
- $cnt = 0;\r
- foreach (array('Allow', 'Reverse') as $list) {\r
+ case 'ADL':\r
+ // randomly, we get ADL command, someone add us to their contact list for MSNP15\r
+ // NS: <<< ADL 0 {size}\r
+ @list(/* ADL */, /* 0 */, $size) = @explode(' ', $data);\r
+ if (is_numeric($size) && $size > 0) {\r
+ $data = $this->ns_readdata($size);\r
+ preg_match('#<ml><d n="([^"]+)"><c n="([^"]+)"(.*) t="(\d*)"(.*) /></d></ml>#', $data, $matches);\r
+ if (is_array($matches) && count($matches) > 0) {\r
+ $u_domain = $matches[1];\r
+ $u_name = $matches[2];\r
+ $network = $matches[4];\r
+ if (isset($this->aContactList[$u_domain][$u_name][$network]))\r
+ $this->debug_message("*** Someone (network: $network) added us to their list (but already in our list): $u_name@$u_domain");\r
+ else {\r
+ $re_login = false;\r
+ $cnt = 0;\r
+ foreach (array('Allow', 'Reverse') as $list) {\r
+ if (!$this->addMemberToList($u_name.'@'.$u_domain, $network, $list)) {\r
+ if ($re_login) {\r
+ $this->debug_message("*** Could not add $u_name@$u_domain (network: $network) to $list list");\r
+ continue;\r
+ }\r
+ $aTickets = $this->get_passport_ticket();\r
+ if (!$aTickets || !is_array($aTickets)) {\r
+ // failed to login? ignore it\r
+ $this->debug_message("*** Could not re-login, something wrong here");\r
+ $this->debug_message("*** Could not add $u_name@$u_domain (network: $network) to $list list");\r
+ continue;\r
+ }\r
+ $re_login = true;\r
+ $this->ticket = $aTickets;\r
+ $this->debug_message("**** Got new ticket, trying again");\r