/********************************************************************** * %FUNCTION: cmd_dump_sessions * %ARGUMENTS: * es -- event selector * fd -- command file descriptor * buf -- rest of command from user * %RETURNS: * Nothing * %DESCRIPTION: * Dumps info about all currently-active tunnels and sessions ***********************************************************************/ static void cmd_dump_sessions(EventSelector *es, int fd, char *buf) { dynstring str; char tmp[256]; void *cursor; char const *ans; l2tp_tunnel *tunnel; dynstring_init(&str); dynstring_append(&str, "OK\n"); /* Print info about each tunnel */ sprintf(tmp, "NumL2TPTunnels %d\n", l2tp_num_tunnels()); dynstring_append(&str, tmp); for (tunnel = l2tp_first_tunnel(&cursor); tunnel; tunnel = l2tp_next_tunnel(&cursor)) { describe_tunnel(tunnel, &str); } /* If something went wrong, say so... */ ans = dynstring_data(&str); if (!ans) { cmd_reply(es, fd, "ERR Out of memory"); return; } cmd_reply(es, fd, ans); dynstring_free(&str); }
/*********************************************************** * 功能: 重置动态字符串,先释放,重新初始化 * pstr: 动态字符串指针 **********************************************************/ void dynstring_reset(DynString *pstr) { dynstring_free(pstr); dynstring_init(pstr,8); //字符串初始化分配空间8个字节 }
void dynstring_reset(DynString* ptr) //重新初始化 { dynstring_free(ptr); dynstring_init(ptr, 8); }