Changes in / [966:8862d9dece66:969:6808de455810] in freeDiameter
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
include/freeDiameter/libfdcore.h
r947 r968 385 385 int fd_peer_get_state(struct peer_hdr *peer); 386 386 387 /* 388 * FUNCTION: fd_peer_get_load_pending 389 * 390 * PARAMETERS: 391 * peer : The peer which load to read 392 * 393 * DESCRIPTION: 394 * Returns the current number of requests sent to this peer 395 * that have not been answered yet. This is an empirical indication 396 * of the workload of this peer. 397 * 398 * RETURN VALUE: 399 * 0 : The load parameter has been updated. (it should have a positive value always) 400 * !0 : An error occurred 401 */ 402 int fd_peer_get_load_pending(struct peer_hdr *peer, int * load); 403 387 404 /* 388 405 * FUNCTION: fd_peer_validate_register -
libfdcore/fdcore-internal.h
r928 r938 126 126 struct fd_list srs; /* requests ordered by hop-by-hop id */ 127 127 struct fd_list exp; /* requests that have a timeout set, ordered by timeout */ 128 int cnt; /* number of requests in the srs list */ 128 129 pthread_mutex_t mtx; /* mutex to protect these lists */ 129 130 pthread_cond_t cnd; /* cond var used by the thread that handles timeouts */ -
libfdcore/fdd.l
r965 r969 52 52 yylloc->first_column = yylloc->last_column + 1; \ 53 53 yylloc->last_column = yylloc->first_column + yyleng - 1; \ 54 TRACE_ERROR(\54 fd_log_debug( \ 55 55 "(%d:%d-%d:%d) matched rule %d, length=%d, txt='%s'\n", \ 56 56 yylloc->first_line, yylloc->first_column, \ -
libfdcore/fdd.y
r965 r969 323 323 { yyerror (&yylloc, conf, "Not enough memory"); YYERROR; } ); 324 324 sprintf(fname, DEFAULT_EXTENSIONS_PATH "/%s", bkp); 325 free(bkp);326 325 fd = fopen(fname, "r"); 327 } 328 if (fd == NULL) { 329 int ret = errno; 330 TRACE_ERROR("WARNING: Unable to open extension file %s for reading: %s\nLD_LIBRARY_PATH will be used.\n", fname, strerror(ret)); 331 } else { 326 if (fd == NULL) { 327 free(fname); 328 fname = bkp; 329 } else { 330 free(bkp); 331 } 332 } 333 if (fd != NULL) { 332 334 fclose(fd); 333 } 335 } /* otherwise, LD_LIBRARY_PATH will be tested by dl_open. 336 This should not give any security issue, otherwise we can add an "else fail" here. */ 334 337 335 338 /* Try and open the configuration file (optional) */ -
libfdcore/p_sr.c
r837 r938 226 226 *req = NULL; 227 227 fd_list_insert_before(next, &sr->chain); 228 srlist->cnt++; 228 229 srl_dump("Saved new request, ", &srlist->srs); 229 230 … … 281 282 /* Unlink */ 282 283 fd_list_unlink(&sr->chain); 284 srlist->cnt--; 283 285 fd_list_unlink(&sr->expire); 284 286 *req = sr->req; … … 300 302 struct sentreq * sr = (struct sentreq *)(srlist->srs.next); 301 303 fd_list_unlink(&sr->chain); 304 srlist->cnt--; 302 305 fd_list_unlink(&sr->expire); 303 306 if (fd_msg_is_routable(sr->req)) { -
libfdcore/peers.c
r961 r968 257 257 } 258 258 259 /* Return the value of srlist->cnt */ 260 int fd_peer_get_load_pending(struct peer_hdr *peer, int * load) 261 { 262 struct fd_peer * p = (struct fd_peer *)peer; 263 TRACE_ENTRY("%p %p", peer, load); 264 CHECK_PARAMS(CHECK_PEER(peer) && load); 265 266 CHECK_POSIX( pthread_mutex_lock(&p->p_sr.mtx) ); 267 *load = p->p_sr.cnt; 268 CHECK_POSIX( pthread_mutex_unlock(&p->p_sr.mtx) ); 269 270 return 0; 271 } 272 273 259 274 /* Destroy a structure once cleanups have been performed (fd_psm_abord, ...) */ 260 275 int fd_peer_free(struct fd_peer ** ptr) … … 395 410 } 396 411 397 fd_log_debug("> %s\t%s ", STATE_STR(fd_peer_getstate(peer)), peer->p_hdr.info.pi_diamid);412 fd_log_debug("> %s\t%s\t[%dsr]", STATE_STR(fd_peer_getstate(peer)), peer->p_hdr.info.pi_diamid, peer->p_sr.cnt); 398 413 if (details > INFO) { 399 414 fd_log_debug("\t(rlm:%s)", peer->p_hdr.info.runtime.pir_realm ?: "<unknown>");
Note: See TracChangeset
for help on using the changeset viewer.