Changeset 422 in code
- Timestamp:
- Oct 24, 2020, 1:47:53 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/db.go
r421 r422 216 216 } 217 217 218 func fromStringPtr(ptr *string) string { 219 if ptr == nil { 220 return "" 221 } 222 return *ptr 223 } 224 225 func toStringPtr(s string) *string { 226 if s == "" { 227 return nil 228 } 229 return &s 218 func toNullString(s string) sql.NullString { 219 return sql.NullString{ 220 String: s, 221 Valid: s != "", 222 } 230 223 } 231 224 … … 243 236 for rows.Next() { 244 237 var user User 245 var password *string238 var password sql.NullString 246 239 if err := rows.Scan(&user.ID, &user.Username, &password, &user.Admin); err != nil { 247 240 return nil, err 248 241 } 249 user.Password = fromStringPtr(password)242 user.Password = password.String 250 243 users = append(users, user) 251 244 } … … 263 256 user := &User{Username: username} 264 257 265 var password *string258 var password sql.NullString 266 259 row := db.db.QueryRow("SELECT id, password, admin FROM User WHERE username = ?", username) 267 260 if err := row.Scan(&user.ID, &password, &user.Admin); err != nil { 268 261 return nil, err 269 262 } 270 user.Password = fromStringPtr(password)263 user.Password = password.String 271 264 return user, nil 272 265 } … … 276 269 defer db.lock.Unlock() 277 270 278 password := to StringPtr(user.Password)271 password := toNullString(user.Password) 279 272 280 273 var err error … … 347 340 for rows.Next() { 348 341 var net Network 349 var name, username, realname, pass, connectCommands *string350 var saslMechanism, saslPlainUsername, saslPlainPassword *string342 var name, username, realname, pass, connectCommands sql.NullString 343 var saslMechanism, saslPlainUsername, saslPlainPassword sql.NullString 351 344 err := rows.Scan(&net.ID, &name, &net.Addr, &net.Nick, &username, &realname, 352 345 &pass, &connectCommands, &saslMechanism, &saslPlainUsername, &saslPlainPassword, … … 355 348 return nil, err 356 349 } 357 net.Name = fromStringPtr(name)358 net.Username = fromStringPtr(username)359 net.Realname = fromStringPtr(realname)360 net.Pass = fromStringPtr(pass)361 if connectCommands != nil{362 net.ConnectCommands = strings.Split( *connectCommands, "\r\n")363 } 364 net.SASL.Mechanism = fromStringPtr(saslMechanism)365 net.SASL.Plain.Username = fromStringPtr(saslPlainUsername)366 net.SASL.Plain.Password = fromStringPtr(saslPlainPassword)350 net.Name = name.String 351 net.Username = username.String 352 net.Realname = realname.String 353 net.Pass = pass.String 354 if connectCommands.Valid { 355 net.ConnectCommands = strings.Split(connectCommands.String, "\r\n") 356 } 357 net.SASL.Mechanism = saslMechanism.String 358 net.SASL.Plain.Username = saslPlainUsername.String 359 net.SASL.Plain.Password = saslPlainPassword.String 367 360 networks = append(networks, net) 368 361 } … … 378 371 defer db.lock.Unlock() 379 372 380 netName := to StringPtr(network.Name)381 netUsername := to StringPtr(network.Username)382 realname := to StringPtr(network.Realname)383 pass := to StringPtr(network.Pass)384 connectCommands := to StringPtr(strings.Join(network.ConnectCommands, "\r\n"))385 386 var saslMechanism, saslPlainUsername, saslPlainPassword *string373 netName := toNullString(network.Name) 374 netUsername := toNullString(network.Username) 375 realname := toNullString(network.Realname) 376 pass := toNullString(network.Pass) 377 connectCommands := toNullString(strings.Join(network.ConnectCommands, "\r\n")) 378 379 var saslMechanism, saslPlainUsername, saslPlainPassword sql.NullString 387 380 if network.SASL.Mechanism != "" { 388 saslMechanism = &network.SASL.Mechanism381 saslMechanism = toNullString(network.SASL.Mechanism) 389 382 switch network.SASL.Mechanism { 390 383 case "PLAIN": 391 saslPlainUsername = to StringPtr(network.SASL.Plain.Username)392 saslPlainPassword = to StringPtr(network.SASL.Plain.Password)384 saslPlainUsername = toNullString(network.SASL.Plain.Username) 385 saslPlainPassword = toNullString(network.SASL.Plain.Password) 393 386 network.SASL.External.CertBlob = nil 394 387 network.SASL.External.PrivKeyBlob = nil … … 466 459 for rows.Next() { 467 460 var ch Channel 468 var key *string461 var key sql.NullString 469 462 if err := rows.Scan(&ch.ID, &ch.Name, &key, &ch.Detached); err != nil { 470 463 return nil, err 471 464 } 472 ch.Key = fromStringPtr(key)465 ch.Key = key.String 473 466 channels = append(channels, ch) 474 467 } … … 484 477 defer db.lock.Unlock() 485 478 486 key := to StringPtr(ch.Key)479 key := toNullString(ch.Key) 487 480 488 481 var err error
Note:
See TracChangeset
for help on using the changeset viewer.