MCPcopy Create free account
hub / github.com/OpenSIPS/opensips / warning_builder

Function warning_builder

msg_translator.c:162–234  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

160
161
162static char * warning_builder( struct sip_msg *msg, unsigned int *returned_len)
163{
164 static char buf[MAX_WARNING_LEN];
165 str *foo;
166 int print_len, l, clen;
167 char* t;
168
169#define str_print(string, string_len) \
170 do{ \
171 l=(string_len); \
172 if ((clen+l)>MAX_WARNING_LEN) \
173 goto error_overflow; \
174 memcpy(buf+clen, (string), l); \
175 clen+=l; \
176 }while(0)
177
178#define str_lenpair_print(string, string_len, string2, string2_len) \
179 do{ \
180 str_print(string, string_len); \
181 str_print(string2, string2_len);\
182 }while(0)
183
184#define str_pair_print( string, string2, string2_len) \
185 str_lenpair_print((string), strlen((string)), (string2), (string2_len))
186
187#define str_int_print(string, intval)\
188 do{\
189 t=int2str((intval), &print_len); \
190 str_pair_print(string, t, print_len);\
191 } while(0)
192
193#define str_ipaddr_print(string, ipaddr_val)\
194 do{\
195 t=ip_addr2a((ipaddr_val)); \
196 print_len=strlen(t); \
197 str_pair_print(string, t, print_len);\
198 } while(0)
199
200 clen=0;
201 str_lenpair_print(WARNING, WARNING_LEN,
202 msg->rcv.bind_address->name.s,
203 msg->rcv.bind_address->name.len);
204 str_lenpair_print(":", 1, msg->rcv.bind_address->port_no_str.s,
205 msg->rcv.bind_address->port_no_str.len);
206 str_print(WARNING_PHRASE, WARNING_PHRASE_LEN);
207
208 /*adding out_uri*/
209 if (msg->new_uri.s)
210 foo=&(msg->new_uri);
211 else
212 foo=&(msg->first_line.u.request.uri);
213 /* pid= */
214 str_int_print(" pid=", my_pid());
215 /* req_src_ip= */
216 str_ipaddr_print(" req_src_ip=", &msg->rcv.src_ip);
217 str_int_print(" req_src_port=", msg->rcv.src_port);
218 str_pair_print(" in_uri=", msg->first_line.u.request.uri.s,
219 msg->first_line.u.request.uri.len);

Callers 1

Calls 1

my_pidFunction · 0.85

Tested by

no test coverage detected