On Sat, Aug 12, 2006 at 05:50:00PM +0400, Sergey Vlasov wrote: > On Fri, Aug 11, 2006 at 10:44:53PM +0400, Sergey Vlasov wrote: > > После 1.1 вроде бы изменений ABI больше не было (во всяком случае, > > файл lib/obex.sym больше не менялся). > > Враньё. Точнее, lib/obex.sym действительно не менялся, а вот > изменения, затрагивающие ABI, были - между версиями 1.1 и 1.2: > > > Add support for suspend after sending a header > > +#define OBEX_FL_SUSPEND 0x10 /* Suspend after sending this header */ > > (это новый флаг для функции OBEX_ObjectAddHeader) > > > Add support for empty headers for buggy OBEX servers (e.g. Teleca) > > +#define OBEX_HDR_EMPTY 0x00 /* Empty header (buggy OBEX servers) */ > > > Add OBEX_EV_REQCHECK support > > +#define OBEX_EV_REQCHECK 11 /* First packet of an incoming request has been parsed */ > > > И что в таком случае делать? Если добавились новые флаги, тогда вешать эти функции, к которым идут новые флаги, на новый интерфейс 1.2 -- чтобы на интерфейсе 1.2 эти функции были с двумя собаками. А в качестве совместимости прицепить эти же функции на интерфейс 1.1, но с одной собакой. Тогда весь новый код, который потенциально использует новые флаги, сядет на 1.2, а старый код по-прежнему будет видеть 1.1. Как это делать с ходу не скажу, проще попробовать. В dsohowto про это есть.