diff --git a/opensips-0007-Fix-building-with-gcc-10.patch b/opensips-0007-Fix-building-with-gcc-10.patch index 45fe2be..9456aa8 100644 --- a/opensips-0007-Fix-building-with-gcc-10.patch +++ b/opensips-0007-Fix-building-with-gcc-10.patch @@ -9,6 +9,515 @@ explanation: Signed-off-by: Peter Lemenkov +diff --git a/mem/hp_malloc.c b/mem/hp_malloc.c +index 6ad21413a..cb55ad142 100644 +--- a/mem/hp_malloc.c ++++ b/mem/hp_malloc.c +@@ -115,16 +115,11 @@ int mem_warming_enabled; + */ + int mem_warming_percentage = MEM_WARMING_DEFAULT_PERCENTAGE; + +-#if defined(HP_MALLOC) +-stat_var *rpm_used; +-stat_var *rpm_rused; +-stat_var *rpm_frags; + #if !defined(HP_MALLOC_FAST_STATS) + stat_var *shm_used; + stat_var *shm_rused; + stat_var *shm_frags; + #endif +-#endif + + /* ROUNDTO= 2^k so the following works */ + #define ROUNDTO_MASK (~((unsigned long)ROUNDTO-1)) +diff --git a/mi/mi_trace.c b/mi/mi_trace.c +index 820e1c1e7..489b80722 100644 +--- a/mi/mi_trace.c ++++ b/mi/mi_trace.c +@@ -39,6 +39,7 @@ int mi_message_id; + static char* correlation_name = "correlation_id"; + str correlation_value; + int correlation_id=-1, correlation_vendor=-1; ++str mi_trpl; + + + void try_load_trace_api(void) +diff --git a/mi/mi_trace.h b/mi/mi_trace.h +index d5a23f773..de8231a18 100644 +--- a/mi/mi_trace.h ++++ b/mi/mi_trace.h +@@ -33,16 +33,16 @@ extern str correlation_value; + + #define MAX_TRACE_FIELD (1 << 7) + +-struct mi_trace_req { ++__attribute__((__common__)) struct mi_trace_req { + str cmd; + str backend; + char params[MAX_TRACE_FIELD]; + } mi_treq; + +-str mi_trpl; ++extern str mi_trpl; + + enum mi_trace_type { MI_TRACE_REQ, MI_TRACE_RPL}; +-struct mi_trace_param { ++__attribute__((__common__)) struct mi_trace_param { + enum mi_trace_type type; + union { + struct mi_trace_req* req; +diff --git a/modules/b2b_entities/b2b_entities.c b/modules/b2b_entities/b2b_entities.c +index 53403a860..3a87e16ad 100644 +--- a/modules/b2b_entities/b2b_entities.c ++++ b/modules/b2b_entities/b2b_entities.c +@@ -71,6 +71,8 @@ static int b2b_update_period = 100; + int uac_auth_loaded; + str b2b_key_prefix = str_init("B2B"); + int b2be_db_mode = WRITE_BACK; ++b2b_table server_htable = NULL; ++b2b_table client_htable = NULL; + + #define DB_COLS_NO 26 + +diff --git a/modules/b2b_entities/dlg.h b/modules/b2b_entities/dlg.h +index f676763c8..eac0add10 100644 +--- a/modules/b2b_entities/dlg.h ++++ b/modules/b2b_entities/dlg.h +@@ -178,8 +178,8 @@ typedef struct b2b_rpl_data + + + /** Hash table declaration: for client and server dialogs */ +-b2b_table server_htable; +-b2b_table client_htable; ++extern b2b_table server_htable; ++extern b2b_table client_htable; + + + void print_b2b_dlg(b2b_dlg_t *dlg); +diff --git a/modules/b2b_logic/b2b_logic.h b/modules/b2b_logic/b2b_logic.h +index 9adefce67..70d37dd56 100644 +--- a/modules/b2b_logic/b2b_logic.h ++++ b/modules/b2b_logic/b2b_logic.h +@@ -111,7 +111,7 @@ extern b2b_scenario_t* extern_scenaries; + + extern str custom_headers_lst[HDR_LST_LEN]; + extern regex_t* custom_headers_re; +-int custom_headers_lst_len; ++extern int custom_headers_lst_len; + extern int use_init_sdp; + extern str server_address; + extern unsigned int max_duration; +diff --git a/modules/cachedb_local/cachedb_local_replication.h b/modules/cachedb_local/cachedb_local_replication.h +index 68053e7ce..776f3f482 100644 +--- a/modules/cachedb_local/cachedb_local_replication.h ++++ b/modules/cachedb_local/cachedb_local_replication.h +@@ -34,10 +34,10 @@ extern struct clusterer_binds clusterer_api; + extern str cache_repl_cap; + extern int cluster_id; + +-enum cachedb_rr_persist { ++typedef enum cachedb_rr_persist { + RRP_NONE, + RRP_SYNC_FROM_CLUSTER, +-} rr_persist_t; ++} cachedb_rr_persist_t; + + void receive_binary_packet(bin_packet_t *packet); + void receive_cluster_event(enum clusterer_event ev, int node_id); +diff --git a/modules/dispatcher/dispatch.h b/modules/dispatcher/dispatch.h +index 21e2ac274..b48a44dd9 100644 +--- a/modules/dispatcher/dispatch.h ++++ b/modules/dispatcher/dispatch.h +@@ -177,7 +177,7 @@ extern str ds_setid_pvname; + extern pv_spec_t ds_setid_pv; + + /* Structure containing pointers to TM-functions */ +-struct tm_binds tmb; ++extern struct tm_binds tmb; + + extern struct fs_binds fs_api; + extern str ds_ping_method; +diff --git a/modules/emergency/emergency_methods.c b/modules/emergency/emergency_methods.c +index eb5cb7c27..53ffde795 100644 +--- a/modules/emergency/emergency_methods.c ++++ b/modules/emergency/emergency_methods.c +@@ -50,7 +50,28 @@ static void mod_destroy(void); + struct dlg_binds dlgb; + struct rr_binds rr_api; + ++struct tm_binds eme_tm; ++ ++str db_url; ++str *db_table = NULL; ++db_func_t db_funcs; ++db_con_t *db_con = NULL; ++ ++struct esrn_routing **db_esrn_esgwri = NULL; ++struct service_provider **db_service_provider = NULL; ++ + str callid_aux; ++char* url_vpc; ++ ++int emet_size = 0; ++int subst_size = 0; ++ ++char *empty = NULL; ++ ++char* mandatory_parm = NULL; ++ ++struct call_htable* call_htable = NULL; ++struct subs_htable* subs_htable = NULL; + + /* + * Exported functions +diff --git a/modules/emergency/emergency_methods.h b/modules/emergency/emergency_methods.h +index 2a9978b88..26eac94f3 100644 +--- a/modules/emergency/emergency_methods.h ++++ b/modules/emergency/emergency_methods.h +@@ -140,7 +140,7 @@ struct code_number *codes = NULL; + + struct multi_body *mbody; + struct esct *call_cell; +-struct lump *l; ++extern struct lump *l; + + int timer_interval=10; + str table_name=str_init("emergency_routing"); +diff --git a/modules/emergency/http_emergency.h b/modules/emergency/http_emergency.h +index 482873fd3..a462aaa81 100644 +--- a/modules/emergency/http_emergency.h ++++ b/modules/emergency/http_emergency.h +@@ -59,15 +59,15 @@ + + #include "post_curl.h" + +-struct call_htable* call_htable; +-struct subs_htable* subs_htable; ++extern struct call_htable* call_htable; ++extern struct subs_htable* subs_htable; + +-char *url_vpc; +-str db_url; +-str *db_table; ++extern char *url_vpc; ++extern str db_url; ++extern str *db_table; + +-int emet_size; +-int subst_size; ++extern int emet_size; ++extern int subst_size; + + int send_esct(struct sip_msg *msg, str callid_ori, str from_tag); + int treat_parse_esrResponse(struct sip_msg *msg, ESCT *call_cell, PARSED *parsed, int proxy_role); +diff --git a/modules/emergency/report_emergency.h b/modules/emergency/report_emergency.h +index c74a8e4ca..3546d8f90 100644 +--- a/modules/emergency/report_emergency.h ++++ b/modules/emergency/report_emergency.h +@@ -57,8 +57,8 @@ + + #include "sip_emergency.h" + +-db_func_t db_funcs; +-db_con_t *db_con; ++extern db_func_t db_funcs; ++extern db_con_t *db_con; + + struct emergency_report { + str callid; +@@ -83,7 +83,7 @@ struct esrn_routing { + struct esrn_routing *next; + }; + +-struct esrn_routing **db_esrn_esgwri; ++extern struct esrn_routing **db_esrn_esgwri; + + struct service_provider { + str nodeIP; +@@ -97,9 +97,9 @@ struct service_provider { + struct service_provider *next; + }; + +-struct service_provider **db_service_provider; ++extern struct service_provider **db_service_provider; + +-char* mandatory_parm; ++extern char* mandatory_parm; + + #define ACK_TIME 3 + #define BYE_TIME 10 +diff --git a/modules/emergency/sip_emergency.c b/modules/emergency/sip_emergency.c +index 1f8bb3bd0..db17d22ab 100644 +--- a/modules/emergency/sip_emergency.c ++++ b/modules/emergency/sip_emergency.c +@@ -74,7 +74,7 @@ const char *FROMTAG_PARAM = ";from-tag="; + + + struct lump *l; +-struct rr_binds rr_api; ++//struct rr_binds rr_api; + + /* verify if the INVITE has the header Geolocation-Routing with the value "yes" + */ +diff --git a/modules/emergency/subscriber_emergency.h b/modules/emergency/subscriber_emergency.h +index 3062ac899..fbe846e8e 100644 +--- a/modules/emergency/subscriber_emergency.h ++++ b/modules/emergency/subscriber_emergency.h +@@ -61,7 +61,7 @@ + #define TIMER_N 132 // Timer N = 64*T1 T1 = (0,5s) + #define MAXNUMBERLEN 31 + +-struct tm_binds eme_tm; ++extern struct tm_binds eme_tm; + + struct parms_cb{ + str callid_ori; +diff --git a/modules/emergency/xml_parser.h b/modules/emergency/xml_parser.h +index 80cbec62e..41da3c7e6 100644 +--- a/modules/emergency/xml_parser.h ++++ b/modules/emergency/xml_parser.h +@@ -56,7 +56,7 @@ + #include "../rr/api.h" + #include "../tm/tm_load.h" /*load_tm_api*/ + +-char *empty; ++extern char *empty; + #define MAX_TIME_SIZE 80 + #define MAX_DISPOSITION_SIZE 20 + +diff --git a/modules/event_rabbitmq/rabbitmq_send.c b/modules/event_rabbitmq/rabbitmq_send.c +index 6ded8fa6c..89fdd7238 100644 +--- a/modules/event_rabbitmq/rabbitmq_send.c ++++ b/modules/event_rabbitmq/rabbitmq_send.c +@@ -43,7 +43,6 @@ + #endif + + unsigned rmq_sync_mode = 0; +-struct timeval conn_timeout_tv; + + /* used to communicate with the sending process */ + static int rmq_pipe[2]; +diff --git a/modules/mangler/mangler.c b/modules/mangler/mangler.c +index 32f9e7f45..7dd7e53ef 100644 +--- a/modules/mangler/mangler.c ++++ b/modules/mangler/mangler.c +@@ -52,9 +52,8 @@ struct tm_binds tmb; + + #endif + +- +- +- ++regex_t *portExpression = NULL; ++regex_t *ipExpression = NULL; + + /* + * Module destroy function prototype +diff --git a/modules/mangler/sdp_mangler.h b/modules/mangler/sdp_mangler.h +index 4a65af0f6..cdde1971f 100644 +--- a/modules/mangler/sdp_mangler.h ++++ b/modules/mangler/sdp_mangler.h +@@ -63,8 +63,8 @@ from the last group + + + +-regex_t *portExpression; +-regex_t *ipExpression; ++extern regex_t *portExpression; ++extern regex_t *ipExpression; + + + +diff --git a/modules/permissions/permissions.h b/modules/permissions/permissions.h +index b41aaa588..195f4238c 100644 +--- a/modules/permissions/permissions.h ++++ b/modules/permissions/permissions.h +@@ -66,7 +66,7 @@ typedef struct int_or_pvar { + #define DISABLE_CACHE 0 + #define ENABLE_CACHE 1 + +-char *allow_suffix; ++extern char *allow_suffix; + int allow_test(char *file, char *uri, char *contact); + + #endif +diff --git a/modules/pua_dialoginfo/pua_dialoginfo.c b/modules/pua_dialoginfo/pua_dialoginfo.c +index 30b827cdd..cc2ec5627 100644 +--- a/modules/pua_dialoginfo/pua_dialoginfo.c ++++ b/modules/pua_dialoginfo/pua_dialoginfo.c +@@ -83,6 +83,7 @@ static int osips_ps = 1; + static int publish_on_trying = 0; + static int nopublish_flag = -1; + static char *nopublish_flag_str = 0; ++send_publish_t pua_send_publish = NULL; + + + +diff --git a/modules/pua_dialoginfo/pua_dialoginfo.h b/modules/pua_dialoginfo/pua_dialoginfo.h +index 71f109e73..299b12f73 100644 +--- a/modules/pua_dialoginfo/pua_dialoginfo.h ++++ b/modules/pua_dialoginfo/pua_dialoginfo.h +@@ -30,8 +30,7 @@ struct dlginfo_part { + str display; + }; + +- +-send_publish_t pua_send_publish; ++extern send_publish_t pua_send_publish; + + void dialog_publish(char *state, + struct dlginfo_part* entity, struct dlginfo_part *peer, +diff --git a/modules/pua_usrloc/pua_usrloc.c b/modules/pua_usrloc/pua_usrloc.c +index c56b2541a..d62bb68dc 100644 +--- a/modules/pua_usrloc/pua_usrloc.c ++++ b/modules/pua_usrloc/pua_usrloc.c +@@ -44,7 +44,8 @@ + #include "../pua/pua_bind.h" + #include "pua_usrloc.h" + +- ++send_publish_t pua_send_publish = NULL; ++send_subscribe_t pua_send_subscribe = NULL; + + str default_domain= {NULL, 0}; + pua_api_t pua; +diff --git a/modules/pua_usrloc/pua_usrloc.h b/modules/pua_usrloc/pua_usrloc.h +index 34a969f94..f871bf9cc 100644 +--- a/modules/pua_usrloc/pua_usrloc.h ++++ b/modules/pua_usrloc/pua_usrloc.h +@@ -24,8 +24,8 @@ + #define _PUA_UL_ + #include "../pua/pua_bind.h" + +-send_publish_t pua_send_publish; +-send_subscribe_t pua_send_subscribe; ++extern send_publish_t pua_send_publish; ++extern send_subscribe_t pua_send_subscribe; + void ul_contact_publish(void *binding, ul_cb_type type); + int pua_set_publish(struct sip_msg* , char*, char*); + +diff --git a/modules/ratelimit/ratelimit_helper.c b/modules/ratelimit/ratelimit_helper.c +index cc289fb5b..662c9d953 100644 +--- a/modules/ratelimit/ratelimit_helper.c ++++ b/modules/ratelimit/ratelimit_helper.c +@@ -55,9 +55,6 @@ static rl_algo_t get_rl_algo(str); + /* big hash table */ + rl_big_htable rl_htable; + +-/* feedback algorithm */ +-int *rl_feedback_limit; +- + static cachedb_funcs cdbf; + static cachedb_con *cdbc = 0; + +diff --git a/modules/registrar/reg_mod.c b/modules/registrar/reg_mod.c +index 1aeb69e77..7148be41a 100644 +--- a/modules/registrar/reg_mod.c ++++ b/modules/registrar/reg_mod.c +@@ -112,6 +112,7 @@ char* attr_avp_param = 0; + unsigned short attr_avp_type = 0; + int attr_avp_name; + ++usrloc_api_t ul; + + int reg_use_domain = 0; + /*!< Realm prefix to be removed */ +diff --git a/modules/registrar/reg_mod.h b/modules/registrar/reg_mod.h +index 409c6280f..387a38d7f 100644 +--- a/modules/registrar/reg_mod.h ++++ b/modules/registrar/reg_mod.h +@@ -64,7 +64,7 @@ extern int max_contacts; + extern int retry_after; + extern str sock_hdr_name; + +-usrloc_api_t ul; /*!< Structure containing pointers to usrloc functions */ ++extern usrloc_api_t ul; /*!< Structure containing pointers to usrloc functions */ + + extern struct sig_binds sigb; + extern struct tm_binds tmb; +diff --git a/modules/sms/libsms_modem.c b/modules/sms/libsms_modem.c +index a69b13625..81d7d85fb 100644 +--- a/modules/sms/libsms_modem.c ++++ b/modules/sms/libsms_modem.c +@@ -35,7 +35,6 @@ mailto:s.frings@mail.isis.de + #define optz(_n,_l) (buf+buf_len-(((_n)+(_l)>buf_len)?buf_len:(_n)+(_l))) + + /* global variables */ +-int sms_report_type; + cds_report cds_report_func; + + +diff --git a/modules/sms/libsms_putsms.c b/modules/sms/libsms_putsms.c +index 89b2d4141..125c844c2 100644 +--- a/modules/sms/libsms_putsms.c ++++ b/modules/sms/libsms_putsms.c +@@ -25,8 +25,6 @@ mailto:s.frings@mail.isis.de + #include "libsms_modem.h" + + +-int sms_report_type; +- + static char hexa[16] = { + '0','1','2','3','4','5','6','7', + '8','9','A','B','C','D','E','F' +diff --git a/modules/sms/sms_funcs.c b/modules/sms/sms_funcs.c +index 581a5fd6d..ec316477f 100644 +--- a/modules/sms/sms_funcs.c ++++ b/modules/sms/sms_funcs.c +@@ -55,10 +55,6 @@ struct network networks[MAX_NETWORKS]; + int net_pipes_in[MAX_NETWORKS]; + int nr_of_networks; + int nr_of_modems; +-int *queued_msgs; +-int use_contact; +-int sms_report_type; +-struct tm_binds tmb; + + + #define ERR_NUMBER_TEXT " is an invalid number! Please resend your SMS "\ +diff --git a/modules/usrloc/ul_mod.h b/modules/usrloc/ul_mod.h +index e5111a231..d2bff64b5 100644 +--- a/modules/usrloc/ul_mod.h ++++ b/modules/usrloc/ul_mod.h +@@ -44,7 +44,7 @@ extern enum ul_sql_write_mode sql_wmode; + extern enum ul_pinging_mode pinging_mode; + + /* manner in which node data should be restored (or not) following a restart */ +-enum ul_rr_persist { ++typedef enum ul_rr_persist { + RRP_NONE, + RRP_LOAD_FROM_SQL, + RRP_SYNC_FROM_CLUSTER, +@@ -53,14 +53,14 @@ enum ul_rr_persist { + + /* if using SQL for restart persistency, + * should runtime SQL blocking writes be performed eagerly or lazily? */ +-enum ul_sql_write_mode { ++typedef enum ul_sql_write_mode { + SQL_NO_WRITE, + SQL_WRITE_THROUGH, + SQL_WRITE_BACK, + } ul_sql_write_mode_t; + #define bad_sql_write_mode(wm) ((wm) < SQL_NO_WRITE || (wm) > SQL_WRITE_BACK) + +-enum ul_pinging_mode { ++typedef enum ul_pinging_mode { + PMD_OWNERSHIP, + PMD_COOPERATION, + } ul_pinging_mode_t; +diff --git a/modules/usrloc/usrloc.h b/modules/usrloc/usrloc.h +index 12785db21..746a222f5 100644 +--- a/modules/usrloc/usrloc.h ++++ b/modules/usrloc/usrloc.h +@@ -36,7 +36,7 @@ + #include "ul_callback.h" + #include "ul_dbg.h" + +-enum ul_cluster_mode { ++typedef enum ul_cluster_mode { + CM_NONE, + CM_FEDERATION, + CM_FEDERATION_CACHEDB, diff --git a/sr_module.h b/sr_module.h index 45f2588c0..a37154e96 100644 --- a/sr_module.h