mirror of
https://github.com/number571/hes.git
synced 2026-09-14 11:05:43 +05:00
rename vars, go fmt
This commit is contained in:
parent
2272ed3e33
commit
d3faa6ae8e
80
client.go
80
client.go
@ -1,19 +1,19 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"os"
|
||||
"fmt"
|
||||
"time"
|
||||
"flag"
|
||||
"bytes"
|
||||
"bufio"
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"flag"
|
||||
"fmt"
|
||||
gp "github.com/number571/gopeer"
|
||||
"golang.org/x/net/proxy"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
"net/url"
|
||||
"net/http"
|
||||
"encoding/json"
|
||||
"golang.org/x/net/proxy"
|
||||
gp "github.com/number571/gopeer"
|
||||
"time"
|
||||
)
|
||||
|
||||
type Resp struct {
|
||||
@ -22,23 +22,22 @@ type Resp struct {
|
||||
}
|
||||
|
||||
type ReqSend struct {
|
||||
Receiver string `json:"receiver"`
|
||||
Data string `json:"data"`
|
||||
Recv string `json:"recv"`
|
||||
Data string `json:"data"`
|
||||
}
|
||||
|
||||
type ReqRecv struct {
|
||||
User string `json:"user"`
|
||||
Recv string `json:"recv"`
|
||||
Mode string `json:"mode"`
|
||||
Numb int `json:"numb"`
|
||||
}
|
||||
|
||||
func main() {
|
||||
var (
|
||||
httpClient = new(http.Client)
|
||||
client = new(gp.Client)
|
||||
address string
|
||||
message string
|
||||
splited []string
|
||||
client = new(gp.Client)
|
||||
address string
|
||||
message string
|
||||
splited []string
|
||||
)
|
||||
useTor := flag.Bool("tor", false, "enable socks5 and connect to tor network")
|
||||
addrPtr := flag.String("address", "", "connect to hidden email server")
|
||||
@ -59,9 +58,9 @@ func main() {
|
||||
fmt.Println("error: dialer")
|
||||
return
|
||||
}
|
||||
httpClient = &http.Client {
|
||||
Transport: &http.Transport{ Dial: dialer.Dial },
|
||||
Timeout: time.Second * 15,
|
||||
httpClient = &http.Client{
|
||||
Transport: &http.Transport{Dial: dialer.Dial},
|
||||
Timeout: time.Second * 15,
|
||||
}
|
||||
}
|
||||
for {
|
||||
@ -127,11 +126,11 @@ func actionUser(client *gp.Client, splited []string) {
|
||||
fmt.Println("error: parse private key\n")
|
||||
return
|
||||
}
|
||||
*client = *gp.NewClient(priv, func(client *gp.Client, pack *gp.Package){})
|
||||
*client = *gp.NewClient(priv, func(client *gp.Client, pack *gp.Package) {})
|
||||
fmt.Println("success: user loaded\n")
|
||||
case "create":
|
||||
priv := gp.GeneratePrivate(gp.Get("AKEY_SIZE").(uint))
|
||||
*client = *gp.NewClient(priv, func(client *gp.Client, pack *gp.Package){})
|
||||
*client = *gp.NewClient(priv, func(client *gp.Client, pack *gp.Package) {})
|
||||
fmt.Println("success: user created\n")
|
||||
case "public":
|
||||
if client.Private() == nil {
|
||||
@ -156,31 +155,31 @@ func actionSend(httpClient *http.Client, client *gp.Client, address string) {
|
||||
fmt.Println("error: client is nil\n")
|
||||
return
|
||||
}
|
||||
recvstr := inputString("[receiver]> ")
|
||||
recvstr := inputString("[recv]> ")
|
||||
receiver := gp.ParsePublic(recvstr)
|
||||
if receiver == nil {
|
||||
fmt.Println("error: parse public key\n")
|
||||
return
|
||||
}
|
||||
title := inputString("[title]> ")
|
||||
title := inputString("[head]> ")
|
||||
if title == "" {
|
||||
fmt.Println("error: title is nil\n")
|
||||
return
|
||||
return
|
||||
}
|
||||
message := inputString("[message]> ")
|
||||
message := inputString("[body]> ")
|
||||
if title == "" {
|
||||
fmt.Println("error: message is nil\n")
|
||||
return
|
||||
return
|
||||
}
|
||||
pack := gp.NewPackage(title, message)
|
||||
pack = client.Encrypt(receiver, pack)
|
||||
req := serialize(ReqSend{
|
||||
Receiver: gp.HashPublic(receiver),
|
||||
Recv: gp.HashPublic(receiver),
|
||||
Data: gp.SerializePackage(pack),
|
||||
})
|
||||
resp, err := httpClient.Post(
|
||||
"http://" + address + "/send",
|
||||
"application/json",
|
||||
"http://"+address+"/send",
|
||||
"application/json",
|
||||
bytes.NewReader(req),
|
||||
)
|
||||
if err != nil {
|
||||
@ -213,12 +212,12 @@ func actionRecv(httpClient *http.Client, client *gp.Client, address string, spli
|
||||
switch splited[1] {
|
||||
case "size":
|
||||
req := serialize(ReqRecv{
|
||||
User: client.HashPublic(),
|
||||
Recv: client.HashPublic(),
|
||||
Mode: "size",
|
||||
})
|
||||
resp, err := httpClient.Post(
|
||||
"http://" + address + "/recv",
|
||||
"application/json",
|
||||
"http://"+address+"/recv",
|
||||
"application/json",
|
||||
bytes.NewReader(req),
|
||||
)
|
||||
if err != nil {
|
||||
@ -237,19 +236,18 @@ func actionRecv(httpClient *http.Client, client *gp.Client, address string, spli
|
||||
}
|
||||
fmt.Printf("%s\n\n", result.Result)
|
||||
default:
|
||||
num, err := strconv.Atoi(splited[1])
|
||||
_, err := strconv.Atoi(splited[1])
|
||||
if err != nil {
|
||||
fmt.Println("error: parse int\n")
|
||||
return
|
||||
}
|
||||
req := serialize(ReqRecv{
|
||||
User: client.HashPublic(),
|
||||
Mode: "email",
|
||||
Numb: num,
|
||||
Recv: client.HashPublic(),
|
||||
Mode: splited[1],
|
||||
})
|
||||
resp, err := httpClient.Post(
|
||||
"http://" + address + "/recv",
|
||||
"application/json",
|
||||
"http://"+address+"/recv",
|
||||
"application/json",
|
||||
bytes.NewReader(req),
|
||||
)
|
||||
if err != nil {
|
||||
@ -277,7 +275,7 @@ func actionRecv(httpClient *http.Client, client *gp.Client, address string, spli
|
||||
fmt.Println("error: parse public key\n")
|
||||
return
|
||||
}
|
||||
fmt.Printf("Sender: %s\n%s\nTitle: '%s'\nMessage: '%s'\n\n",
|
||||
fmt.Printf("Sender: %s\n%s\nTitle: '%s'\nMessage: '%s'\n\n",
|
||||
pack.Head.Sender, "---------------------------------",
|
||||
pack.Head.Title, pack.Body.Data)
|
||||
}
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"sync"
|
||||
"database/sql"
|
||||
_ "github.com/mattn/go-sqlite3"
|
||||
"sync"
|
||||
)
|
||||
|
||||
type DB struct {
|
||||
@ -37,7 +37,7 @@ func (db *DB) SetEmail(receiver, hash, data string) error {
|
||||
db.mtx.Lock()
|
||||
defer db.mtx.Unlock()
|
||||
_, err := db.ptr.Exec(
|
||||
"INSERT INTO emails (receiver, hash, data) VALUES ($1, $2, $3)",
|
||||
"INSERT INTO emails (receiver, hash, data) VALUES ($1, $2, $3)",
|
||||
receiver,
|
||||
hash,
|
||||
data,
|
||||
|
||||
47
server.go
47
server.go
@ -1,11 +1,12 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"flag"
|
||||
"net/http"
|
||||
"encoding/json"
|
||||
"flag"
|
||||
"fmt"
|
||||
gp "github.com/number571/gopeer"
|
||||
"net/http"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
const (
|
||||
@ -13,15 +14,15 @@ const (
|
||||
)
|
||||
|
||||
var (
|
||||
DBptr *DB
|
||||
DBptr *DB
|
||||
)
|
||||
|
||||
func init() {
|
||||
DBptr = DBInit("database.db")
|
||||
if DBptr == nil {
|
||||
panic("error: database init")
|
||||
}
|
||||
fmt.Println("Server is listening...\n")
|
||||
DBptr = DBInit("database.db")
|
||||
if DBptr == nil {
|
||||
panic("error: database init")
|
||||
}
|
||||
fmt.Println("Server is listening...\n")
|
||||
}
|
||||
|
||||
func main() {
|
||||
@ -45,8 +46,8 @@ func indexPage(w http.ResponseWriter, r *http.Request) {
|
||||
func emailSendPage(w http.ResponseWriter, r *http.Request) {
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
var req struct {
|
||||
Receiver string `json:"receiver"`
|
||||
Data string `json:"data"`
|
||||
Recv string `json:"recv"`
|
||||
Data string `json:"data"`
|
||||
}
|
||||
if r.Method != "POST" {
|
||||
response(w, 1, "error: method != POST")
|
||||
@ -72,7 +73,7 @@ func emailSendPage(w http.ResponseWriter, r *http.Request) {
|
||||
response(w, 5, "error: proof of work")
|
||||
return
|
||||
}
|
||||
err = DBptr.SetEmail(req.Receiver, pack.Body.Hash, req.Data)
|
||||
err = DBptr.SetEmail(req.Recv, pack.Body.Hash, req.Data)
|
||||
if err != nil {
|
||||
response(w, 6, "error: save email")
|
||||
return
|
||||
@ -83,9 +84,8 @@ func emailSendPage(w http.ResponseWriter, r *http.Request) {
|
||||
func emailRecvPage(w http.ResponseWriter, r *http.Request) {
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
var req struct {
|
||||
User string `json:"user"`
|
||||
Recv string `json:"recv"`
|
||||
Mode string `json:"mode"`
|
||||
Numb int `json:"numb"`
|
||||
}
|
||||
if r.Method != "POST" {
|
||||
response(w, 1, "error: method != POST")
|
||||
@ -102,18 +102,23 @@ func emailRecvPage(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
switch req.Mode {
|
||||
case "size":
|
||||
response(w, 0, fmt.Sprintf("%d", DBptr.Size(req.User)))
|
||||
response(w, 0, fmt.Sprintf("%d", DBptr.Size(req.Recv)))
|
||||
return
|
||||
case "email":
|
||||
res := DBptr.GetEmail(req.Numb, req.User)
|
||||
default:
|
||||
num, err := strconv.Atoi(req.Mode)
|
||||
if err != nil {
|
||||
response(w, 4, "error: parse int")
|
||||
return
|
||||
}
|
||||
res := DBptr.GetEmail(num, req.Recv)
|
||||
if res == "" {
|
||||
response(w, 4, "error: nothing data")
|
||||
return
|
||||
response(w, 5, "error: nothing data")
|
||||
return
|
||||
}
|
||||
response(w, 0, res)
|
||||
return
|
||||
return
|
||||
}
|
||||
response(w, 5, "error: mode undefined")
|
||||
response(w, 6, "error: mode undefined")
|
||||
}
|
||||
|
||||
func response(w http.ResponseWriter, ret int, res string) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user