diff options
Diffstat (limited to 'protocols/jabber')
| -rw-r--r-- | protocols/jabber/Makefile | 5 | ||||
| -rw-r--r-- | protocols/jabber/conference.c | 4 | ||||
| -rw-r--r-- | protocols/jabber/io.c | 4 | ||||
| -rw-r--r-- | protocols/jabber/jabber_util.c | 29 | ||||
| -rw-r--r-- | protocols/jabber/message.c | 4 | ||||
| -rw-r--r-- | protocols/jabber/s5bytestream.c | 14 | 
6 files changed, 21 insertions, 39 deletions
| diff --git a/protocols/jabber/Makefile b/protocols/jabber/Makefile index 78a02696..912ea702 100644 --- a/protocols/jabber/Makefile +++ b/protocols/jabber/Makefile @@ -7,6 +7,9 @@  ### DEFINITIONS  -include ../../Makefile.settings +ifdef SRCDIR +SRCDIR := $(SRCDIR)protocols/jabber/ +endif  # [SH] Program variables  objects = conference.o io.o iq.o jabber.o jabber_util.o message.o presence.o s5bytestream.o sasl.o si.o @@ -32,7 +35,7 @@ distclean: clean  $(objects): ../../Makefile.settings Makefile -$(objects): %.o: %.c +$(objects): %.o: $(SRCDIR)%.c  	@echo '*' Compiling $<  	@$(CC) -c $(CFLAGS) $< -o $@ diff --git a/protocols/jabber/conference.c b/protocols/jabber/conference.c index f434c58a..affe8aef 100644 --- a/protocols/jabber/conference.c +++ b/protocols/jabber/conference.c @@ -271,8 +271,10 @@ void jabber_chat_pkt_presence( struct im_connection *ic, struct jabber_buddy *bu  			bud->flags |= JBFLAG_IS_ANONYMOUS;  		} -		if( bud != jc->me ) +		if( bud != jc->me && bud->flags & JBFLAG_IS_ANONYMOUS )  		{ +			/* If JIDs are anonymized, add them to the local +			   list for the duration of this chat. */  			imcb_add_buddy( ic, bud->ext_jid, NULL );  			imcb_buddy_nick_hint( ic, bud->ext_jid, bud->resource );  		} diff --git a/protocols/jabber/io.c b/protocols/jabber/io.c index a14ad21c..d6f92a5f 100644 --- a/protocols/jabber/io.c +++ b/protocols/jabber/io.c @@ -63,7 +63,7 @@ int jabber_write( struct im_connection *ic, char *buf, int len )  		   it via the event handler. If not, add the handler. (In  		   most cases it probably won't be necessary.) */  		if( ( ret = jabber_write_queue( ic ) ) && jd->tx_len > 0 ) -			jd->w_inpa = b_input_add( jd->fd, GAIM_INPUT_WRITE, jabber_write_callback, ic ); +			jd->w_inpa = b_input_add( jd->fd, B_EV_IO_WRITE, jabber_write_callback, ic );  	}  	else  	{ @@ -503,7 +503,7 @@ gboolean jabber_start_stream( struct im_connection *ic )  	jd->xt = xt_new( jabber_handlers, ic );  	if( jd->r_inpa <= 0 ) -		jd->r_inpa = b_input_add( jd->fd, GAIM_INPUT_READ, jabber_read_callback, ic ); +		jd->r_inpa = b_input_add( jd->fd, B_EV_IO_READ, jabber_read_callback, ic );  	greet = g_strdup_printf( "%s<stream:stream to=\"%s\" xmlns=\"jabber:client\" "  	                          "xmlns:stream=\"http://etherx.jabber.org/streams\" version=\"1.0\">",  diff --git a/protocols/jabber/jabber_util.c b/protocols/jabber/jabber_util.c index bd2fbe8c..4bc9e3a8 100644 --- a/protocols/jabber/jabber_util.c +++ b/protocols/jabber/jabber_util.c @@ -670,10 +670,9 @@ int jabber_buddy_remove_bare( struct im_connection *ic, char *bare_jid )  time_t jabber_get_timestamp( struct xt_node *xt )  { -	struct tm tp, utc;  	struct xt_node *c; -	time_t res, tres;  	char *s = NULL; +	struct tm tp;  	for( c = xt->children; ( c = xt_find_node( c, "x" ) ); c = c->next )  	{ @@ -691,30 +690,8 @@ time_t jabber_get_timestamp( struct xt_node *xt )  	tp.tm_year -= 1900;  	tp.tm_mon --; -	tp.tm_isdst = -1; /* GRRRRRRRRRRR */ -	 -	res = mktime( &tp ); -	/* Problem is, mktime() just gave us the GMT timestamp for the -	   given local time... While the given time WAS NOT local. So -	   we should fix this now. -	 -	   Now I could choose between messing with environment variables -	   (kludgy) or using timegm() (not portable)... Or doing the -	   following, which I actually prefer... */ -	gmtime_r( &res, &utc ); -	utc.tm_isdst = -1; /* Once more: GRRRRRRRRRRRRRRRRRR!!! */ -	if( utc.tm_hour == tp.tm_hour && utc.tm_min == tp.tm_min ) -		/* Sweet! We're in UTC right now... */ -		return res; -	 -	tres = mktime( &utc ); -	res += res - tres; -	 -	/* Yes, this is a hack. And it will go wrong around DST changes. -	   BUT this is more likely to be threadsafe than messing with -	   environment variables, and possibly more portable... */ -	 -	return res; +	 +	return mktime_utc( &tp );  }  struct jabber_error *jabber_error_parse( struct xt_node *node, char *xmlns ) diff --git a/protocols/jabber/message.c b/protocols/jabber/message.c index a226a225..e8161029 100644 --- a/protocols/jabber/message.c +++ b/protocols/jabber/message.c @@ -79,8 +79,8 @@ xt_status jabber_pkt_message( struct xt_node *node, gpointer data )  		if( type && strcmp( type, "headline" ) == 0 )  		{ -			c = xt_find_node( node->children, "subject" ); -			g_string_append_printf( fullmsg, "Headline: %s\n", c && c->text_len > 0 ? c->text : "" ); +			if( ( c = xt_find_node( node->children, "subject" ) ) && c->text_len > 0 ) +				g_string_append_printf( fullmsg, "Headline: %s\n", c->text );  			/* <x xmlns="jabber:x:oob"><url>http://....</url></x> can contain a URL, it seems. */  			for( c = node->children; c; c = c->next ) diff --git a/protocols/jabber/s5bytestream.c b/protocols/jabber/s5bytestream.c index 36a2e438..19d0d81a 100644 --- a/protocols/jabber/s5bytestream.c +++ b/protocols/jabber/s5bytestream.c @@ -405,7 +405,7 @@ gboolean jabber_bs_recv_handshake( gpointer data, gint fd, b_input_condition con  			bt->phase = BS_PHASE_CONNECTED; -			bt->tf->watch_out = b_input_add( fd, GAIM_INPUT_WRITE, jabber_bs_recv_handshake, bt ); +			bt->tf->watch_out = b_input_add( fd, B_EV_IO_WRITE, jabber_bs_recv_handshake, bt );  			/* since it takes forever(3mins?) till connect() fails on itself we schedule a timeout */  			bt->connect_timeout = b_timeout_add( JABBER_BS_CONTIMEOUT * 1000, jabber_bs_connect_timeout, bt ); @@ -432,7 +432,7 @@ gboolean jabber_bs_recv_handshake( gpointer data, gint fd, b_input_condition con  			bt->phase = BS_PHASE_REQUEST; -			bt->tf->watch_in = b_input_add( fd, GAIM_INPUT_READ, jabber_bs_recv_handshake, bt ); +			bt->tf->watch_in = b_input_add( fd, B_EV_IO_READ, jabber_bs_recv_handshake, bt );  			bt->tf->watch_out = 0;  			return FALSE; @@ -589,7 +589,7 @@ void jabber_bs_recv_answer_request( struct bs_transfer *bt )  		  bt->sh->port );  	tf->ft->data = tf; -	tf->watch_in = b_input_add( tf->fd, GAIM_INPUT_READ, jabber_bs_recv_read, bt ); +	tf->watch_in = b_input_add( tf->fd, B_EV_IO_READ, jabber_bs_recv_read, bt );  	tf->ft->write_request = jabber_bs_recv_write_request;  	reply = xt_new_node( "streamhost-used", NULL, NULL ); @@ -631,7 +631,7 @@ gboolean jabber_bs_recv_read( gpointer data, gint fd, b_input_condition cond )  		if( ( ret == -1 ) && ( errno == EAGAIN ) )  		{ -			tf->watch_in = b_input_add( tf->fd, GAIM_INPUT_READ, jabber_bs_recv_read, bt ); +			tf->watch_in = b_input_add( tf->fd, B_EV_IO_READ, jabber_bs_recv_read, bt );  			return FALSE;  		}  	} @@ -707,7 +707,7 @@ gboolean jabber_bs_send_write( file_transfer_t *ft, char *buffer, unsigned int l  	if( tf->byteswritten >= ft->file_size )  		imcb_file_finished( ft );  	else -		bt->tf->watch_out = b_input_add( tf->fd, GAIM_INPUT_WRITE, jabber_bs_send_can_write, bt ); +		bt->tf->watch_out = b_input_add( tf->fd, B_EV_IO_WRITE, jabber_bs_send_can_write, bt );  	return TRUE;  } @@ -918,7 +918,7 @@ void jabber_si_set_proxies( struct bs_transfer *bt )  				strcpy( sh->port, port );  				bt->streamhosts = g_slist_append( bt->streamhosts, sh ); -				bt->tf->watch_in = b_input_add( tf->fd, GAIM_INPUT_READ, jabber_bs_send_handshake, bt ); +				bt->tf->watch_in = b_input_add( tf->fd, B_EV_IO_READ, jabber_bs_send_handshake, bt );  				bt->connect_timeout = b_timeout_add( JABBER_BS_LISTEN_TIMEOUT * 1000, jabber_bs_connect_timeout, bt );  			} else {  				imcb_log( tf->ic, "Transferring file %s: couldn't listen locally(non fatal, check your ft_listen setting in bitlbee.conf): %s", @@ -1055,7 +1055,7 @@ gboolean jabber_bs_send_handshake( gpointer data, gint fd, b_input_condition con  			bt->phase = BS_PHASE_CONNECTED; -			bt->tf->watch_in = b_input_add( fd, GAIM_INPUT_READ, jabber_bs_send_handshake, bt ); +			bt->tf->watch_in = b_input_add( fd, B_EV_IO_READ, jabber_bs_send_handshake, bt );  			return FALSE;  		}  	case BS_PHASE_CONNECTED: | 
