Major update - symmetric encryption, UDP hole punching, code cleanup.
Reviewed-on: #1
This commit was merged in pull request #1.
	This commit is contained in:
		| @@ -307,18 +307,17 @@ func Session_List( | ||||
| // ---------------------------------------------------------------------------- | ||||
|  | ||||
| type Peer struct { | ||||
| 	PeerIP     byte | ||||
| 	Version    int64 | ||||
| 	APIKey     string | ||||
| 	Name       string | ||||
| 	PublicIP   []byte | ||||
| 	Port       uint16 | ||||
| 	Mediator   bool | ||||
| 	EncPubKey  []byte | ||||
| 	SignPubKey []byte | ||||
| 	PeerIP   byte | ||||
| 	Version  int64 | ||||
| 	APIKey   string | ||||
| 	Name     string | ||||
| 	PublicIP []byte | ||||
| 	Port     uint16 | ||||
| 	Relay    bool | ||||
| 	PubKey   []byte | ||||
| } | ||||
|  | ||||
| const Peer_SelectQuery = "SELECT PeerIP,Version,APIKey,Name,PublicIP,Port,Mediator,EncPubKey,SignPubKey FROM peers" | ||||
| const Peer_SelectQuery = "SELECT PeerIP,Version,APIKey,Name,PublicIP,Port,Relay,PubKey FROM peers" | ||||
|  | ||||
| func Peer_Insert( | ||||
| 	tx TX, | ||||
| @@ -329,7 +328,7 @@ func Peer_Insert( | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	_, err = tx.Exec("INSERT INTO peers(PeerIP,Version,APIKey,Name,PublicIP,Port,Mediator,EncPubKey,SignPubKey) VALUES(?,?,?,?,?,?,?,?,?)", row.PeerIP, row.Version, row.APIKey, row.Name, row.PublicIP, row.Port, row.Mediator, row.EncPubKey, row.SignPubKey) | ||||
| 	_, err = tx.Exec("INSERT INTO peers(PeerIP,Version,APIKey,Name,PublicIP,Port,Relay,PubKey) VALUES(?,?,?,?,?,?,?,?)", row.PeerIP, row.Version, row.APIKey, row.Name, row.PublicIP, row.Port, row.Relay, row.PubKey) | ||||
| 	return err | ||||
| } | ||||
|  | ||||
| @@ -342,7 +341,7 @@ func Peer_Update( | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	result, err := tx.Exec("UPDATE peers SET Version=?,Name=?,PublicIP=?,Port=?,Mediator=? WHERE PeerIP=?", row.Version, row.Name, row.PublicIP, row.Port, row.Mediator, row.PeerIP) | ||||
| 	result, err := tx.Exec("UPDATE peers SET Version=?,Name=?,PublicIP=?,Port=?,Relay=? WHERE PeerIP=?", row.Version, row.Name, row.PublicIP, row.Port, row.Relay, row.PeerIP) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| @@ -370,7 +369,7 @@ func Peer_UpdateFull( | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	result, err := tx.Exec("UPDATE peers SET Version=?,APIKey=?,Name=?,PublicIP=?,Port=?,Mediator=?,EncPubKey=?,SignPubKey=? WHERE PeerIP=?", row.Version, row.APIKey, row.Name, row.PublicIP, row.Port, row.Mediator, row.EncPubKey, row.SignPubKey, row.PeerIP) | ||||
| 	result, err := tx.Exec("UPDATE peers SET Version=?,APIKey=?,Name=?,PublicIP=?,Port=?,Relay=?,PubKey=? WHERE PeerIP=?", row.Version, row.APIKey, row.Name, row.PublicIP, row.Port, row.Relay, row.PubKey, row.PeerIP) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| @@ -420,8 +419,8 @@ func Peer_Get( | ||||
| 	err error, | ||||
| ) { | ||||
| 	row = &Peer{} | ||||
| 	r := tx.QueryRow("SELECT PeerIP,Version,APIKey,Name,PublicIP,Port,Mediator,EncPubKey,SignPubKey FROM peers WHERE PeerIP=?", PeerIP) | ||||
| 	err = r.Scan(&row.PeerIP, &row.Version, &row.APIKey, &row.Name, &row.PublicIP, &row.Port, &row.Mediator, &row.EncPubKey, &row.SignPubKey) | ||||
| 	r := tx.QueryRow("SELECT PeerIP,Version,APIKey,Name,PublicIP,Port,Relay,PubKey FROM peers WHERE PeerIP=?", PeerIP) | ||||
| 	err = r.Scan(&row.PeerIP, &row.Version, &row.APIKey, &row.Name, &row.PublicIP, &row.Port, &row.Relay, &row.PubKey) | ||||
| 	return | ||||
| } | ||||
|  | ||||
| @@ -435,7 +434,7 @@ func Peer_GetWhere( | ||||
| ) { | ||||
| 	row = &Peer{} | ||||
| 	r := tx.QueryRow(query, args...) | ||||
| 	err = r.Scan(&row.PeerIP, &row.Version, &row.APIKey, &row.Name, &row.PublicIP, &row.Port, &row.Mediator, &row.EncPubKey, &row.SignPubKey) | ||||
| 	err = r.Scan(&row.PeerIP, &row.Version, &row.APIKey, &row.Name, &row.PublicIP, &row.Port, &row.Relay, &row.PubKey) | ||||
| 	return | ||||
| } | ||||
|  | ||||
| @@ -455,7 +454,7 @@ func Peer_Iterate( | ||||
| 		defer rows.Close() | ||||
| 		for rows.Next() { | ||||
| 			row := &Peer{} | ||||
| 			err := rows.Scan(&row.PeerIP, &row.Version, &row.APIKey, &row.Name, &row.PublicIP, &row.Port, &row.Mediator, &row.EncPubKey, &row.SignPubKey) | ||||
| 			err := rows.Scan(&row.PeerIP, &row.Version, &row.APIKey, &row.Name, &row.PublicIP, &row.Port, &row.Relay, &row.PubKey) | ||||
| 			if !yield(row, err) { | ||||
| 				return | ||||
| 			} | ||||
|   | ||||
| @@ -51,7 +51,7 @@ func Peer_Sanitize(p *Peer) { | ||||
| 		} | ||||
| 	} | ||||
| 	if p.Port == 0 { | ||||
| 		p.Port = 515 | ||||
| 		p.Port = 456 | ||||
| 	} | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -20,7 +20,6 @@ TABLE peers OF Peer ( | ||||
|   Name       string, | ||||
|   PublicIP   []byte, | ||||
|   Port       uint16, | ||||
|   Mediator   bool, | ||||
|   EncPubKey  []byte NoUpdate, | ||||
|   SignPubKey []byte NoUpdate | ||||
|   Relay      bool, | ||||
|   PubKey     []byte NoUpdate | ||||
| ); | ||||
|   | ||||
| @@ -1,12 +1,12 @@ | ||||
| package db | ||||
|  | ||||
| import "vppn/fasttime" | ||||
| import "time" | ||||
|  | ||||
| func Session_UpdateLastSeenAt( | ||||
| 	tx TX, | ||||
| 	id string, | ||||
| ) (err error) { | ||||
| 	_, err = tx.Exec("UPDATE sessions SET LastSeenAt=? WHERE SessionID=?", fasttime.Now(), id) | ||||
| 	_, err = tx.Exec("UPDATE sessions SET LastSeenAt=? WHERE SessionID=?", time.Now().Unix(), id) | ||||
| 	return err | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user