Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Jun 2011 12:02:33 -0700
From:      Maksim Yevmenkin <maksim.yevmenkin@gmail.com>
To:        Iain Hibbert <plunky@rya-online.net>
Cc:        freebsd-bluetooth@freebsd.org
Subject:   Re: obexapp & openobex-current
Message-ID:  <BANLkTi=M0z0bf3xXvxwhzeBijmdV-w2PQg@mail.gmail.com>
In-Reply-To: <alpine.NEB.2.00.1106211735230.14756@galant.ukfsn.org>
References:  <alpine.NEB.2.00.1106211735230.14756@galant.ukfsn.org>

next in thread | previous in thread | raw e-mail | index | archive | help

Hi Iain,

> openobex is aiming towards a 2.0 release so I thought I'd try it out.. I
> have forwarded a set of patches for some build failures on NetBSD which
> may also help for FreeBSD, but after that I have another issue
>
> The issue I found was that obexapp when linked with openobex-current fails
> to run in server mode.  I traced the problem to the custom transport
> backend does not have any method for setting a local address, which is
> implied by OBEX_ServerRegister passing one, but in truth there was never
> any actual point in passing an address here since a custom transport is
> responsible for its own addressing.
>
> The documentation was perhaps lacking before, but the following appears in
> the comments for OBEX_ServerRegister now;
>
>        Bind a server socket to an Obex service. Common transport have
>        specialised version of this function.
>        If you want to call the listen callback of the custom transport,
>        use NULL for saddr and 0 for addrlen.
>
> and so, changing server.c as below allows to the server to run just fine
> without any side effects, and I think that should be ok for earlier
> openobex versions too?

i think it looks fine :) thank you. i will give it a quick test in a
day or two and commit it. in the same time, it would be helpful if
someone who uses obexapp on freebsd give it a quick try as well.

thanks,
max


> --- /home/plunky/misc/orig/obexapp/server.c     2010-01-08 18:31:22.000000000 +0000
> +++ server.c    2011-06-21 15:47:47.000000000 +0100
> @@ -119,7 +119,6 @@ obexapp_server(obex_t *handle)
>  {
>        context_p                context = (context_p) OBEX_GetUserData(handle);
>        int                      error = -1;
> -       struct sockaddr_rfcomm   addr;
>
>        context->ss = sdp_open_local(NULL);
>        if (context->ss == NULL) {
> @@ -141,14 +140,7 @@ obexapp_server(obex_t *handle)
>                goto done;
>        }
>
> -       memset(&addr, 0, sizeof(addr));
> -       addr.rfcomm_len = sizeof(addr);
> -       addr.rfcomm_family = AF_BLUETOOTH;
> -       addr.rfcomm_channel = context->channel;
> -       memcpy(&addr.rfcomm_bdaddr, &context->laddr, sizeof(context->laddr));
> -
> -       if (OBEX_ServerRegister(handle, (struct sockaddr *) &addr,
> -                       sizeof(addr)) < 0) {
> +       if (OBEX_ServerRegister(handle, NULL, 0) < 0) {
>                log_err("%s(): OBEX_ServerRegister failed", __func__);
>                goto done;
>        }
>
> _______________________________________________
> freebsd-bluetooth@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-bluetooth
> To unsubscribe, send any mail to "freebsd-bluetooth-unsubscribe@freebsd.org"
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BANLkTi=M0z0bf3xXvxwhzeBijmdV-w2PQg>