A working proxy exists.
This commit is contained in:
@@ -2,28 +2,31 @@ package ipp
|
||||
|
||||
import "encoding/binary"
|
||||
|
||||
type setOfStrings struct {
|
||||
// SetOfStrings is the strings attribute
|
||||
type SetOfStrings struct {
|
||||
name string
|
||||
values []string
|
||||
vTag tag
|
||||
}
|
||||
|
||||
func NewSetOfStrings(name string, t tag, values []string) *setOfStrings {
|
||||
s := new(setOfStrings)
|
||||
// NewSetOfStrings creates a new strings attribute
|
||||
func NewSetOfStrings(name string, t tag, values []string) *SetOfStrings {
|
||||
s := new(SetOfStrings)
|
||||
s.name = name
|
||||
s.vTag = t
|
||||
s.values = values //make([]string, 0)
|
||||
return s
|
||||
}
|
||||
|
||||
func (s setOfStrings) String() string {
|
||||
func (s SetOfStrings) String() string {
|
||||
r := s.name + " :"
|
||||
for _, v := range s.values {
|
||||
r = r + " " + v
|
||||
}
|
||||
return r
|
||||
}
|
||||
func (s *setOfStrings) valueTag() tag {
|
||||
|
||||
func (s *SetOfStrings) valueTag() tag {
|
||||
return s.vTag
|
||||
}
|
||||
|
||||
@@ -39,7 +42,7 @@ func (s *setOfStrings) valueTag() tag {
|
||||
// }
|
||||
// }
|
||||
|
||||
func (s *setOfStrings) marshal() []byte {
|
||||
func (s *SetOfStrings) marshal() []byte {
|
||||
l := 5 + len(s.name) + len(s.values[0])
|
||||
for i := range s.values[1:] {
|
||||
l += 5 + len(s.values[i+1])
|
||||
@@ -47,7 +50,7 @@ func (s *setOfStrings) marshal() []byte {
|
||||
res := make([]byte, l)
|
||||
p := 0
|
||||
res[p] = byte(s.vTag)
|
||||
p += 1
|
||||
p++
|
||||
binary.BigEndian.PutUint16(res[p:p+2], uint16(len(s.name)))
|
||||
p += 2
|
||||
copy(res[p:], []byte(s.name))
|
||||
@@ -58,7 +61,7 @@ func (s *setOfStrings) marshal() []byte {
|
||||
p += len(s.values[0])
|
||||
for i := range s.values[1:] {
|
||||
res[p] = byte(s.vTag)
|
||||
p += 1
|
||||
p++
|
||||
binary.BigEndian.PutUint16(res[p:p+2], uint16(0))
|
||||
p = p + 2
|
||||
binary.BigEndian.PutUint16(res[p:p+2], uint16(len(s.values[i+1])))
|
||||
@@ -70,11 +73,12 @@ func (s *setOfStrings) marshal() []byte {
|
||||
return res
|
||||
}
|
||||
|
||||
func (s *setOfStrings) AddValue(v string) {
|
||||
// AddValue adds a new sring to the set
|
||||
func (s *SetOfStrings) AddValue(v string) {
|
||||
s.values = append(s.values, v)
|
||||
}
|
||||
|
||||
func (s *setOfStrings) size() int {
|
||||
func (s *SetOfStrings) size() int {
|
||||
l := 1 + 2 // The value tag (0x44) + name-length field (2 bytes)
|
||||
l += len(s.name)
|
||||
l += 2 // value-length field (2 bytes)
|
||||
|
||||
Reference in New Issue
Block a user