blob: e4c4b9707155cf05a246bcd416d26e7175f96354 [file] [log] [blame]
Jens Geyer0e87c462013-06-18 22:25:07 +02001package main
2
3/*
4 * Licensed to the Apache Software Foundation (ASF) under one
5 * or more contributor license agreements. See the NOTICE file
6 * distributed with this work for additional information
7 * regarding copyright ownership. The ASF licenses this file
8 * to you under the Apache License, Version 2.0 (the
9 * "License"); you may not use this file except in compliance
10 * with the License. You may obtain a copy of the License at
11 *
12 * http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing,
15 * software distributed under the License is distributed on an
16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17 * KIND, either express or implied. See the License for the
18 * specific language governing permissions and limitations
19 * under the License.
20 */
21
22import (
Jens Geyer38b1a042014-02-04 23:56:39 +010023 "crypto/tls"
Jens Geyer0e87c462013-06-18 22:25:07 +020024 "fmt"
25 "git.apache.org/thrift.git/lib/go/thrift"
26 "tutorial"
27)
28
Jens Geyer4c835952013-08-13 21:34:17 +020029func runServer(transportFactory thrift.TTransportFactory, protocolFactory thrift.TProtocolFactory, addr string, secure bool) error {
30 var transport thrift.TServerTransport
31 var err error
32 if secure {
33 cfg := new(tls.Config)
34 if cert, err := tls.LoadX509KeyPair("server.crt", "server.key"); err == nil {
35 cfg.Certificates = append(cfg.Certificates, cert)
Jens Geyer1bb0ed82013-08-13 22:31:53 +020036 } else {
Jens Geyer4c835952013-08-13 21:34:17 +020037 return err
38 }
39 transport, err = thrift.NewTSSLServerSocket(addr, cfg)
40 } else {
41 transport, err = thrift.NewTServerSocket(addr)
42 }
43
Jens Geyer0e87c462013-06-18 22:25:07 +020044 if err != nil {
45 return err
46 }
Jens Geyer4c835952013-08-13 21:34:17 +020047 fmt.Printf("%T\n", transport)
Jens Geyer0e87c462013-06-18 22:25:07 +020048 handler := NewCalculatorHandler()
49 processor := tutorial.NewCalculatorProcessor(handler)
50 server := thrift.NewTSimpleServer4(processor, transport, transportFactory, protocolFactory)
51
Jens Geyer4c835952013-08-13 21:34:17 +020052 fmt.Println("Starting the simple server... on ", addr)
Jens Geyer0e87c462013-06-18 22:25:07 +020053 return server.Serve()
54}