From 50d7a4eceadef0bce8eccb8d0cf7631e5c66e499 Mon Sep 17 00:00:00 2001 From: stskeeps Date: Fri, 18 May 2007 08:02:33 +0000 Subject: [PATCH] Index: Changes =================================================================== RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v retrieving revision 1.1.1.1.2.1.2.1.2.2407 diff -u -r1.1.1.1.2.1.2.1.2.2407 Changes --- Changes 17 May 2007 13:22:12 -0000 1.1.1.1.2.1.2.1.2.2407 +++ Changes 18 May 2007 08:02:21 -0000 @@ -1713,3 +1713,6 @@ - Added set::ssl::dh to indicate DH parameters. These are needed to support DSA certificates and should probably make them work from now on. Code originally by the inspircd team. +- Fixed a number of compile errors/runtime errors on win32 (also a SSL + brainfart regarding DH), #0003345, patched by fez + --- Changes | 3 +++ makefile.win32 | 5 +---- src/modules/m_chghost.c | 3 ++- src/modules/m_chgident.c | 3 ++- src/s_conf.c | 2 +- src/s_serv.c | 7 ++++++- src/ssl.c | 24 ++++++++++++------------ wircd.def | 10 +--------- 8 files changed, 28 insertions(+), 29 deletions(-) diff --git a/Changes b/Changes index 355d117ac..c89517f12 100644 --- a/Changes +++ b/Changes @@ -1713,3 +1713,6 @@ MOTDs - Added set::ssl::dh to indicate DH parameters. These are needed to support DSA certificates and should probably make them work from now on. Code originally by the inspircd team. +- Fixed a number of compile errors/runtime errors on win32 (also a SSL + brainfart regarding DH), #0003345, patched by fez + diff --git a/makefile.win32 b/makefile.win32 index 31c484fb4..59164fd16 100644 --- a/makefile.win32 +++ b/makefile.win32 @@ -143,7 +143,7 @@ EXP_OBJ_FILES=SRC/CHANNEL.OBJ SRC/SEND.OBJ SRC/SOCKET.OBJ \ SRC/S_DEBUG.OBJ SRC/SUPPORT.OBJ SRC/LIST.OBJ \ SRC/S_ERR.OBJ SRC/PACKET.OBJ SRC/S_BSD.OBJ \ SRC/S_SERV.OBJ SRC/S_USER.OBJ SRC/CHARSYS.OBJ \ - SRC/VERSION.OBJ SRC/S_KLINE.OBJ SRC/S_EXTRA.OBJ SRC/IRCSPRINTF.OBJ SRC/LUSERS.OBJ \ + SRC/VERSION.OBJ SRC/S_KLINE.OBJ SRC/S_EXTRA.OBJ SRC/IRCSPRINTF.OBJ \ SRC/SCACHE.OBJ SRC/ALN.OBJ SRC/RES.OBJ SRC/MODULES.OBJ \ SRC/S_SVS.OBJ SRC/EVENTS.OBJ SRC/UMODES.OBJ SRC/AUTH.OBJ SRC/CIDR.OBJ SRC/SSL.OBJ \ SRC/RANDOM.OBJ SRC/EXTCMODES.OBJ SRC/MD5.OBJ SRC/API-ISUPPORT.OBJ SRC/API-COMMAND.OBJ \ @@ -296,9 +296,6 @@ src/support.obj: src/support.c $(INCLUDES) src/channel.obj: src/channel.c $(INCLUDES) ./include/channel.h $(CC) $(CFLAGS) src/channel.c -src/lusers.obj: src/lusers.c $(INCLUDES) - $(CC) $(CFLAGS) src/lusers.c - src/aln.obj: src/aln.c $(INCLUDES) $(CC) $(CFLAGS) src/aln.c diff --git a/src/modules/m_chghost.c b/src/modules/m_chghost.c index dce18d17c..665c150ae 100644 --- a/src/modules/m_chghost.c +++ b/src/modules/m_chghost.c @@ -146,14 +146,15 @@ DLLFUNC int m_chghost(aClient *cptr, aClient *sptr, int parc, char *parv[]) if ((acptr = find_person(parv[1], NULL))) { + DYN_LOCAL(char, did_parts, acptr->user->joined); if (MyClient(sptr) && (IsLocOp(sptr) && !MyClient(acptr))) { sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); + DYN_FREE(did_parts); return 0; } - DYN_LOCAL(char, did_parts, acptr->user->joined); if (!strcmp(GetHost(acptr), parv[2])) { sendnotice(sptr, "*** /ChgHost Error: requested host is same as current host."); diff --git a/src/modules/m_chgident.c b/src/modules/m_chgident.c index 4c28c56fd..fde6325bf 100644 --- a/src/modules/m_chgident.c +++ b/src/modules/m_chgident.c @@ -158,14 +158,15 @@ int legalident = 1; if ((acptr = find_person(parv[1], NULL))) { + DYN_LOCAL(char, did_parts, acptr->user->joined); if (MyClient(sptr) && (IsLocOp(sptr) && !MyClient(acptr))) { sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); + DYN_FREE(did_parts); return 0; } - DYN_LOCAL(char, did_parts, acptr->user->joined); switch (UHOST_ALLOWED) { case UHALLOW_NEVER: diff --git a/src/s_conf.c b/src/s_conf.c index 0489b324c..9daca20b9 100644 --- a/src/s_conf.c +++ b/src/s_conf.c @@ -5732,7 +5732,7 @@ int _test_log(ConfigFile *conf, ConfigEntry *ce) { "log::flags"); errors++; } - if (fd = open(ce->ce_vardata, O_WRONLY) == -1) + if (fd = open(ce->ce_vardata, O_WRONLY|O_CREAT|O_APPEND) == -1) { config_error("%s:%i: Couldn't open logfile (%s) for writing: %s", ce->ce_fileptr->cf_filename, ce->ce_varlinenum, diff --git a/src/s_serv.c b/src/s_serv.c index c8063f8fd..da144328d 100644 --- a/src/s_serv.c +++ b/src/s_serv.c @@ -66,6 +66,12 @@ struct tm smotd_tm; aMotd *read_file(char *filename, aMotd **list); aMotd *read_file_ex(char *filename, aMotd **list, struct tm *); extern aMotd *Find_file(char *, short); + +#ifdef USE_SSL +extern void reinit_ssl(aClient *); +#endif + + /* ** m_functions execute protocol messages on this server: ** CMD_FUNC(functionname) causes it to use the header @@ -656,7 +662,6 @@ CMD_FUNC(m_rehash) if (cptr != sptr) sendto_serv_butone_token(&me, me.name, MSG_GLOBOPS, TOK_GLOBOPS, ":%s is remotely rehashing SSL data", sptr->name); - extern void reinit_ssl(aClient *); reinit_ssl(sptr); #else sendnotice(sptr, "SSL is not enabled on this server"); diff --git a/src/ssl.c b/src/ssl.c index c1ef24efe..3853bfaf7 100644 --- a/src/ssl.c +++ b/src/ssl.c @@ -206,15 +206,15 @@ SSL_CTX *ctx_server; mylog("Failed to load DH parameters %s", iConf.x_dh_pem); goto fail; } - ret = PEM_read_DHparams(dhpfile, NULL, NULL, NULL); if (dhpfile != NULL) { + ret = PEM_read_DHparams(dhpfile, NULL, NULL, NULL); fclose(dhpfile); - } - if (SSL_CTX_set_tmp_dh(ctx_server, ret) < 0) - { - mylog("Failed to use DH parameters %s", iConf.x_dh_pem); - goto fail; + if (SSL_CTX_set_tmp_dh(ctx_server, ret) < 0) + { + mylog("Failed to use DH parameters %s", iConf.x_dh_pem); + goto fail; + } } if (SSL_CTX_use_certificate_chain_file(ctx_server, SSL_SERVER_CERT_PEM) <= 0) { @@ -274,15 +274,15 @@ SSL_CTX *ctx_client; mylog("Failed to load DH parameters %s", iConf.x_dh_pem); goto fail; } - ret = PEM_read_DHparams(dhpfile, NULL, NULL, NULL); if (dhpfile != NULL) { + ret = PEM_read_DHparams(dhpfile, NULL, NULL, NULL); fclose(dhpfile); - } - if (SSL_CTX_set_tmp_dh(ctx_client, ret) < 0) - { - mylog("Failed to use DH parameters %s", iConf.x_dh_pem); - goto fail; + if (SSL_CTX_set_tmp_dh(ctx_client, ret) < 0) + { + mylog("Failed to use DH parameters %s", iConf.x_dh_pem); + goto fail; + } } if (SSL_CTX_use_certificate_file(ctx_client, SSL_SERVER_CERT_PEM, SSL_FILETYPE_PEM) <= 0) { diff --git a/wircd.def b/wircd.def index 2052f3b7e..54faabdfc 100644 --- a/wircd.def +++ b/wircd.def @@ -1,4 +1,4 @@ -; dlltool --output-def wircd.def.in --export-all-symbols SRC/CHANNEL.OBJ SRC/SEND.OBJ SRC/SOCKET.OBJ SRC/S_CONF.OBJ SRC/FDLIST.OBJ SRC/DBUF.OBJ SRC/CLOAK.OBJ SRC/HASH.OBJ SRC/PARSE.OBJ SRC/IRCD.OBJ SRC/S_NUMERIC.OBJ SRC/WHOWAS.OBJ SRC/S_AUTH.OBJ SRC/HELP.OBJ SRC/S_MISC.OBJ SRC/MATCH.OBJ SRC/CRULE.OBJ SRC/S_DEBUG.OBJ SRC/SUPPORT.OBJ SRC/LIST.OBJ SRC/S_ERR.OBJ SRC/PACKET.OBJ SRC/S_BSD.OBJ SRC/S_SERV.OBJ SRC/S_USER.OBJ SRC/CHARSYS.OBJ SRC/VERSION.OBJ SRC/S_KLINE.OBJ SRC/S_EXTRA.OBJ SRC/IRCSPRINTF.OBJ SRC/LUSERS.OBJ SRC/SCACHE.OBJ SRC/ALN.OBJ SRC/BADWORDS.OBJ SRC/WEBTV.OBJ SRC/RES.OBJ SRC/MODULES.OBJ SRC/S_SVS.OBJ SRC/EVENTS.OBJ SRC/UMODES.OBJ SRC/AUTH.OBJ SRC/CIDR.OBJ SRC/SSL.OBJ SRC/RANDOM.OBJ SRC/EXTCMODES.OBJ SRC/MD5.OBJ SRC/API-ISUPPORT.OBJ SRC/API-COMMAND.OBJ SRC/EXTBANS.OBJ +; dlltool --output-def wircd.def.in --export-all-symbols SRC/CHANNEL.OBJ SRC/SEND.OBJ SRC/SOCKET.OBJ SRC/S_CONF.OBJ SRC/FDLIST.OBJ SRC/DBUF.OBJ SRC/CLOAK.OBJ SRC/HASH.OBJ SRC/PARSE.OBJ SRC/IRCD.OBJ SRC/S_NUMERIC.OBJ SRC/WHOWAS.OBJ SRC/S_AUTH.OBJ SRC/HELP.OBJ SRC/S_MISC.OBJ SRC/MATCH.OBJ SRC/CRULE.OBJ SRC/S_DEBUG.OBJ SRC/SUPPORT.OBJ SRC/LIST.OBJ SRC/S_ERR.OBJ SRC/PACKET.OBJ SRC/S_BSD.OBJ SRC/S_SERV.OBJ SRC/S_USER.OBJ SRC/CHARSYS.OBJ SRC/VERSION.OBJ SRC/S_KLINE.OBJ SRC/S_EXTRA.OBJ SRC/IRCSPRINTF.OBJ SRC/SCACHE.OBJ SRC/ALN.OBJ SRC/BADWORDS.OBJ SRC/WEBTV.OBJ SRC/RES.OBJ SRC/MODULES.OBJ SRC/S_SVS.OBJ SRC/EVENTS.OBJ SRC/UMODES.OBJ SRC/AUTH.OBJ SRC/CIDR.OBJ SRC/SSL.OBJ SRC/RANDOM.OBJ SRC/EXTCMODES.OBJ SRC/MD5.OBJ SRC/API-ISUPPORT.OBJ SRC/API-COMMAND.OBJ SRC/EXTBANS.OBJ EXPORTS extcmode_cmodeT_requirechop AllUmodes @@ -210,7 +210,6 @@ EXPORTS add_listener2 add_listmode add_local_client - add_local_domain add_server_to_table add_silence add_throttling_bucket @@ -261,7 +260,6 @@ EXPORTS charsys_reset charsys_reset_pretest charsys_test_language - check_channelmask check_client check_fdlists check_for_target_limit @@ -474,7 +472,6 @@ EXPORTS flush_connections flush_fdlist_connections free_ban - free_class free_client free_iConf free_link @@ -548,7 +545,6 @@ EXPORTS init_conf init_dynconf init_fdlist - init_ircstats init_random init_resolver init_sys @@ -593,7 +589,6 @@ EXPORTS loop loop_event m_alias - m_botmotd m_credits m_dalinfo m_die @@ -603,8 +598,6 @@ EXPORTS m_info_send m_license m_module - m_motd - m_opermotd m_rehash m_restart m_summon @@ -613,7 +606,6 @@ EXPORTS m_users m_version make_ban - make_class make_client make_cmodestr make_extbanstr