Skip to content

Commit fac187f

Browse files
committed
Convert global str parameters into str * const. This allows
globals.h to be used without str.h.
1 parent d68757e commit fac187f

11 files changed

+84
-82
lines changed

cfg.y

+14-13
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@
110110
#include "net/trans.h"
111111
#include "config.h"
112112
#include "mem/rpm_mem.h"
113+
#include "poll_types.h"
113114

114115
#ifdef SHM_EXTRA_STATS
115116
#include "mem/module_info.h"
@@ -1035,12 +1036,12 @@ assign_stm: LOGLEVEL EQUAL snumber { IFOR();
10351036
server_signature=$3; }
10361037
| SERVER_SIGNATURE EQUAL error { yyerror("boolean value expected"); }
10371038
| SERVER_HEADER EQUAL STRING { IFOR();
1038-
server_header.s=$3;
1039-
server_header.len=strlen($3);
1039+
server_header->s=$3;
1040+
server_header->len=strlen($3);
10401041
}
10411042
| SERVER_HEADER EQUAL error { yyerror("string value expected"); }
1042-
| USER_AGENT_HEADER EQUAL STRING { user_agent_header.s=$3;
1043-
user_agent_header.len=strlen($3);
1043+
| USER_AGENT_HEADER EQUAL STRING { user_agent_header->s=$3;
1044+
user_agent_header->len=strlen($3);
10441045
}
10451046
| USER_AGENT_HEADER EQUAL error { yyerror("string value expected"); }
10461047
| PV_PRINT_BUF_SIZE EQUAL NUMBER { IFOR();
@@ -1136,24 +1137,24 @@ assign_stm: LOGLEVEL EQUAL snumber { IFOR();
11361137
| AUTO_ALIASES EQUAL error { yyerror("number expected"); }
11371138
| ADVERTISED_ADDRESS EQUAL listen_id { IFOR();
11381139
if ($3) {
1139-
default_global_address.s=$3;
1140-
default_global_address.len=strlen($3);
1140+
default_global_address->s=$3;
1141+
default_global_address->len=strlen($3);
11411142
}
11421143
}
11431144
| ADVERTISED_ADDRESS EQUAL error {yyerror("ip address or hostname "
11441145
"expected"); }
11451146
| ADVERTISED_PORT EQUAL NUMBER { IFOR();
11461147
tmp = int2str($3, &i_tmp);
1147-
if (i_tmp > default_global_port.len)
1148-
default_global_port.s =
1149-
pkg_realloc(default_global_port.s, i_tmp);
1150-
if (!default_global_port.s) {
1148+
if (i_tmp > default_global_port->len)
1149+
default_global_port->s =
1150+
pkg_realloc(default_global_port->s, i_tmp);
1151+
if (!default_global_port->s) {
11511152
LM_CRIT("cfg. parser: out of memory.\n");
11521153
YYABORT;
11531154
} else {
1154-
default_global_port.len = i_tmp;
1155-
memcpy(default_global_port.s, tmp,
1156-
default_global_port.len);
1155+
default_global_port->len = i_tmp;
1156+
memcpy(default_global_port->s, tmp,
1157+
default_global_port->len);
11571158
}
11581159
}
11591160
|ADVERTISED_PORT EQUAL error {yyerror("ip address or hostname "

globals.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -103,11 +103,11 @@ int server_signature=1;
103103
/* Server header to be used when proxy generates a reply as UAS.
104104
Default is to use SERVER_HDR CRLF (assigned later).
105105
*/
106-
str server_header = str_init(SERVER_HDR);
106+
str * const server_header = &str_init(SERVER_HDR);
107107
/* User-Agent header to be used when proxy generates request as UAC.
108108
Default is to use USER_AGENT CRLF (assigned later).
109109
*/
110-
str user_agent_header = str_init(USER_AGENT);
110+
str * const user_agent_header = &str_init(USER_AGENT);
111111
/* should opensips try to locate outbound interface on multihomed
112112
* host? by default not -- too expensive
113113
*/

globals.h

+7-8
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,12 @@
2323
* \brief Global variables
2424
*/
2525

26-
2726
#ifndef globals_h
2827
#define globals_h
2928

30-
#include "ip_addr.h"
31-
#include "str.h"
32-
#include "poll_types.h"
29+
#include <time.h>
30+
31+
typedef struct __str * const strptr_t;
3332

3433
#define DO_DNS 1
3534
#define DO_REV_DNS 2
@@ -81,8 +80,8 @@ extern int check_via;
8180
extern int received_dns;
8281
extern int sip_warning;
8382
extern int server_signature;
84-
extern str server_header;
85-
extern str user_agent_header;
83+
extern strptr_t server_header;
84+
extern strptr_t user_agent_header;
8685
extern char* user;
8786
extern char* group;
8887
extern char* sock_user;
@@ -127,8 +126,8 @@ extern int mhomed; /*!< looking up outbound interface ? */
127126
extern int my_argc; /*!< command-line arguments */
128127
extern char **my_argv;
129128

130-
extern str default_global_address; /*!< pre-set addresses */
131-
extern str default_global_port; /*!< pre-ser ports */
129+
extern strptr_t default_global_address; /*!< pre-set addresses */
130+
extern strptr_t default_global_port; /*!< pre-ser ports */
132131

133132
extern int disable_core_dump; /*!< core dump limits */
134133
extern int open_files_limit; /*!< file limits */

modules/dialog/dlg_hash.c

+4-4
Original file line numberDiff line numberDiff line change
@@ -415,14 +415,14 @@ static inline int translate_contact_ipport( str *ct, struct socket_info *sock,
415415
/* init send_address_str & send_port_str */
416416
if(sock->adv_name_str.len)
417417
send_address_str=&(sock->adv_name_str);
418-
else if (default_global_address.s)
419-
send_address_str=&default_global_address;
418+
else if (default_global_address->s)
419+
send_address_str=default_global_address;
420420
else
421421
send_address_str=&(sock->address_str);
422422
if(sock->adv_port_str.len)
423423
send_port_str=&(sock->adv_port_str);
424-
else if (default_global_port.s)
425-
send_port_str=&default_global_port;
424+
else if (default_global_port->s)
425+
send_port_str=default_global_port;
426426
else
427427
send_port_str=&(sock->port_no_str);
428428

modules/nathelper/sip_pinger.h

+13-13
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ build_sipping(udomain_t *d, str *curi, struct socket_info* s,str *path,
343343
#define s_len(_s) (sizeof(_s)-1)
344344
static char buf[MAX_SIPPING_SIZE];
345345
char *p, proto_str[PROTO_NAME_MAX_SIZE];
346-
str address, port;
346+
str *address, *port;
347347
str st;
348348
int len;
349349

@@ -367,29 +367,29 @@ build_sipping(udomain_t *d, str *curi, struct socket_info* s,str *path,
367367
st.len = p - proto_str;
368368

369369
if (s->adv_name_str.len)
370-
address = s->adv_name_str;
371-
else if (default_global_address.len)
370+
address = &s->adv_name_str;
371+
else if (default_global_address->len)
372372
address = default_global_address;
373373
else
374-
address = s->address_str;
374+
address = &s->address_str;
375375
if (s->adv_port_str.len)
376-
port = s->adv_port_str;
377-
else if (default_global_port.len)
376+
port = &s->adv_port_str;
377+
else if (default_global_port->len)
378378
port = default_global_port;
379379
else
380-
port = s->port_no_str;
380+
port = &s->port_no_str;
381381

382382
/* quick proto uppercase */
383383
*((int *)st.s) &= ~((1 << 21) | (1 << 13) | (1 << 5));
384384

385385
if ( sipping_method.len + 1 + curi->len + s_len(" SIP/2.0"CRLF) +
386-
s_len("Via: SIP/2.0/") + st.len + address.len +
387-
1 + port.len + strlen(branch) +
386+
s_len("Via: SIP/2.0/") + st.len + address->len +
387+
1 + port->len + strlen(branch) +
388388
(path->len ? (s_len(CRLF"Route: ") + path->len) : 0) +
389389
s_len(CRLF"From: ") + sipping_from.len + s_len(";tag=") + 8 +
390390
s_len(CRLF"To: ") + curi->len +
391391
s_len(CRLF"Call-ID: ") + sipping_callid.len + 1 + 8 + 1 + 8 + 1 +
392-
address.len +
392+
address->len +
393393
s_len(CRLF"CSeq: 1 ") + sipping_method.len +
394394
s_len(CRLF"Max-Forwards: "MAX_FORWARD) +
395395
s_len(CRLF"Content-Length: 0" CRLF CRLF)
@@ -405,9 +405,9 @@ build_sipping(udomain_t *d, str *curi, struct socket_info* s,str *path,
405405
append_str( p, *curi);
406406
append_fix( p, " SIP/2.0"CRLF"Via: SIP/2.0/");
407407
append_str( p, st);
408-
append_str( p, address);
408+
append_str( p, *address);
409409
*(p++) = ':';
410-
append_str( p, port);
410+
append_str( p, *port);
411411
append_str( p, sbranch);
412412
if (path->len) {
413413
append_fix( p, CRLF"Route: ");
@@ -429,7 +429,7 @@ build_sipping(udomain_t *d, str *curi, struct socket_info* s,str *path,
429429
len = 8;
430430
int2reverse_hex( &p, &len, get_ticks() );
431431
*(p++) = '@';
432-
append_str( p, address);
432+
append_str( p, *address);
433433
append_fix( p, CRLF"CSeq: 1 ");
434434
append_str( p, sipping_method);
435435
append_fix( p, CRLF"Max-Forwards: "MAX_FORWARD);

modules/tm/t_msgbuilder.c

+6-6
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ char *build_local(struct cell *Trans,unsigned int branch,
197197

198198
/* User Agent */
199199
if (server_signature) {
200-
*len += user_agent_header.len + CRLF_LEN;
200+
*len += user_agent_header->len + CRLF_LEN;
201201
}
202202
/* Content Length, MaxFwd, EoM */
203203
*len+=LOCAL_MAXFWD_HEADER_LEN + CONTENT_LENGTH_LEN+1 + (extra?extra->len:0)
@@ -244,7 +244,7 @@ char *build_local(struct cell *Trans,unsigned int branch,
244244

245245
/* User Agent header, Content Length, EoM */
246246
if (server_signature) {
247-
append_string(p, user_agent_header.s, user_agent_header.len);
247+
append_string(p, user_agent_header->s, user_agent_header->len);
248248
append_string(p, CRLF CONTENT_LENGTH "0" CRLF CRLF ,
249249
CRLF_LEN+CONTENT_LENGTH_LEN+1 + CRLF_LEN + CRLF_LEN);
250250
} else {
@@ -517,7 +517,7 @@ char *build_dlg_ack(struct sip_msg* rpl, struct cell *Trans,
517517

518518
/* User Agent */
519519
if (server_signature)
520-
*len += user_agent_header.len + CRLF_LEN;
520+
*len += user_agent_header->len + CRLF_LEN;
521521

522522
/* Content Length, EoM */
523523
*len += CONTENT_LENGTH_LEN + 1 + CRLF_LEN + CRLF_LEN;
@@ -551,7 +551,7 @@ char *build_dlg_ack(struct sip_msg* rpl, struct cell *Trans,
551551

552552
/* User Agent header, Content Length, EoM */
553553
if (server_signature) {
554-
append_string(p, user_agent_header.s, user_agent_header.len);
554+
append_string(p, user_agent_header->s, user_agent_header->len);
555555
append_string(p, CRLF CONTENT_LENGTH "0" CRLF CRLF,
556556
CRLF_LEN+CONTENT_LENGTH_LEN + 1 + CRLF_LEN + CRLF_LEN);
557557
} else {
@@ -845,7 +845,7 @@ char* build_uac_req(str* method, str* headers, str* body, dlg_t* dialog,
845845
/* Content-Length */
846846
*len += CONTENT_LENGTH_LEN + content_length.len + CRLF_LEN;
847847
/* Signature */
848-
*len += (server_signature ? (user_agent_header.len + CRLF_LEN) : 0);
848+
*len += (server_signature ? (user_agent_header->len + CRLF_LEN) : 0);
849849
/* Additional headers */
850850
*len += (headers ? headers->len : 0);
851851
/* Message body */
@@ -885,7 +885,7 @@ char* build_uac_req(str* method, str* headers, str* body, dlg_t* dialog,
885885

886886
/* Server signature */
887887
if (server_signature) {
888-
append_string(w, user_agent_header.s, user_agent_header.len);
888+
append_string(w, user_agent_header->s, user_agent_header->len);
889889
append_string(w, CRLF, CRLF_LEN);
890890
}
891891

msg_translator.c

+18-18
Original file line numberDiff line numberDiff line change
@@ -607,32 +607,32 @@ int lumps_len(struct sip_msg* msg, struct lump* lumps,
607607
send_address_str=&(send_sock->adv_name_str);
608608
else if (msg->set_global_address.s)
609609
send_address_str=&(msg->set_global_address);
610-
else if (default_global_address.s)
611-
send_address_str=&default_global_address;
610+
else if (default_global_address->s)
611+
send_address_str=default_global_address;
612612
else
613613
send_address_str=&(send_sock->address_str);
614614

615615
if(send_sock && send_sock->adv_port_str.len)
616616
send_port_str=&(send_sock->adv_port_str);
617617
else if (msg->set_global_port.s)
618618
send_port_str=&(msg->set_global_port);
619-
else if (default_global_port.s)
620-
send_port_str=&default_global_port;
619+
else if (default_global_port->s)
620+
send_port_str=default_global_port;
621621
else
622622
send_port_str=&(send_sock->port_no_str);
623623

624624
/* init rcv_address_str & rcv_port_str */
625625
if(msg->rcv.bind_address) {
626626
if(msg->rcv.bind_address->adv_name_str.len)
627627
rcv_address_str=&(msg->rcv.bind_address->adv_name_str);
628-
else if (default_global_address.s)
629-
rcv_address_str=&default_global_address;
628+
else if (default_global_address->s)
629+
rcv_address_str=default_global_address;
630630
else
631631
rcv_address_str=&(msg->rcv.bind_address->address_str);
632632
if(msg->rcv.bind_address->adv_port_str.len)
633633
rcv_port_str=&(msg->rcv.bind_address->adv_port_str);
634-
else if (default_global_port.s)
635-
rcv_port_str=&default_global_port;
634+
else if (default_global_port->s)
635+
rcv_port_str=default_global_port;
636636
else
637637
rcv_port_str=&(msg->rcv.bind_address->port_no_str);
638638
}
@@ -1017,31 +1017,31 @@ void process_lumps( struct sip_msg* msg,
10171017
send_address_str=&(send_sock->adv_name_str);
10181018
else if (msg->set_global_address.len)
10191019
send_address_str=&(msg->set_global_address);
1020-
else if (default_global_address.s)
1021-
send_address_str=&default_global_address;
1020+
else if (default_global_address->s)
1021+
send_address_str=default_global_address;
10221022
else
10231023
send_address_str=&(send_sock->address_str);
10241024
if(send_sock && send_sock->adv_port_str.len)
10251025
send_port_str=&(send_sock->adv_port_str);
10261026
else if (msg->set_global_port.len)
10271027
send_port_str=&(msg->set_global_port);
1028-
else if (default_global_port.s)
1029-
send_port_str=&default_global_port;
1028+
else if (default_global_port->s)
1029+
send_port_str=default_global_port;
10301030
else
10311031
send_port_str=&(send_sock->port_no_str);
10321032

10331033
/* init rcv_address_str & rcv_port_str */
10341034
if(msg->rcv.bind_address) {
10351035
if(msg->rcv.bind_address->adv_name_str.len)
10361036
rcv_address_str=&(msg->rcv.bind_address->adv_name_str);
1037-
else if (default_global_address.s)
1038-
rcv_address_str=&default_global_address;
1037+
else if (default_global_address->s)
1038+
rcv_address_str=default_global_address;
10391039
else
10401040
rcv_address_str=&(msg->rcv.bind_address->address_str);
10411041
if(msg->rcv.bind_address->adv_port_str.len)
10421042
rcv_port_str=&(msg->rcv.bind_address->adv_port_str);
1043-
else if (default_global_port.s)
1044-
rcv_port_str=&default_global_port;
1043+
else if (default_global_port->s)
1044+
rcv_port_str=default_global_port;
10451045
else
10461046
rcv_port_str=&(msg->rcv.bind_address->port_no_str);
10471047
}
@@ -2530,7 +2530,7 @@ char * build_res_buf_from_sip_req( unsigned int code, const str *text ,str *new_
25302530
}
25312531
/* server header */
25322532
if (server_signature)
2533-
len += server_header.len + CRLF_LEN;
2533+
len += server_header->len + CRLF_LEN;
25342534
/* warning hdr */
25352535
if (sip_warning) {
25362536
warning_buf = warning_builder(msg,&warning_len);
@@ -2672,7 +2672,7 @@ char * build_res_buf_from_sip_req( unsigned int code, const str *text ,str *new_
26722672
}
26732673
/* server header */
26742674
if (server_signature) {
2675-
append_str( p, server_header.s, server_header.len);
2675+
append_str( p, server_header->s, server_header->len);
26762676
append_str( p, CRLF, CRLF_LEN );
26772677
}
26782678
/* content_length hdr */

0 commit comments

Comments
 (0)