> it's pretty clear some kind of negotiation is failing inside the 'af_irda'
> stack/code. anyone have any ideas? i didn't see any patches since 2.4.18
well, i found the problem. there's some bug twixt ircp (v0.2), OpenOBEX
(v0.9.8) and the RH8 linux/net/irda/af_irda.c code.
what it boils down to:
af_irda.c::irda_bind() gets a registration for the service type
(eg, "OBEX") from the user-app bind() call
irobex.c::irobex_listen() is registering itself with bind() where the
service is passed in via OBEX_ServerRegister()
ircp_server.c::ircp_srv_recv() registers itself as a listening agent with
OpenOBEX, and hence af_irda stack, for the communication type
"OBEX:IrXfer" ... what it _should_ be registering itself as is
apparently "OBEX". this may be a microsoft-ism, or it may be a
genuine problem... but the patch below fixes my problems.
not knowing enough about how this is supposed to work, i assume this is
either a simple bug in ircp's setup of the server, __or__ it's a serious
"thinking" bug where the ircp server is trying to register multiple types
to handle ("OBEX" and "IrXfer"), hence it expects something higher up
the food chain to break this string down and register individual pieces.
which is it, i wonder?
now i can replace pocketPC on the iPaq with linux, and without booting to
windows to do the job!
diff -ur ircp-0.2 ircp-0.2-josh/
diff -ur ircp-0.2/src/ircp_server.c ircp-0.2-josh/src/ircp_server.c
--- ircp-0.2/src/ircp_server.c 2000-12-06 16:10:44.000000000 -0500
+++ ircp-0.2-josh/src/ircp_server.c 2002-10-04 01:29:03.000000000 -0400
@@ -334,7 +334,8 @@
srv->dirdepth = 0;
- if(OBEX_ServerRegister(srv->obexhandle, "OBEX:IrXfer") < 0)
+// if(OBEX_ServerRegister(srv->obexhandle, "OBEX:IrXfer") < 0)
+ if(OBEX_ServerRegister(srv->obexhandle, "OBEX") < 0)
srv->inbox = inbox;
Get latest updates about Open Source Projects, Conferences and News.