15 changed files with 72 additions and 32 deletions
+5
View File
@@ -20,3 +20,8 @@ revsuit
*.njsproj
*.sln
*.sw?
## node
package.json
package-lock.json
node_modules/
+18
View File
@@ -0,0 +1,18 @@
# Changelog
All notable changes to this project will be documented in this file.
See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
### [0.1.4-beta](https://github.com/Li4n0/revsuit/compare/v0.1.3-beta-fix1...v0.1.4-beta) (2021-05-27)
### Features
* **dns:** support custom dns service
port ([7fb4c97](https://github.com/Li4n0/revsuit/commit/7fb4c97279e57d120a4e4aef5dda5c8f3c024835))
* **frontend:** auto refresh data when switching back to the revsuit
console ([9b31406](https://github.com/Li4n0/revsuit/commit/9b314062a39ddc7acf7a7eab3570b24b9bb9d122))
### Bug Fixes
* **http:** fix the problem that ip_header configuration does not take
effect ([b76c39e](https://github.com/Li4n0/revsuit/commit/b76c39e2fc1ada189feb783fdec76daffa11d1c7))
+1 -1
View File
@@ -1 +1 @@
.custom-icons-list[data-v-05a908c2] .anticon{margin-right:6px}body[data-v-07ed630b],html[data-v-07ed630b]{height:100%;margin:0}.fade-transform-enter-active[data-v-07ed630b],.fade-transform-leave-active[data-v-07ed630b]{transition:all .3s;opacity:0}.fade-transform-enter[data-v-07ed630b],.fade-transform-leave[data-v-07ed630b]{opacity:0}.fade-transform-enter-to[data-v-07ed630b]{opacity:0}.ant-menu-item>span>a[data-v-07ed630b]{color:hsla(0,0%,100%,.65)}.ant-menu-item-selected>span>a[data-v-07ed630b]{color:#fff}#nav[data-v-07ed630b]{height:100%}#nav .trigger[data-v-07ed630b]{font-size:18px;line-height:64px;padding:0 24px;cursor:pointer;transition:color .3s}#nav .trigger[data-v-07ed630b]:hover{color:#1890ff}#nav .logo[data-v-07ed630b]{height:32px;background:#0a1d2d;margin:16px;text-align:center;font-size:1.2rem;color:#fff;padding-bottom:5px;border-bottom:2px solid #b6befa}.copyright[data-v-07ed630b]{color:#888;text-align:right;margin-right:1rem}
.custom-icons-list[data-v-05a908c2] .anticon{margin-right:6px}body[data-v-2f6f0625],html[data-v-2f6f0625]{height:100%;margin:0}.fade-transform-enter-active[data-v-2f6f0625],.fade-transform-leave-active[data-v-2f6f0625]{transition:all .3s;opacity:0}.fade-transform-enter[data-v-2f6f0625],.fade-transform-leave[data-v-2f6f0625]{opacity:0}.fade-transform-enter-to[data-v-2f6f0625]{opacity:0}.ant-menu-item>span>a[data-v-2f6f0625]{color:hsla(0,0%,100%,.65)}.ant-menu-item-selected>span>a[data-v-2f6f0625]{color:#fff}#app[data-v-2f6f0625]{height:100%}#app .trigger[data-v-2f6f0625]{font-size:18px;line-height:64px;padding:0 24px;cursor:pointer;transition:color .3s}#app .trigger[data-v-2f6f0625]:hover{color:#1890ff}#app .logo[data-v-2f6f0625]{height:32px;background:#0a1d2d;margin:16px;text-align:center;font-size:1.2rem;color:#fff;padding-bottom:5px;border-bottom:2px solid #b6befa}.copyright[data-v-2f6f0625]{color:#888;text-align:right;margin-right:1rem}
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+27 -14
View File
@@ -5,13 +5,15 @@
"requires": true,
"packages": {
"": {
"name": "revsuit-frontend",
"version": "0.1.0",
"dependencies": {
"ant-design-vue": "^1.2.4",
"axios": "^0.21.1",
"core-js": "^3.6.5",
"vue": "^2.6.11",
"vue-router": "^3.2.0"
"vue-router": "^3.2.0",
"vue-visibility-change": "^1.2.1"
},
"devDependencies": {
"@vue/cli-plugin-babel": "~4.5.0",
@@ -4808,7 +4810,8 @@
"node_modules/de-indent": {
"version": "1.0.2",
"resolved": "https://registry.npm.taobao.org/de-indent/download/de-indent-1.0.2.tgz",
"integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0="
"integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=",
"dev": true
},
"node_modules/debug": {
"version": "4.3.1",
@@ -6896,6 +6899,7 @@
"version": "1.2.0",
"resolved": "https://registry.npm.taobao.org/he/download/he-1.2.0.tgz",
"integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=",
"dev": true,
"bin": {
"he": "bin/he"
}
@@ -13517,6 +13521,7 @@
"version": "2.6.12",
"resolved": "https://registry.npm.taobao.org/vue-template-compiler/download/vue-template-compiler-2.6.12.tgz",
"integrity": "sha1-lH7XGWdEyKUoXr4SM/6WBDf8xX4=",
"dev": true,
"dependencies": {
"de-indent": "^1.0.2",
"he": "^1.1.0"
@@ -13528,6 +13533,11 @@
"integrity": "sha1-HuO8mhbsv1EYvjNLsV+cRvgvWCU=",
"dev": true
},
"node_modules/vue-visibility-change": {
"version": "1.2.1",
"resolved": "https://registry.npm.taobao.org/vue-visibility-change/download/vue-visibility-change-1.2.1.tgz",
"integrity": "sha1-0YAIv08d4slHr+VEHuBEuenGAUE="
},
"node_modules/warning": {
"version": "4.0.3",
"resolved": "https://registry.npm.taobao.org/warning/download/warning-4.0.3.tgz",
@@ -16426,8 +16436,7 @@
"version": "4.5.11",
"resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-vuex/download/@vue/cli-plugin-vuex-4.5.11.tgz?cache=0&sync_timestamp=1615453605559&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-plugin-vuex%2Fdownload%2F%40vue%2Fcli-plugin-vuex-4.5.11.tgz",
"integrity": "sha1-9vYZvPtmyGzEU0DXMVKERjXlSL0=",
"dev": true,
"requires": {}
"dev": true
},
"@vue/cli-service": {
"version": "4.5.11",
@@ -16581,8 +16590,7 @@
"version": "1.1.2",
"resolved": "https://registry.npm.taobao.org/@vue/preload-webpack-plugin/download/@vue/preload-webpack-plugin-1.1.2.tgz",
"integrity": "sha1-zrkktOyzucQ4ccekKaAvhCPmIas=",
"dev": true,
"requires": {}
"dev": true
},
"@vue/web-component-wrapper": {
"version": "1.3.0",
@@ -16797,8 +16805,7 @@
"version": "5.3.1",
"resolved": "https://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-5.3.1.tgz",
"integrity": "sha1-/IZh4Rt6wVOcR9v+oucrOvNNJns=",
"dev": true,
"requires": {}
"dev": true
},
"acorn-walk": {
"version": "7.2.0",
@@ -16846,15 +16853,13 @@
"version": "1.0.1",
"resolved": "https://registry.npm.taobao.org/ajv-errors/download/ajv-errors-1.0.1.tgz?cache=0&sync_timestamp=1615411237786&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-errors%2Fdownload%2Fajv-errors-1.0.1.tgz",
"integrity": "sha1-81mGrOuRr63sQQL72FAUlQzvpk0=",
"dev": true,
"requires": {}
"dev": true
},
"ajv-keywords": {
"version": "3.5.2",
"resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.5.2.tgz?cache=0&sync_timestamp=1615647295573&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.2.tgz",
"integrity": "sha1-MfKdpatuANHC0yms97WSlhTVAU0=",
"dev": true,
"requires": {}
"dev": true
},
"alphanum-sort": {
"version": "1.0.2",
@@ -18894,7 +18899,8 @@
"de-indent": {
"version": "1.0.2",
"resolved": "https://registry.npm.taobao.org/de-indent/download/de-indent-1.0.2.tgz",
"integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0="
"integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=",
"dev": true
},
"debug": {
"version": "4.3.1",
@@ -20627,7 +20633,8 @@
"he": {
"version": "1.2.0",
"resolved": "https://registry.npm.taobao.org/he/download/he-1.2.0.tgz",
"integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8="
"integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=",
"dev": true
},
"hex-color-regex": {
"version": "1.1.0",
@@ -26181,6 +26188,7 @@
"version": "2.6.12",
"resolved": "https://registry.npm.taobao.org/vue-template-compiler/download/vue-template-compiler-2.6.12.tgz",
"integrity": "sha1-lH7XGWdEyKUoXr4SM/6WBDf8xX4=",
"dev": true,
"requires": {
"de-indent": "^1.0.2",
"he": "^1.1.0"
@@ -26192,6 +26200,11 @@
"integrity": "sha1-HuO8mhbsv1EYvjNLsV+cRvgvWCU=",
"dev": true
},
"vue-visibility-change": {
"version": "1.2.1",
"resolved": "https://registry.npm.taobao.org/vue-visibility-change/download/vue-visibility-change-1.2.1.tgz",
"integrity": "sha1-0YAIv08d4slHr+VEHuBEuenGAUE="
},
"warning": {
"version": "4.0.3",
"resolved": "https://registry.npm.taobao.org/warning/download/warning-4.0.3.tgz",
+2 -1
View File
@@ -12,7 +12,8 @@
"axios": "^0.21.1",
"core-js": "^3.6.5",
"vue": "^2.6.11",
"vue-router": "^3.2.0"
"vue-router": "^3.2.0",
"vue-visibility-change": "^1.2.1"
},
"devDependencies": {
"@vue/cli-plugin-babel": "~4.5.0",
+5 -5
View File
@@ -1,5 +1,5 @@
<template>
<a-layout id="nav">
<a-layout id="app" v-visibility-change="()=>{this.$refs.content.fetch?this.$refs.content.fetch():null}">
<a-layout-sider v-model="collapsed" :trigger="null" collapsible>
<div class="logo"><b>R</b><span v-if="!collapsed"><b>ev</b>Suit</span></div>
<a-menu theme="dark" mode="inline" :selectedKeys="[this.$route.path]" :openKeys.sync="openKeys">
@@ -247,11 +247,11 @@ html, body {
color: white;
}
#nav {
#app {
height: 100%;
}
#nav .trigger {
#app .trigger {
font-size: 18px;
line-height: 64px;
padding: 0 24px;
@@ -259,11 +259,11 @@ html, body {
transition: color 0.3s;
}
#nav .trigger:hover {
#app .trigger:hover {
color: #1890ff;
}
#nav .logo {
#app .logo {
height: 32px;
background: #0a1d2d;
margin: 16px;
+4
View File
@@ -4,10 +4,14 @@ import App from './App';
import router from "@/router";
import 'ant-design-vue/dist/antd.css';
import '@/utils/index'
import visibility from 'vue-visibility-change';
Vue.config.productionTip = false;
Vue.use(Antd);
Vue.use(visibility);
export const store = Vue.observable({
authed: true,
pageSize: localStorage.getItem("pageSize") ? parseInt(localStorage.getItem("pageSize")) : 10
+2 -1
View File
@@ -1,4 +1,4 @@
version: 1.0
version: 1.1
addr: :10000
token:
domain:
@@ -10,6 +10,7 @@ http:
ip_header:
dns:
enable: true
addr: :53
rmi:
enable: true
addr: :1099
+1
View File
@@ -2,4 +2,5 @@ package dns
type Config struct {
Enable bool
Addr string
}
+1 -1
View File
@@ -252,7 +252,7 @@ func (s *Server) Run() {
}
}()
err := server.Run(":53")
err := server.Run(s.Addr)
defer server.Close()
if err != nil {
+1 -1
View File
@@ -1,5 +1,5 @@
package rhttp
type Config struct {
IpHeader string
IpHeader string `yaml:"ip_header"`
}
+2 -5
View File
@@ -166,10 +166,7 @@ func (s *Server) Receive(c *gin.Context) {
continue
}
var (
ip = strings.Split(c.Request.RemoteAddr, ":")[0]
area = qqwry.Area(ip)
)
ip := strings.Split(c.Request.RemoteAddr, ":")[0]
if ip1 := c.Request.Header.Get(s.IpHeader); s.IpHeader != "" && ip1 != "" {
ip = ip1
@@ -177,7 +174,7 @@ func (s *Server) Receive(c *gin.Context) {
}
// create new record
r, err := NewRecord(_rule, flag, c.Request.Method, u, ip, area, string(raw))
r, err := NewRecord(_rule, flag, c.Request.Method, u, ip, qqwry.Area(ip), string(raw))
if err != nil {
log.Warn("HTTP record[rule_id:%d] created failed :%s", _rule.ID, err)
code, err := strconv.Atoi(compileTpl(c, _rule.ResponseStatusCode, vars))
+1 -1
View File
@@ -17,7 +17,7 @@ import (
log "unknwon.dev/clog/v2"
)
const VERSION = "0.1.3-beta"
const VERSION = "0.1.4-beta"
type Revsuit struct {
config *Config