Mercurial > pidgin.yaz
view finch/libgnt/Makefile.am @ 23995:85bed17fe5c1
The variable we use to keep track of the watcher of the ssl connection
should be unsigned. This isn't really a problem in Pidgin, where we
use glib's mainloop and GIOChannels because glib starts assigning the
handle IDs sequentially starting from 1.
But if an eventloop implementation ever returns a handle ID greater
than the largest possible signed integer (2,147,483,647) then we
won't be able to remove the watcher because purple_ssl_close() in
sslconn.c only removes it if inpa > 0, and since it interprets inpa
as a signed value then handles over 2,147,483,647 appear as negative
numbers.
I stumbled upon this when playing around with libevent, which can
use epoll. My implementation generated a random handle ID which
was sometimes greater than 2,147,483,647.
I don't believe this breaks binary compatibility. And I don't think
it breaks source compatibility, but I guess it might depend on what
compiler you're using.
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Thu, 04 Sep 2008 18:04:29 +0000 |
parents | 35621ae24544 |
children | e2e57d3c0578 ff29208e03ef |
line wrap: on
line source
EXTRA_DIST=genmarshal SUBDIRS = . wms pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = gnt.pc lib_LTLIBRARIES = libgnt.la BUILT_SOURCES = gntmarshal.h libgnt_la_SOURCES = \ gntmarshal.c \ gntwidget.c \ gntbindable.c \ gntbox.c \ gntbutton.c \ gntcheckbox.c \ gntclipboard.c \ gntcolors.c \ gntcombobox.c \ gntentry.c \ gntfilesel.c \ gntkeys.c \ gntlabel.c \ gntline.c \ gntmenu.c \ gntmenuitem.c \ gntmenuitemcheck.c \ gntslider.c \ gntstyle.c \ gnttextview.c \ gnttree.c \ gntutils.c \ gntwindow.c \ gntwm.c \ gntws.c \ gntmain.c libgnt_la_headers = \ gntwidget.h \ gntbindable.h \ gntbox.h \ gntbutton.h \ gntcheckbox.h \ gntclipboard.h \ gntcolors.h \ gntcombobox.h \ gntentry.h \ gntfilesel.h \ gntkeys.h \ gntlabel.h \ gntline.h \ gntmarshal.h \ gntmenu.h \ gntmenuitem.h \ gntmenuitemcheck.h \ gntslider.h \ gntstyle.h \ gnttextview.h \ gnttree.h \ gntutils.h \ gntwindow.h \ gntwm.h \ gntws.h \ gnt.h CLEANFILES = \ gntmarshal.h \ gntmarshal.c gntmarshal.c: $(srcdir)/genmarshal gntmarshal.h echo "#include \"gntmarshal.h\"" > $@ glib-genmarshal --prefix=gnt_closure_marshal --body $(srcdir)/genmarshal >> $@ gntmarshal.h: $(srcdir)/genmarshal glib-genmarshal --prefix=gnt_closure_marshal --header $(srcdir)/genmarshal > $@ libgnt_laincludedir=$(includedir)/gnt libgnt_lainclude_HEADERS = \ $(libgnt_la_headers) libgnt_la_DEPENDENCIES = libgnt_la_LDFLAGS = -export-dynamic -version_info $(GNT_LT_VERSION_INFO) -no-undefined libgnt_la_LIBADD = \ $(GLIB_LIBS) \ $(GNT_LIBS) \ $(LIBXML_LIBS) \ $(PY_LIBS) AM_CPPFLAGS = \ $(GLIB_CFLAGS) \ $(GNT_CFLAGS) \ $(DEBUG_CFLAGS) \ $(LIBXML_CFLAGS) \ $(PY_CFLAGS)