DragonFly submit List (threaded) for 2008-07
DragonFly BSD
DragonFly submit List (threaded) for 2008-07
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

libevent upgrade from 1.3e to 1.4.5-stable


From: Antonio Huete Jimenez <tuxillo@xxxxxxxxxxxxxxxxx>
Date: Wed, 02 Jul 2008 23:37:13 +0200

Hi

Here's a working patch for upgrading libevent. It compiles just fine and I'm currently using in one of my DFBSD machines.

http://leaf.dragonflybsd.org/~tuxillo/patches/libevent145.diff

Bug fixes can be found in:

http://levent.svn.sourceforge.net/viewvc/levent/branches/patches-1.4/libevent/ChangeLog?revision=885&view=markup

I don't have the oportunity of checking with bluetooth because I don't have any device, so if someone has devices and time, please check.

Joerg,
About ABI changes, there are some functions that have been removed, and some parameters slightly changed:


evdns.h
-----------------------------
x Removed function -int evdns_resolv_conf_parse(int flags, const char *);
x Change in function
-int evdns_server_request_add_reply(struct evdns_server_request *req, int section, const char *name, int type, int class, int ttl, int datalen, int is_name, const char *data);
+int evdns_server_request_add_reply(struct evdns_server_request *req, int section, const char *name, int type, int dns_class, int ttl, int datalen, int is_name, const char *data);



event-internal.h -------------------- x Deleted RB_HEAD(event_tree, event) timetree;


event.h
--------------------
x Deleted check and structure if not defined:
#ifndef RB_ENTRY
#define _EVENT_DEFINED_RBENTRY
#define RB_ENTRY(type) \
struct { \
struct type *rbe_left; /* left element */ \
struct type *rbe_right; /* right element */ \
struct type *rbe_parent; /* parent element */ \
int rbe_color; /* node color */ \
}
#endif /* !RB_ENTRY */


x In event structure deleted RB_ENTRY (event) ev_timeout_node;
x Deleted void *event_init(void); and replaced with struct event_base *event_init(void);
x Replacement:
int bufferevent_write(struct bufferevent *bufev, void *data, size_t size);
int bufferevent_write(struct bufferevent *bufev, const void *data, size_t size);


x Parameter change:
void evtag_marshal(struct evbuffer *evbuf, uint8_t tag, const void *data, uint32_t len);
void evtag_marshal(struct evbuffer *evbuf, ev_uint32_t tag, const void *data, ev_uint32_t len);


        void encode_int(struct evbuffer *evbuf, uint32_t number);
        void encode_int(struct evbuffer *evbuf, ev_uint32_t number);

void evtag_marshal_int(struct evbuffer *evbuf, uint8_t tag, uint32_t integer);
void evtag_marshal_int(struct evbuffer *evbuf, ev_uint32_t tag, ev_uint32_t integer);


void evtag_marshal_string(struct evbuffer *buf, uint8_t tag, const char *string);
void evtag_marshal_string(struct evbuffer *buf, ev_uint32_t tag, const char *string);


void evtag_marshal_timeval(struct evbuffer *evbuf, uint8_t tag, struct timeval *tv);
void evtag_marshal_timeval(struct evbuffer *evbuf, ev_uint32_t tag, struct timeval *tv);


int evtag_unmarshal(struct evbuffer *src, uint8_t *ptag, struct evbuffer *dst);
int evtag_unmarshal(struct evbuffer *src, ev_uint32_t *ptag, struct evbuffer *dst);


        int evtag_peek(struct evbuffer *evbuf, uint8_t *ptag);
        int evtag_peek(struct evbuffer *evbuf, ev_uint32_t *ptag);

int evtag_peek_length(struct evbuffer *evbuf, uint32_t *plength);
int evtag_peek_length(struct evbuffer *evbuf, ev_uint32_t *plength);



I'll be missing something, for sure, but basically this is what I have been able to see.


Samuel Greear (sjg), I invite you to give your opinion here just like at IRC ;-)


-- * Please, consider your environment before printing this email Cheers tuxillo at EFNet in #dragonflybsd



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]