@@ -39,24 +39,11 @@ import (
3939 "sync/atomic"
4040 "time"
4141
42+ "github.com/gocql/gocql/internal"
4243 "github.com/gocql/gocql/internal/lru"
4344 "github.com/gocql/gocql/internal/streams"
4445)
4546
46- // approve the authenticator with the list of allowed authenticators. If the provided list is empty,
47- // the given authenticator is allowed.
48- func approve (authenticator string , approvedAuthenticators []string ) bool {
49- if len (approvedAuthenticators ) == 0 {
50- return true
51- }
52- for _ , s := range approvedAuthenticators {
53- if authenticator == s {
54- return true
55- }
56- }
57- return false
58- }
59-
6047// JoinHostPort is a utility to return an address string that can be used
6148// by `gocql.Conn` to form a connection with a host.
6249func JoinHostPort (addr string , port int ) string {
@@ -85,7 +72,7 @@ type PasswordAuthenticator struct {
8572}
8673
8774func (p PasswordAuthenticator ) Challenge (req []byte ) ([]byte , Authenticator , error ) {
88- if ! approve (string (req ), p .AllowedAuthenticators ) {
75+ if ! internal . Approve (string (req ), p .AllowedAuthenticators ) {
8976 return nil , nil , fmt .Errorf ("unexpected authenticator %q" , req )
9077 }
9178 resp := make ([]byte , 2 + len (p .Username )+ len (p .Password ))
@@ -188,7 +175,7 @@ type Conn struct {
188175 frameObserver FrameHeaderObserver
189176 streamObserver StreamObserver
190177
191- headerBuf [maxFrameHeaderSize ]byte
178+ headerBuf [internal . MaxFrameHeaderSize ]byte
192179
193180 streams * streams.IDGenerator
194181 mu sync.Mutex
@@ -406,7 +393,7 @@ func (s *startupCoordinator) setupConn(ctx context.Context) error {
406393 return nil
407394}
408395
409- func (s * startupCoordinator ) write (ctx context.Context , frame frameBuilder ) (frame , error ) {
396+ func (s * startupCoordinator ) write (ctx context.Context , frame frameBuilder ) (internal. Frame , error ) {
410397 select {
411398 case s .frameTicker <- struct {}{}:
412399 case <- ctx .Done ():
@@ -585,23 +572,23 @@ func (c *Conn) serve(ctx context.Context) {
585572 c .closeWithError (err )
586573}
587574
588- func (c * Conn ) discardFrame (head frameHeader ) error {
589- _ , err := io .CopyN (ioutil .Discard , c , int64 (head .length ))
575+ func (c * Conn ) discardFrame (head internal. FrameHeader ) error {
576+ _ , err := io .CopyN (ioutil .Discard , c , int64 (head .Length ))
590577 if err != nil {
591578 return err
592579 }
593580 return nil
594581}
595582
596583type protocolError struct {
597- frame frame
584+ frame internal. Frame
598585}
599586
600587func (p * protocolError ) Error () string {
601588 if err , ok := p .frame .(error ); ok {
602589 return err .Error ()
603590 }
604- return fmt .Sprintf ("gocql: received unexpected frame on stream %d: %v" , p .frame .Header ().stream , p .frame )
591+ return fmt .Sprintf ("gocql: received unexpected frame on stream %d: %v" , p .frame .Header ().Stream , p .frame )
605592}
606593
607594func (c * Conn ) heartBeat (ctx context.Context ) {
@@ -670,28 +657,28 @@ func (c *Conn) recv(ctx context.Context) error {
670657
671658 if c .frameObserver != nil {
672659 c .frameObserver .ObserveFrameHeader (context .Background (), ObservedFrameHeader {
673- Version : protoVersion (head .version ),
674- Flags : head .flags ,
675- Stream : int16 (head .stream ),
676- Opcode : frameOp (head .op ),
677- Length : int32 (head .length ),
660+ Version : internal . ProtoVersion (head .Version ),
661+ Flags : head .Flags ,
662+ Stream : int16 (head .Stream ),
663+ Opcode : internal . FrameOp (head .Op ),
664+ Length : int32 (head .Length ),
678665 Start : headStartTime ,
679666 End : headEndTime ,
680667 Host : c .host ,
681668 })
682669 }
683670
684- if head .stream > c .streams .NumStreams {
685- return fmt .Errorf ("gocql: frame header stream is beyond call expected bounds: %d" , head .stream )
686- } else if head .stream == - 1 {
671+ if head .Stream > c .streams .NumStreams {
672+ return fmt .Errorf ("gocql: frame header stream is beyond call expected bounds: %d" , head .Stream )
673+ } else if head .Stream == - 1 {
687674 // TODO: handle cassandra event frames, we shouldnt get any currently
688675 framer := newFramer (c .compressor , c .version )
689676 if err := framer .readFrame (c , & head ); err != nil {
690677 return err
691678 }
692679 go c .session .handleEvent (framer )
693680 return nil
694- } else if head .stream <= 0 {
681+ } else if head .Stream <= 0 {
695682 // reserved stream that we dont use, probably due to a protocol error
696683 // or a bug in Cassandra, this should be an error, parse it and return.
697684 framer := newFramer (c .compressor , c .version )
@@ -714,14 +701,14 @@ func (c *Conn) recv(ctx context.Context) error {
714701 c .mu .Unlock ()
715702 return ErrConnectionClosed
716703 }
717- call , ok := c .calls [head .stream ]
718- delete (c .calls , head .stream )
704+ call , ok := c .calls [head .Stream ]
705+ delete (c .calls , head .Stream )
719706 c .mu .Unlock ()
720707 if call == nil || ! ok {
721708 c .logger .Printf ("gocql: received response for stream which has no handler: header=%v\n " , head )
722709 return c .discardFrame (head )
723- } else if head .stream != call .streamID {
724- panic (fmt .Sprintf ("call has incorrect streamID: got %d expected %d" , call .streamID , head .stream ))
710+ } else if head .Stream != call .streamID {
711+ panic (fmt .Sprintf ("call has incorrect streamID: got %d expected %d" , call .streamID , head .Stream ))
725712 }
726713
727714 framer := newFramer (c .compressor , c .version )
@@ -1150,7 +1137,7 @@ func (c *Conn) exec(ctx context.Context, req frameBuilder, tracer Tracer) (*fram
11501137 // requests on the stream to prevent nil pointer dereferences in recv().
11511138 defer c .releaseStream (call )
11521139
1153- if v := resp .framer .header .version . version (); v != c .version {
1140+ if v := resp .framer .header .Version . Version (); v != c .version {
11541141 return nil , NewErrProtocol ("unexpected protocol version in response: got %d expected %d" , v , c .version )
11551142 }
11561143
@@ -1244,7 +1231,7 @@ func (c *Conn) prepareStatement(ctx context.Context, stmt string, tracer Tracer)
12441231 prep := & writePrepareFrame {
12451232 statement : stmt ,
12461233 }
1247- if c .version > protoVersion4 {
1234+ if c .version > internal . ProtoVersion4 {
12481235 prep .keyspace = c .currentKeyspace
12491236 }
12501237
@@ -1276,7 +1263,7 @@ func (c *Conn) prepareStatement(ctx context.Context, stmt string, tracer Tracer)
12761263 flight .preparedStatment = & preparedStatment {
12771264 // defensively copy as we will recycle the underlying buffer after we
12781265 // return.
1279- id : copyBytes (x .preparedID ),
1266+ id : internal . CopyBytes (x .preparedID ),
12801267 // the type info's should _not_ have a reference to the framers read buffer,
12811268 // therefore we can just copy them directly.
12821269 request : x .reqMeta ,
@@ -1303,12 +1290,12 @@ func (c *Conn) prepareStatement(ctx context.Context, stmt string, tracer Tracer)
13031290}
13041291
13051292func marshalQueryValue (typ TypeInfo , value interface {}, dst * queryValues ) error {
1306- if named , ok := value .(* namedValue ); ok {
1307- dst .name = named .name
1308- value = named .value
1293+ if named , ok := value .(* internal. NamedValue ); ok {
1294+ dst .name = named .Name
1295+ value = named .Value
13091296 }
13101297
1311- if _ , ok := value .(unsetColumn ); ! ok {
1298+ if _ , ok := value .(internal. UnsetColumn ); ! ok {
13121299 val , err := Marshal (typ , value )
13131300 if err != nil {
13141301 return err
@@ -1338,7 +1325,7 @@ func (c *Conn) executeQuery(ctx context.Context, qry *Query) *Iter {
13381325 if qry .pageSize > 0 {
13391326 params .pageSize = qry .pageSize
13401327 }
1341- if c .version > protoVersion4 {
1328+ if c .version > internal . ProtoVersion4 {
13421329 params .keyspace = c .currentKeyspace
13431330 }
13441331
@@ -1431,7 +1418,7 @@ func (c *Conn) executeQuery(ctx context.Context, qry *Query) *Iter {
14311418 if params .skipMeta {
14321419 if info != nil {
14331420 iter .meta = info .response
1434- iter .meta .pagingState = copyBytes (x .meta .pagingState )
1421+ iter .meta .pagingState = internal . CopyBytes (x .meta .pagingState )
14351422 } else {
14361423 return & Iter {framer : framer , err : errors .New ("gocql: did not receive metadata but prepared info is nil" )}
14371424 }
@@ -1442,7 +1429,7 @@ func (c *Conn) executeQuery(ctx context.Context, qry *Query) *Iter {
14421429 if x .meta .morePages () && ! qry .disableAutoPage {
14431430 newQry := new (Query )
14441431 * newQry = * qry
1445- newQry .pageState = copyBytes (x .meta .pagingState )
1432+ newQry .pageState = internal . CopyBytes (x .meta .pagingState )
14461433 newQry .metrics = & queryMetrics {m : make (map [string ]* hostMetrics )}
14471434
14481435 iter .next = & nextIter {
@@ -1531,7 +1518,7 @@ func (c *Conn) UseKeyspace(keyspace string) error {
15311518}
15321519
15331520func (c * Conn ) executeBatch (ctx context.Context , batch * Batch ) * Iter {
1534- if c .version == protoVersion1 {
1521+ if c .version == internal . ProtoVersion1 {
15351522 return & Iter {err : ErrUnsupported }
15361523 }
15371524
0 commit comments