From: Erin R. <nr...@ma...> - 2003-03-04 22:58:26
|
Hi, I am still working on the problem with "no route to host" when trying to connect to the server over irda stack. But no luck! I have looked into the irdadump and various files in /proc/net/irda this time, and here is what I have. I am using my Zaurus as the ir server, as it blocks to accept connections, *********in proc/net/irda/irias, it shows: LM-IAS Objects: name: Salutation-Lite, id=77594 - Attribute name: "IrDA:TinyTP:LsapSel", value[IAS_INTEGER]: 16 name: Device, id=0 - Attribute name: "IrLMPSupport", value[IAS_OCT_SEQ]: octet sequence (3 bytes) - Attribute name: "DeviceName", value[IAS_STRING]: "Linux" *********and /proc/net/irda/irlmp: Unconnected LSAPs: lsap state: LSAP_DISCONNECTED, slsap_sel: 0x10, dlsap_sel: 0xff, (Salutation-Lite) lsap state: LSAP_DISCONNECTED, slsap_sel: 0x0, dlsap_sel: 0xff, (IrIAS srv) Registred Link Layers: lap state: LAP_STANDBY, saddr: 0x74462a97, daddr: 0xffffffff, num lsaps: 0 Connected LSAPs: So, the name that's binded to my server socket is "Salutation-Lite", and my server program is referenced at lsap-sel 0x10. Seems fine. My client runs on the laptop, and this is my section of the code after creating the socket: struct sockaddr_irda address; address.sir_family = AF_IRDA; strncpy (address.sir_name, "Salutation-Lite:IrDA:TinyTP:LsapSel", 45); address.sir_lsap_sel = LSAP_ANY; address.sir_addr = list->dev[0].daddr; printf("Connecting to: %x, %s\n", address.sir_addr, address.sir_name); // if (connect (fd, (struct sockaddr *)&address, sizeof (address)) < 0) { fprintf(stderr, "Connecting to the server failed. Error: %s %d\n", strerror(errno), errno); } And it fails at connect, and I get "no route to host". ********So, I looked at the irdadump output on my laptop, and it shows: 400 [ Computer LAN Access ] (37) 22:32:08.386813 xid:cmd 94b085cd > ffffffff S=6 s=0 (14) 22:32:08.476818 xid:cmd 94b085cd > ffffffff S=6 s=1 (14) 22:32:08.566810 xid:cmd 94b085cd > ffffffff S=6 s=2 (14) 22:32:08.656810 xid:cmd 94b085cd > ffffffff S=6 s=3 (14) 22:32:08.746813 xid:cmd 94b085cd > ffffffff S=6 s=4 (14) 22:32:08.836810 xid:cmd 94b085cd > ffffffff S=6 s=5 (14) 22:32:08.914520 xid:rsp 94b085cd < 74462a97 S=6 s=5 Linux hint=0400 [ Computer ] (21) 22:32:08.926858 xid:cmd 94b085cd > ffffffff S=6 s=* cpe000347740c87-cm013 hint=4400 [ Computer LAN Access ] (37) 22:32:10.323329 snrm:cmd ca=fe pf=1 94b085cd > 74462a97 new-ca=ce (33) 22:32:10.428053 ua:rsp ca=ce pf=1 94b085cd < 74462a97 (32) 22:32:10.428203 rr:cmd > ca=ce pf=1 nr=0 (2) 22:32:10.676819 rr:cmd > ca=ce pf=1 nr=0 (2) 22:32:11.176826 rr:cmd > ca=ce pf=1 nr=0 (2) (more rr:cmd) It seems like the laptop's snrm:cmd has succeeded over irlap, since ua is received. But, sending rr (receive ready) command to the Zaurus had no responses, as the Z blocks at the accept command. ******** When the client is running, in the /proc/net/irda/irlmp on the laptop, I have : Unconnected LSAPs: lsap state: LSAP_DISCONNECTED, slsap_sel: 0x10, dlsap_sel: 0xff, (IrLAN ctrl (p)) lsap state: LSAP_DISCONNECTED, slsap_sel: 0x0, dlsap_sel: 0xff, (IrIAS srv) Registred Link Layers: lap state: LAP_ACTIVE, saddr: 0x94b085cd, daddr: 0x74462a97, num lsaps: 1 Connected LSAPs: lsap state: LSAP_SETUP, slsap_sel: 0x11, dlsap_sel: 0x0, (IrIAS cli) It seems like the client is trying to communicate with the ias server at Z who is referenced on Z at selector 0x0. I know that when connect() is called, ias function is also called to resolve the selector associated with "Salutation-Lite", but, how come the server ias is not responding?? Can someone please give me some hints?? Thanks! -- Erin Ren <nr...@ma...> |