forked from Mirrors/sngrep
options: aliasport feature now could match IP:PORT as well as IP only aliases
This allows to assign alias independent of port number
This commit is contained in:
parent
5df4038318
commit
36de19bdbd
|
@ -1391,9 +1391,7 @@ call_flow_column_add(ui_t *ui, const char *callid, address_t addr)
|
||||||
vector_append(column->callids, (void*)callid);
|
vector_append(column->callids, (void*)callid);
|
||||||
column->addr = addr;
|
column->addr = addr;
|
||||||
if (setting_enabled(SETTING_ALIAS_PORT)) {
|
if (setting_enabled(SETTING_ALIAS_PORT)) {
|
||||||
char addr_port[1024];
|
strcpy(column->alias, get_alias_value_vs_port(addr.ip, addr.port));
|
||||||
sprintf(addr_port, "%s:%d", addr.ip, addr.port);
|
|
||||||
strcpy(column->alias, get_alias_value(addr_port));
|
|
||||||
} else {
|
} else {
|
||||||
strcpy(column->alias, get_alias_value(addr.ip));
|
strcpy(column->alias, get_alias_value(addr.ip));
|
||||||
}
|
}
|
||||||
|
@ -1417,10 +1415,8 @@ call_flow_column_get(ui_t *ui, const char *callid, address_t addr)
|
||||||
match_port = addr.port != 0;
|
match_port = addr.port != 0;
|
||||||
|
|
||||||
// Get alias value for given address
|
// Get alias value for given address
|
||||||
if (setting_enabled(SETTING_ALIAS_PORT)) {
|
if (setting_enabled(SETTING_ALIAS_PORT) && match_port) {
|
||||||
char addr_port[1024];
|
alias = get_alias_value_vs_port(addr.ip, addr.port);
|
||||||
sprintf(addr_port, "%s:%d", addr.ip, addr.port);
|
|
||||||
alias = get_alias_value(addr_port);
|
|
||||||
} else {
|
} else {
|
||||||
alias = get_alias_value(addr.ip);
|
alias = get_alias_value(addr.ip);
|
||||||
}
|
}
|
||||||
|
|
23
src/option.c
23
src/option.c
|
@ -194,6 +194,29 @@ set_alias_value(const char *address, const char *alias)
|
||||||
optscnt++;
|
optscnt++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char *
|
||||||
|
get_alias_value_vs_port(const char *address, uint16_t port)
|
||||||
|
{
|
||||||
|
if (!address)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
int i;
|
||||||
|
const char * rc = NULL;
|
||||||
|
|
||||||
|
char *addr_port = sng_malloc(ADDRESSLEN + 10);
|
||||||
|
sprintf(addr_port, "%s:%d", address, port);
|
||||||
|
for (i = 0; i < optscnt; i++) {
|
||||||
|
if (options[i].type != ALIAS)
|
||||||
|
continue;
|
||||||
|
if (!strcmp(options[i].opt, addr_port) || !strcmp(options[i].opt, address)) {
|
||||||
|
sng_free(addr_port);
|
||||||
|
return options[i].value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return address;
|
||||||
|
}
|
||||||
|
|
||||||
const char *
|
const char *
|
||||||
get_alias_value(const char *address)
|
get_alias_value(const char *address)
|
||||||
{
|
{
|
||||||
|
|
11
src/option.h
11
src/option.h
|
@ -43,6 +43,8 @@
|
||||||
#ifndef __SNGREP_CONFIG_H
|
#ifndef __SNGREP_CONFIG_H
|
||||||
#define __SNGREP_CONFIG_H
|
#define __SNGREP_CONFIG_H
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
//! Shorter declaration of config_option struct
|
//! Shorter declaration of config_option struct
|
||||||
typedef struct config_option option_opt_t;
|
typedef struct config_option option_opt_t;
|
||||||
|
|
||||||
|
@ -157,5 +159,14 @@ set_alias_value(const char *address, const char *alias);
|
||||||
const char *
|
const char *
|
||||||
get_alias_value(const char *address);
|
get_alias_value(const char *address);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get alias for a given address and port (string)
|
||||||
|
*
|
||||||
|
* @param address IP Address
|
||||||
|
* @param port port
|
||||||
|
* @return configured alias or address if alias not found
|
||||||
|
*/
|
||||||
|
const char *
|
||||||
|
get_alias_value_vs_port(const char *address, uint16_t port);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue