summary refs log tree commit diff stats
path: root/src/common/server.c
AgeCommit message (Expand)Author
2022-01-17Log when the user specifies an invalid port.Sadie Powell
2022-01-17Fix handling invalid ports.Sadie Powell
2021-10-01win32: Update to OpenSSL 1.1Patrick Griffis
2021-08-24Be a bit less insulting about servers with longer line lengths.Sadie Powell
2021-08-23Remove some weird guesswork on the 004 numeric. (#2621)Sadie Powell
2021-07-12Avoid direct use of libproxyMichael Catanzaro
2021-05-23Implement support for the IRCv3 account-tag specification. (#2572)Sadie Powell
2020-04-11Fixed proxy user/password buffer overflowDjLegolas
2020-01-01Avoid prioritising MODE queries for channels with hyphens in their nameJames Clarke
2018-09-01Fix new stringop-truncation warningsPatrick Griffis
2018-08-16Fix inconsistent behavior (re)connecting on SSLIvan
2017-10-10Add an option to disable rejoin on auto reconnectIwan Aucamp
2017-10-02Use g_utf8_make_valid if available for cleaner utf8 handling (#2065)Joseph Bisch
2016-08-27Fix building against openssl 1.1.0Patrick Griffis
2016-06-29Introduce and use fe_timeout_add_secondsBen Gamari
2016-06-24Use constant instead of literal.Arnavion
2016-03-28identd: Fix ipv6 support on WindowsPatrick Griffis
2016-03-28identd: Fix respecting USE_GLOBAL network flagPatrick Griffis
2016-03-11Fix loading encoding from network list on connectPatrick Griffis
2016-02-19Fix possible overflowPatrick Griffis
2016-02-19Properly handle missing SSL certificateInsu Yun
2016-01-29Remove DH-AES/DH-BLOWFISH mechanisms and misc cleanupPatrick Griffis
2016-01-29Add support for CAP 3.2Patrick Griffis
2015-09-11TLS: Set SNI hostname before connectmoparisthebest
2015-01-31Save iconv converters for input and output in the server.Arnavion
2015-01-30ssl: Remove unused server codeTingPing
2015-01-18Detect unknown server encodings and set to UTF-8.Arnavion
2015-01-18Server line text-encoding-related fixes.Arnavion
2015-01-18Removed CP1255-specific handling of server lines.Arnavion
2015-01-18Removed legacy "IRC" encoding.Arnavion
2015-01-14Removed unimplemented, unused function.Arnavion
2014-12-30Rewrite identdTingPing
2014-12-28Remove option to disable ipv6TingPing
2014-12-28Remove MSProxy supportTingPing
2014-12-28Fix building as c89TingPing
2014-12-28Use glib for all allocationsTingPing
2014-12-15Remove some unnecessary if statementsTingPing
2014-12-15Fixed some more signed-unsigned-comparison warnings.Arnavion
2014-12-08Removed some unnecessary null-checks for calls to g_free and g_strfreevArnavion
2014-11-21ssl: Validate hostnamesTingPing
2014-11-05ssl: Don't use global openssl contextTingPing
2014-07-18Use GNUC format attribute on print functionsCampbell Barton
2013-09-07Implement BLOWFISh, AES, and EXTERNAL SASL mechanismsTingPing
2013-06-28Now inbound_cap_ls() can enable extensions when a bouncer uses a namespace forDiogo Sousa
2013-05-25Improved server_get_network(): if we don't have the current network in theDiogo Sousa
2013-05-22Merge pull request #603 from orium/lag-meter-stuckTingPing
2013-05-16Fix an issue where the lag meter would be stuck after a reconnect caused by aDiogo Sousa
2013-05-14Fix warningsBerke Viktor
2013-05-14Fix initial autojoins and some erroneous copies/freesBerke Viktor
2013-05-12Fix favorite channels except in inbound.cBerke Viktor
lass='alt'>
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75


















                                                                            
                 

                      

                      
 




                                                                  













                                           
                                                                      

                                                                                                         






                                                                       
                               

                                                                             

                                                                               

                                                                                                                     
                                                      
                                                                                                                
                                           



                                                       
                                                   

                              

                       

      
/* HexChat
 * Copyright (C) 1998-2010 Peter Zelezny.
 * Copyright (C) 2009-2013 Berke Viktor.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */

#include <time.h>
#include "textenums.h"

#ifndef HEXCHAT_TEXT_H
#define HEXCHAT_TEXT_H

/* timestamp is non-zero if we are using server-time */
#define EMIT_SIGNAL_TIMESTAMP(i, sess, a, b, c, d, e, timestamp) \
	text_emit(i, sess, a, b, c, d, timestamp)
#define EMIT_SIGNAL(i, sess, a, b, c, d, e) \
	text_emit(i, sess, a, b, c, d, 0)

struct text_event
{
	char *name;
	char * const *help;
	int num_args;
	char *def;
};

void scrollback_close (session *sess);
void scrollback_load (session *sess);

int text_word_check (char *word, int len);
void PrintText (session *sess, char *text);
void PrintTextTimeStamp (session *sess, char *text, time_t timestamp);
void PrintTextf (session *sess, const char *format, ...) G_GNUC_PRINTF (2, 3);
void PrintTextTimeStampf (session *sess, time_t timestamp, const char *format, ...) G_GNUC_PRINTF (3, 4);
void log_close (session *sess);
void log_open_or_close (session *sess);
void load_text_events (void);
void pevent_save (char *fn);
int pevt_build_string (const char *input, char **output, int *max_arg);
int pevent_load (char *filename);
void pevent_make_pntevts (void);
int text_color_of (char *name);
void text_emit (int index, session *sess, char *a, char *b, char *c, char *d,
		time_t timestamp);
int text_emit_by_name (char *name, session *sess, time_t timestamp,
					   char *a, char *b, char *c, char *d);
gchar *text_convert_invalid (const gchar* text, gssize len, GIConv converter, const gchar *fallback, gsize *len_out);
gchar *text_fixup_invalid_utf8 (const gchar* text, gssize len, gsize *len_out);
int get_stamp_str (char *fmt, time_t tim, char **ret);
void format_event (session *sess, int index, char **args, char *o, gsize sizeofo, unsigned int stripcolor_args);
char *text_find_format_string (char *name);

extern const gchar* unicode_fallback_string;
extern const gchar* arbitrary_encoding_fallback_string;

void sound_play (const char *file, gboolean quiet);
void sound_play_event (int i);
void sound_beep (session *);
void sound_load (void);
void sound_save (void);

#endif