@@ -55,7 +55,7 @@ static s32 __wiiuse_disconnected(void *arg,struct bte_pcb *pcb,u8 err)
5555
5656 bte_free (wml -> sock );
5757 wml -> sock = NULL ;
58-
58+
5959 wml -> wm = NULL ;
6060 return ERR_OK ;
6161}
@@ -131,25 +131,28 @@ int wiiuse_register(struct wiimote_listen_t *wml, struct bd_addr *bdaddr, struct
131131 bd_addr_set (& (wml -> bdaddr ),bdaddr );
132132 memset (wml -> name , 0 , sizeof (wml -> name ));
133133 wml -> assign_cb = assign_cb ;
134- if (wml -> sock == NULL )
134+
135+ if (wml -> sock != NULL )
135136 {
136- printf ("wml->sock was null \n" );
137- wml -> sock = bte_new () ;
137+ printf ("wiiuse_register: wml->sock was not NULL! \n" );
138+ return 0 ;
138139 }
139- else
140+
141+ wml -> sock = bte_new ();
142+ if (wml -> sock == NULL )
140143 {
141- printf ("err: %d / state: %d / bdaddr: %02x:%02x:%02x:%02x:%02x:%02x\n" , wml -> sock -> err , wml -> sock -> state , wml -> sock -> bdaddr .addr [5 ], wml -> sock -> bdaddr .addr [4 ], wml -> sock -> bdaddr .addr [3 ], wml -> sock -> bdaddr .addr [2 ], wml -> sock -> bdaddr .addr [1 ], wml -> sock -> bdaddr .addr [0 ]);
142- bte_free (wml -> sock );
143- wml -> sock = bte_new ();
144+ printf ("wiiuse_register: bte_new failed to alloc new sock\n" );
145+ return 0 ;
144146 }
145-
147+
146148 bte_arg (wml -> sock ,wml );
147149 bte_received (wml -> sock ,__wiiuse_receive );
148150 bte_disconnected (wml -> sock ,__wiiuse_disconnected );
149151
150152 err = bte_registerdeviceasync (wml -> sock ,bdaddr ,__wiiuse_connected );
151153 if (err == ERR_OK ) return 1 ;
152-
154+
155+ printf ("wiiuse_register: bte_registerdeviceasync failed(%d)\n" , err );
153156 return 0 ;
154157}
155158
@@ -166,9 +169,20 @@ int wiiuse_connect(struct wiimote_listen_t *wml, struct bd_addr *bdaddr, u8 *nam
166169 strncpy ((char * )wml -> name , (char * )name , sizeof (wml -> name ));
167170 wml -> name [sizeof (wml -> name ) - 1 ] = 0x00 ;
168171 wml -> assign_cb = assign_cb ;
169- if (wml -> sock == NULL )
170- wml -> sock = bte_new ();
171172
173+ if (wml -> sock != NULL )
174+ {
175+ printf ("wiiuse_connect: wml->sock was not NULL!\n" );
176+ return 0 ;
177+ }
178+
179+ wml -> sock = bte_new ();
180+ if (wml -> sock == NULL )
181+ {
182+ printf ("wiiuse_connect: bte_new failed to alloc new sock\n" );
183+ return 0 ;
184+ }
185+
172186 bte_arg (wml -> sock ,wml );
173187 bte_received (wml -> sock ,__wiiuse_receive );
174188 bte_disconnected (wml -> sock ,__wiiuse_disconnected );
@@ -177,7 +191,8 @@ int wiiuse_connect(struct wiimote_listen_t *wml, struct bd_addr *bdaddr, u8 *nam
177191
178192 err = bte_connectdeviceasync (wml -> sock ,bdaddr ,__wiiuse_connected );
179193 if (err == ERR_OK ) return 1 ;
180-
194+
195+ printf ("wiiuse_connect: bte_registerdeviceasync failed(%d)\n" , err );
181196 return 0 ;
182197}
183198
0 commit comments