Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ai3
accountserver
Commits
02a427d8
Commit
02a427d8
authored
Oct 29, 2018
by
ale
Browse files
Update go-common and other dependencies
parent
53ad2d31
Changes
142
Hide whitespace changes
Inline
Side-by-side
vendor/git.autistici.org/ai3/go-common/userenckey/container.go
View file @
02a427d8
...
...
@@ -7,7 +7,7 @@ import (
"io"
"github.com/lunixbochs/struc"
"github.com/miscreant/miscreant
/
go"
"github.com/miscreant/miscreant
-
go"
"golang.org/x/crypto/argon2"
)
...
...
vendor/git.autistici.org/id/go-sso/report.xml
0 → 100644
View file @
02a427d8
<?xml version="1.0" encoding="UTF-8"?>
<testsuites>
<testsuite
tests=
"2"
failures=
"0"
time=
"0.000"
name=
"git.autistici.org/id/go-sso"
>
<properties>
<property
name=
"go.version"
value=
"go1.10.3"
></property>
</properties>
<testcase
classname=
"go-sso"
name=
"TestEd25519"
time=
"0.000"
></testcase>
<testcase
classname=
"go-sso"
name=
"TestLegacy"
time=
"0.000"
></testcase>
</testsuite>
<testsuite
tests=
"1"
failures=
"0"
time=
"0.000"
name=
"git.autistici.org/id/go-sso/cmd/sso-server"
>
<properties>
<property
name=
"go.version"
value=
"go1.10.3"
></property>
</properties>
<testcase
classname=
"sso-server"
name=
"TestMain_LoadConfig"
time=
"0.000"
></testcase>
</testsuite>
<testsuite
tests=
"1"
failures=
"0"
time=
"0.000"
name=
"git.autistici.org/id/go-sso/httpsso"
>
<properties>
<property
name=
"go.version"
value=
"go1.10.3"
></property>
</properties>
<testcase
classname=
"httpsso"
name=
"TestSSOWrapper"
time=
"0.010"
></testcase>
</testsuite>
<testsuite
tests=
"1"
failures=
"0"
time=
"0.000"
name=
"git.autistici.org/id/go-sso/httputil"
>
<properties>
<property
name=
"go.version"
value=
"go1.10.3"
></property>
</properties>
<testcase
classname=
"httputil"
name=
"TestExpiringSession"
time=
"0.000"
></testcase>
</testsuite>
<testsuite
tests=
"1"
failures=
"0"
time=
"0.000"
name=
"git.autistici.org/id/go-sso/proxy"
>
<properties>
<property
name=
"go.version"
value=
"go1.10.3"
></property>
</properties>
<testcase
classname=
"proxy"
name=
"TestProxy"
time=
"0.010"
></testcase>
</testsuite>
<testsuite
tests=
"6"
failures=
"0"
time=
"0.000"
name=
"git.autistici.org/id/go-sso/server"
>
<properties>
<property
name=
"go.version"
value=
"go1.10.3"
></property>
</properties>
<testcase
classname=
"server"
name=
"TestHTTP_ServeStaticAsset"
time=
"0.010"
></testcase>
<testcase
classname=
"server"
name=
"TestHTTP_Login"
time=
"0.000"
></testcase>
<testcase
classname=
"server"
name=
"TestHTTP_LoginOTP"
time=
"0.000"
></testcase>
<testcase
classname=
"server"
name=
"TestHTTP_LoginWithKeyStore"
time=
"0.010"
></testcase>
<testcase
classname=
"server"
name=
"TestLoginService_Ok"
time=
"0.000"
></testcase>
<testcase
classname=
"server"
name=
"TestLoginService_SanityChecks"
time=
"0.000"
></testcase>
</testsuite>
</testsuites>
vendor/github.com/beorn7/perks/quantile/stream.go
View file @
02a427d8
...
...
@@ -77,15 +77,20 @@ func NewHighBiased(epsilon float64) *Stream {
// is guaranteed to be within (Quantile±Epsilon).
//
// See http://www.cs.rutgers.edu/~muthu/bquant.pdf for time, space, and error properties.
func
NewTargeted
(
targets
map
[
float64
]
float64
)
*
Stream
{
func
NewTargeted
(
targetMap
map
[
float64
]
float64
)
*
Stream
{
// Convert map to slice to avoid slow iterations on a map.
// ƒ is called on the hot path, so converting the map to a slice
// beforehand results in significant CPU savings.
targets
:=
targetMapToSlice
(
targetMap
)
ƒ
:=
func
(
s
*
stream
,
r
float64
)
float64
{
var
m
=
math
.
MaxFloat64
var
f
float64
for
quantile
,
epsilon
:=
range
targets
{
if
quantile
*
s
.
n
<=
r
{
f
=
(
2
*
epsilon
*
r
)
/
quantile
for
_
,
t
:=
range
targets
{
if
t
.
quantile
*
s
.
n
<=
r
{
f
=
(
2
*
t
.
epsilon
*
r
)
/
t
.
quantile
}
else
{
f
=
(
2
*
epsilon
*
(
s
.
n
-
r
))
/
(
1
-
quantile
)
f
=
(
2
*
t
.
epsilon
*
(
s
.
n
-
r
))
/
(
1
-
t
.
quantile
)
}
if
f
<
m
{
m
=
f
...
...
@@ -96,6 +101,25 @@ func NewTargeted(targets map[float64]float64) *Stream {
return
newStream
(
ƒ
)
}
type
target
struct
{
quantile
float64
epsilon
float64
}
func
targetMapToSlice
(
targetMap
map
[
float64
]
float64
)
[]
target
{
targets
:=
make
([]
target
,
0
,
len
(
targetMap
))
for
quantile
,
epsilon
:=
range
targetMap
{
t
:=
target
{
quantile
:
quantile
,
epsilon
:
epsilon
,
}
targets
=
append
(
targets
,
t
)
}
return
targets
}
// Stream computes quantiles for a stream of float64s. It is not thread-safe by
// design. Take care when using across multiple goroutines.
type
Stream
struct
{
...
...
vendor/github.com/coreos/go-systemd/NOTICE
0 → 100644
View file @
02a427d8
CoreOS Project
Copyright 2018 CoreOS, Inc
This product includes software developed at CoreOS, Inc.
(http://www.coreos.com/).
vendor/github.com/coreos/go-systemd/daemon/sdnotify.go
View file @
02a427d8
// Copyright 2014 Docker, Inc.
// Copyright 2015-2018 CoreOS, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
...
...
@@ -13,7 +14,11 @@
// limitations under the License.
//
// Code forked from Docker project
// Package daemon provides a Go implementation of the sd_notify protocol.
// It can be used to inform systemd of service start-up completion, watchdog
// events, and other status changes.
//
// https://www.freedesktop.org/software/systemd/man/sd_notify.html#Description
package
daemon
import
(
...
...
@@ -21,6 +26,25 @@ import (
"os"
)
const
(
// SdNotifyReady tells the service manager that service startup is finished
// or the service finished loading its configuration.
SdNotifyReady
=
"READY=1"
// SdNotifyStopping tells the service manager that the service is beginning
// its shutdown.
SdNotifyStopping
=
"STOPPING=1"
// SdNotifyReloading tells the service manager that this service is
// reloading its configuration. Note that you must call SdNotifyReady when
// it completed reloading.
SdNotifyReloading
=
"RELOADING=1"
// SdNotifyWatchdog tells the service manager to update the watchdog
// timestamp for the service.
SdNotifyWatchdog
=
"WATCHDOG=1"
)
// SdNotify sends a message to the init daemon. It is common to ignore the error.
// If `unsetEnvironment` is true, the environment variable `NOTIFY_SOCKET`
// will be unconditionally unset.
...
...
@@ -29,7 +53,7 @@ import (
// (false, nil) - notification not supported (i.e. NOTIFY_SOCKET is unset)
// (false, err) - notification supported, but failure happened (e.g. error connecting to NOTIFY_SOCKET or while sending data)
// (true, nil) - notification supported, data has been sent
func
SdNotify
(
unsetEnvironment
bool
,
state
string
)
(
sent
bool
,
err
error
)
{
func
SdNotify
(
unsetEnvironment
bool
,
state
string
)
(
bool
,
error
)
{
socketAddr
:=
&
net
.
UnixAddr
{
Name
:
os
.
Getenv
(
"NOTIFY_SOCKET"
),
Net
:
"unixgram"
,
...
...
@@ -41,10 +65,9 @@ func SdNotify(unsetEnvironment bool, state string) (sent bool, err error) {
}
if
unsetEnvironment
{
err
=
os
.
Unsetenv
(
"NOTIFY_SOCKET"
)
}
if
err
!=
nil
{
return
false
,
err
if
err
:=
os
.
Unsetenv
(
"NOTIFY_SOCKET"
);
err
!=
nil
{
return
false
,
err
}
}
conn
,
err
:=
net
.
DialUnix
(
socketAddr
.
Net
,
nil
,
socketAddr
)
...
...
@@ -54,9 +77,7 @@ func SdNotify(unsetEnvironment bool, state string) (sent bool, err error) {
}
defer
conn
.
Close
()
_
,
err
=
conn
.
Write
([]
byte
(
state
))
// Error sending the message
if
err
!=
nil
{
if
_
,
err
=
conn
.
Write
([]
byte
(
state
));
err
!=
nil
{
return
false
,
err
}
return
true
,
nil
...
...
vendor/github.com/coreos/go-systemd/daemon/watchdog.go
View file @
02a427d8
...
...
@@ -21,10 +21,11 @@ import (
"time"
)
// SdWatchdogEnabled return watchdog information for a service.
// Process should send daemon.SdNotify("WATCHDOG=1") every time / 2.
// If `unsetEnvironment` is true, the environment variables `WATCHDOG_USEC`
// and `WATCHDOG_PID` will be unconditionally unset.
// SdWatchdogEnabled returns watchdog information for a service.
// Processes should call daemon.SdNotify(false, daemon.SdNotifyWatchdog) every
// time / 2.
// If `unsetEnvironment` is true, the environment variables `WATCHDOG_USEC` and
// `WATCHDOG_PID` will be unconditionally unset.
//
// It returns one of the following:
// (0, nil) - watchdog isn't enabled or we aren't the watched PID.
...
...
vendor/github.com/gogo/protobuf/LICENSE
0 → 100644
View file @
02a427d8
Copyright (c) 2013, The GoGo Authors. All rights reserved.
Protocol Buffers for Go with Gadgets
Go support for Protocol Buffers - Google's data interchange format
Copyright 2010 The Go Authors. All rights reserved.
https://github.com/golang/protobuf
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
vendor/github.com/go
lan
g/protobuf/proto/Makefile
→
vendor/github.com/gog
o
/protobuf/proto/Makefile
View file @
02a427d8
...
...
@@ -38,6 +38,6 @@ test: install generate-test-pbs
generate-test-pbs
:
make
install
make
-C
test
data
protoc
--go_out
=
Mtestdata/test.proto
=
github.com/golang/protobuf/proto/testdata,Mgoogle/protobuf/any.proto
=
github.com/golang/protobuf/ptypes/any:. proto3_proto/proto3.
proto
make
-C
test
_proto
make
-C
proto3_
proto
make
vendor/github.com/gogo/protobuf/proto/clone.go
0 → 100644
View file @
02a427d8
// Go support for Protocol Buffers - Google's data interchange format
//
// Copyright 2011 The Go Authors. All rights reserved.
// https://github.com/golang/protobuf
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Protocol buffer deep copy and merge.
// TODO: RawMessage.
package
proto
import
(
"fmt"
"log"
"reflect"
"strings"
)
// Clone returns a deep copy of a protocol buffer.
func
Clone
(
src
Message
)
Message
{
in
:=
reflect
.
ValueOf
(
src
)
if
in
.
IsNil
()
{
return
src
}
out
:=
reflect
.
New
(
in
.
Type
()
.
Elem
())
dst
:=
out
.
Interface
()
.
(
Message
)
Merge
(
dst
,
src
)
return
dst
}
// Merger is the interface representing objects that can merge messages of the same type.
type
Merger
interface
{
// Merge merges src into this message.
// Required and optional fields that are set in src will be set to that value in dst.
// Elements of repeated fields will be appended.
//
// Merge may panic if called with a different argument type than the receiver.
Merge
(
src
Message
)
}
// generatedMerger is the custom merge method that generated protos will have.
// We must add this method since a generate Merge method will conflict with
// many existing protos that have a Merge data field already defined.
type
generatedMerger
interface
{
XXX_Merge
(
src
Message
)
}
// Merge merges src into dst.
// Required and optional fields that are set in src will be set to that value in dst.
// Elements of repeated fields will be appended.
// Merge panics if src and dst are not the same type, or if dst is nil.
func
Merge
(
dst
,
src
Message
)
{
if
m
,
ok
:=
dst
.
(
Merger
);
ok
{
m
.
Merge
(
src
)
return
}
in
:=
reflect
.
ValueOf
(
src
)
out
:=
reflect
.
ValueOf
(
dst
)
if
out
.
IsNil
()
{
panic
(
"proto: nil destination"
)
}
if
in
.
Type
()
!=
out
.
Type
()
{
panic
(
fmt
.
Sprintf
(
"proto.Merge(%T, %T) type mismatch"
,
dst
,
src
))
}
if
in
.
IsNil
()
{
return
// Merge from nil src is a noop
}
if
m
,
ok
:=
dst
.
(
generatedMerger
);
ok
{
m
.
XXX_Merge
(
src
)
return
}
mergeStruct
(
out
.
Elem
(),
in
.
Elem
())
}
func
mergeStruct
(
out
,
in
reflect
.
Value
)
{
sprop
:=
GetProperties
(
in
.
Type
())
for
i
:=
0
;
i
<
in
.
NumField
();
i
++
{
f
:=
in
.
Type
()
.
Field
(
i
)
if
strings
.
HasPrefix
(
f
.
Name
,
"XXX_"
)
{
continue
}
mergeAny
(
out
.
Field
(
i
),
in
.
Field
(
i
),
false
,
sprop
.
Prop
[
i
])
}
if
emIn
,
ok
:=
in
.
Addr
()
.
Interface
()
.
(
extensionsBytes
);
ok
{
emOut
:=
out
.
Addr
()
.
Interface
()
.
(
extensionsBytes
)
bIn
:=
emIn
.
GetExtensions
()
bOut
:=
emOut
.
GetExtensions
()
*
bOut
=
append
(
*
bOut
,
*
bIn
...
)
}
else
if
emIn
,
err
:=
extendable
(
in
.
Addr
()
.
Interface
());
err
==
nil
{
emOut
,
_
:=
extendable
(
out
.
Addr
()
.
Interface
())
mIn
,
muIn
:=
emIn
.
extensionsRead
()
if
mIn
!=
nil
{
mOut
:=
emOut
.
extensionsWrite
()
muIn
.
Lock
()
mergeExtension
(
mOut
,
mIn
)
muIn
.
Unlock
()
}
}
uf
:=
in
.
FieldByName
(
"XXX_unrecognized"
)
if
!
uf
.
IsValid
()
{
return
}
uin
:=
uf
.
Bytes
()
if
len
(
uin
)
>
0
{
out
.
FieldByName
(
"XXX_unrecognized"
)
.
SetBytes
(
append
([]
byte
(
nil
),
uin
...
))
}
}
// mergeAny performs a merge between two values of the same type.
// viaPtr indicates whether the values were indirected through a pointer (implying proto2).
// prop is set if this is a struct field (it may be nil).
func
mergeAny
(
out
,
in
reflect
.
Value
,
viaPtr
bool
,
prop
*
Properties
)
{
if
in
.
Type
()
==
protoMessageType
{
if
!
in
.
IsNil
()
{
if
out
.
IsNil
()
{
out
.
Set
(
reflect
.
ValueOf
(
Clone
(
in
.
Interface
()
.
(
Message
))))
}
else
{
Merge
(
out
.
Interface
()
.
(
Message
),
in
.
Interface
()
.
(
Message
))
}
}
return
}
switch
in
.
Kind
()
{
case
reflect
.
Bool
,
reflect
.
Float32
,
reflect
.
Float64
,
reflect
.
Int32
,
reflect
.
Int64
,
reflect
.
String
,
reflect
.
Uint32
,
reflect
.
Uint64
:
if
!
viaPtr
&&
isProto3Zero
(
in
)
{
return
}
out
.
Set
(
in
)
case
reflect
.
Interface
:
// Probably a oneof field; copy non-nil values.
if
in
.
IsNil
()
{
return
}
// Allocate destination if it is not set, or set to a different type.
// Otherwise we will merge as normal.
if
out
.
IsNil
()
||
out
.
Elem
()
.
Type
()
!=
in
.
Elem
()
.
Type
()
{
out
.
Set
(
reflect
.
New
(
in
.
Elem
()
.
Elem
()
.
Type
()))
// interface -> *T -> T -> new(T)
}
mergeAny
(
out
.
Elem
(),
in
.
Elem
(),
false
,
nil
)
case
reflect
.
Map
:
if
in
.
Len
()
==
0
{
return
}
if
out
.
IsNil
()
{
out
.
Set
(
reflect
.
MakeMap
(
in
.
Type
()))
}
// For maps with value types of *T or []byte we need to deep copy each value.
elemKind
:=
in
.
Type
()
.
Elem
()
.
Kind
()
for
_
,
key
:=
range
in
.
MapKeys
()
{
var
val
reflect
.
Value
switch
elemKind
{
case
reflect
.
Ptr
:
val
=
reflect
.
New
(
in
.
Type
()
.
Elem
()
.
Elem
())
mergeAny
(
val
,
in
.
MapIndex
(
key
),
false
,
nil
)
case
reflect
.
Slice
:
val
=
in
.
MapIndex
(
key
)
val
=
reflect
.
ValueOf
(
append
([]
byte
{},
val
.
Bytes
()
...
))
default
:
val
=
in
.
MapIndex
(
key
)
}
out
.
SetMapIndex
(
key
,
val
)
}
case
reflect
.
Ptr
:
if
in
.
IsNil
()
{
return
}
if
out
.
IsNil
()
{
out
.
Set
(
reflect
.
New
(
in
.
Elem
()
.
Type
()))
}
mergeAny
(
out
.
Elem
(),
in
.
Elem
(),
true
,
nil
)
case
reflect
.
Slice
:
if
in
.
IsNil
()
{
return
}
if
in
.
Type
()
.
Elem
()
.
Kind
()
==
reflect
.
Uint8
{
// []byte is a scalar bytes field, not a repeated field.
// Edge case: if this is in a proto3 message, a zero length
// bytes field is considered the zero value, and should not
// be merged.
if
prop
!=
nil
&&
prop
.
proto3
&&
in
.
Len
()
==
0
{
return
}
// Make a deep copy.
// Append to []byte{} instead of []byte(nil) so that we never end up
// with a nil result.
out
.
SetBytes
(
append
([]
byte
{},
in
.
Bytes
()
...
))
return
}
n
:=
in
.
Len
()
if
out
.
IsNil
()
{
out
.
Set
(
reflect
.
MakeSlice
(
in
.
Type
(),
0
,
n
))
}
switch
in
.
Type
()
.
Elem
()
.
Kind
()
{
case
reflect
.
Bool
,
reflect
.
Float32
,
reflect
.
Float64
,
reflect
.
Int32
,
reflect
.
Int64
,
reflect
.
String
,
reflect
.
Uint32
,
reflect
.
Uint64
:
out
.
Set
(
reflect
.
AppendSlice
(
out
,
in
))
default
:
for
i
:=
0
;
i
<
n
;
i
++
{
x
:=
reflect
.
Indirect
(
reflect
.
New
(
in
.
Type
()
.
Elem
()))
mergeAny
(
x
,
in
.
Index
(
i
),
false
,
nil
)
out
.
Set
(
reflect
.
Append
(
out
,
x
))
}
}
case
reflect
.
Struct
:
mergeStruct
(
out
,
in
)
default
:
// unknown type, so not a protocol buffer
log
.
Printf
(
"proto: don't know how to copy %v"
,
in
)
}
}
func
mergeExtension
(
out
,
in
map
[
int32
]
Extension
)
{
for
extNum
,
eIn
:=
range
in
{
eOut
:=
Extension
{
desc
:
eIn
.
desc
}
if
eIn
.
value
!=
nil
{
v
:=
reflect
.
New
(
reflect
.
TypeOf
(
eIn
.
value
))
.
Elem
()
mergeAny
(
v
,
reflect
.
ValueOf
(
eIn
.
value
),
false
,
nil
)
eOut
.
value
=
v
.
Interface
()
}
if
eIn
.
enc
!=
nil
{
eOut
.
enc
=
make
([]
byte
,
len
(
eIn
.
enc
))
copy
(
eOut
.
enc
,
eIn
.
enc
)
}
out
[
extNum
]
=
eOut
}
}
vendor/github.com/gogo/protobuf/proto/custom_gogo.go
0 → 100644
View file @
02a427d8
// Protocol Buffers for Go with Gadgets
//
// Copyright (c) 2018, The GoGo Authors. All rights reserved.
// http://github.com/gogo/protobuf
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package
proto
import
"reflect"
type
custom
interface
{
Marshal
()
([]
byte
,
error
)
Unmarshal
(
data
[]
byte
)
error
Size
()
int
}
var
customType
=
reflect
.
TypeOf
((
*
custom
)(
nil
))
.
Elem
()
vendor/github.com/gogo/protobuf/proto/decode.go
0 → 100644
View file @
02a427d8
// Go support for Protocol Buffers - Google's data interchange format
//
// Copyright 2010 The Go Authors. All rights reserved.
// https://github.com/golang/protobuf
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package
proto
/*
* Routines for decoding protocol buffer data to construct in-memory representations.
*/
import
(
"errors"
"fmt"
"io"
)
// errOverflow is returned when an integer is too large to be represented.
var
errOverflow
=
errors
.
New
(
"proto: integer overflow"
)