summaryrefslogtreecommitdiff
path: root/src/helsinki.at/rhimportd
diff options
context:
space:
mode:
authorChristian Pointner <equinox@helsinki.at>2015-12-30 21:42:59 (GMT)
committerChristian Pointner <equinox@helsinki.at>2015-12-30 21:42:59 (GMT)
commitb48b8d760021bd7a887a24c4bbd239f90c2c2f22 (patch)
tree27c20e906a1dd83734dbdb854fb8863aa0f622c7 /src/helsinki.at/rhimportd
parenta37f02747e587b25d45de98d175427d4ccb5cdf7 (diff)
web socket handler is now completed
Diffstat (limited to 'src/helsinki.at/rhimportd')
-rw-r--r--src/helsinki.at/rhimportd/ctrlWebSocket.go14
-rw-r--r--src/helsinki.at/rhimportd/main.go98
2 files changed, 8 insertions, 104 deletions
diff --git a/src/helsinki.at/rhimportd/ctrlWebSocket.go b/src/helsinki.at/rhimportd/ctrlWebSocket.go
index da2978e..4c1bf45 100644
--- a/src/helsinki.at/rhimportd/ctrlWebSocket.go
+++ b/src/helsinki.at/rhimportd/ctrlWebSocket.go
@@ -192,10 +192,10 @@ func webSocketDone(res rhimport.ImportResult, userdata interface{}) bool {
return true
}
-func (self *webSocketSession) startNewSession(reqdata *webSocketRequestData, conf *rhimport.Config, rddb *rhimport.RdDbChan, sessions *rhimport.SessionStoreChan) (int, string) {
- ctx := rhimport.NewImportContext(conf, rddb, reqdata.UserName)
+func (self *webSocketSession) startNewSession(reqdata *webSocketRequestData, conf *rhimport.Config, sessions *rhimport.SessionStoreChan) (int, string) {
+ ctx := rhimport.NewImportContext(conf, nil, reqdata.UserName)
ctx.Password = reqdata.Password
- ctx.Trusted = true // TODO: set this to false as soon as the interface is working
+ ctx.Trusted = false
ctx.ShowId = reqdata.ShowId
ctx.ClearShowCarts = reqdata.ClearShowCarts
ctx.GroupName = reqdata.MusicPoolGroup
@@ -243,7 +243,7 @@ func (self *webSocketSession) reconnectSession(reqdata *webSocketRequestData, se
return http.StatusOK, "SUCCESS"
}
-func webSocketSessionHandler(reqchan <-chan webSocketRequestData, ws *websocket.Conn, conf *rhimport.Config, rddb *rhimport.RdDbChan, sessions *rhimport.SessionStoreChan) {
+func webSocketSessionHandler(reqchan <-chan webSocketRequestData, ws *websocket.Conn, conf *rhimport.Config, sessions *rhimport.SessionStoreChan) {
defer ws.Close()
session := newWebSocketSession()
@@ -258,7 +258,7 @@ func webSocketSessionHandler(reqchan <-chan webSocketRequestData, ws *websocket.
if session.id != "" {
sendWebSocketErrorResponse(ws, http.StatusBadRequest, "This connection already handles a session")
} else {
- code, errstring := session.startNewSession(&reqdata, conf, rddb, sessions)
+ code, errstring := session.startNewSession(&reqdata, conf, sessions)
if code != http.StatusOK {
sendWebSocketErrorResponse(ws, code, errstring)
} else {
@@ -283,7 +283,7 @@ func webSocketSessionHandler(reqchan <-chan webSocketRequestData, ws *websocket.
}
}
case "list":
- list, code, errstring := sessions.List(reqdata.UserName, reqdata.Password, true) // TODO: set this to false as soon as the interface is working
+ list, code, errstring := sessions.List(reqdata.UserName, reqdata.Password, false)
if code != http.StatusOK {
sendWebSocketErrorResponse(ws, code, errstring)
} else {
@@ -314,7 +314,7 @@ func webSocketHandler(conf *rhimport.Config, rddb *rhimport.RdDbChan, sessions *
}
rhdl.Println("WebSocket Client", ws.RemoteAddr(), "connected")
reqchan := make(chan webSocketRequestData)
- go webSocketSessionHandler(reqchan, ws, conf, rddb, sessions)
+ go webSocketSessionHandler(reqchan, ws, conf, sessions)
defer close(reqchan)
for {
diff --git a/src/helsinki.at/rhimportd/main.go b/src/helsinki.at/rhimportd/main.go
index 87fa3ab..21c1246 100644
--- a/src/helsinki.at/rhimportd/main.go
+++ b/src/helsinki.at/rhimportd/main.go
@@ -26,14 +26,11 @@ package main
import (
"flag"
- // "fmt"
"helsinki.at/rhimport"
"log"
- // "net/http"
"os"
"os/signal"
"sync"
- // "time"
// "io/ioutil"
)
@@ -43,99 +40,6 @@ var (
//rhdl = log.New(ioutil.Discard, "[rhimportd-dbg]\t", log.LstdFlags)
)
-// func session_test_progress1(step int, step_name string, progress float64, userdata interface{}) bool {
-// out := userdata.(chan<- string)
-// select {
-// case out <- fmt.Sprintf("CB1 %d, %s: %3.2f%%", step, step_name, progress*100):
-// default:
-// }
-// if step > 1 {
-// return false
-// }
-// return true
-// }
-
-// func session_test_progress2(step int, step_name string, progress float64, userdata interface{}) bool {
-// out := userdata.(chan<- string)
-// select {
-// case out <- fmt.Sprintf("CB2 %d, %s: %3.2f%%", step, step_name, progress*100):
-// default:
-// }
-// return true
-// }
-
-// func session_test_done(res rhimport.ImportResult, userdata interface{}) bool {
-// done := userdata.(chan<- rhimport.ImportResult)
-// done <- res
-// return true
-// }
-
-// func session_test(conf *rhimport.Config, rddb *rhimport.RdDbChan) {
-// sessions, err := rhimport.NewSessionStore(conf)
-// if err != nil {
-// rhl.Println("Error initializing Session Store:", err)
-// return
-// }
-// defer sessions.Cleanup()
-
-// store := sessions.GetInterface()
-
-// ctx := rhimport.NewImportContext(conf, rddb, "heslinki")
-// ctx.Trusted = true
-// ctx.ShowId = 10002
-// ctx.ClearShowCarts = true
-// ctx.SourceUri = "http://www.tonycuffe.com/mp3/tail%20toddle.mp3"
-
-// id, _, code, errstring := store.New(ctx)
-// if code != http.StatusOK {
-// rhl.Printf("MAIN: Error SessionStore.New(): %s", errstring)
-// return
-// }
-
-// var session *rhimport.SessionChan
-// if session, code, errstring = store.Get(ctx.UserName, id); code != http.StatusOK {
-// rhl.Printf("MAIN: Error SessionStore.Get(): %s", errstring)
-// return
-// }
-
-// dch := make(chan rhimport.ImportResult, 1)
-// if err = session.AddDoneHandler((chan<- rhimport.ImportResult)(dch), session_test_done); err != nil {
-// rhl.Printf("MAIN: Error Session.AddDoneHandler(): %s", err)
-// return
-// }
-
-// pch := make(chan string, 10)
-// if err = session.AddProgressHandler((chan<- string)(pch), session_test_progress1); err != nil {
-// rhl.Printf("MAIN: Error Session.AddProgressHandler(): %s", err)
-// }
-// go func() {
-// time.Sleep(3 * time.Second)
-// if err = session.AddProgressHandler((chan<- string)(pch), session_test_progress2); err != nil {
-// rhl.Printf("MAIN: Error Session.AddProgressHandler(): %s", err)
-// }
-// }()
-
-// rhl.Printf("MAIN: calling run for %s/%s", ctx.UserName, id)
-// session.Run(30 * time.Second)
-
-// for {
-// select {
-// case p := <-pch:
-// fmt.Println(p)
-// case r := <-dch:
-// fmt.Printf("Import finished: %+v\n", r)
-// break
-// }
-// }
-
-// rhl.Printf("MAIN: calling remove for %s/%s", ctx.UserName, id)
-// if code, errstring = store.Remove(ctx.UserName, id); code != http.StatusOK {
-// rhl.Printf("MAIN: Error SessionStore.Remove(): %s", errstring)
-// }
-
-// rhl.Printf("MAIN: remove done")
-// }
-
func main() {
web_addr_s := flag.String("web-addr", ":4080", "addr:port to listen on")
telnet_addr_s := flag.String("telnet-addr", ":4023", "addr:port to listen on")
@@ -164,7 +68,7 @@ func main() {
}
defer rddb.Cleanup()
- sessions, err := rhimport.NewSessionStore(conf)
+ sessions, err := rhimport.NewSessionStore(conf, rddb.GetInterface())
if err != nil {
rhl.Println("Error initializing Session Store:", err)
return